你了解IPFS么?如何了解IPFS/Filecoin中的IPLD及使用IPLD?

滨合云智
企业专栏
热度: 17204

IPLD不仅是IPFS项目的一部分,而且本身也是一个单独的项目。

01  IPLD的意义

IPLD不仅是IPFS项目的一部分,而且本身也是一个单独的项目。要了解其在去中心化世界中的重要性,我们必须了解链接数据的概念:语义网

什么是链接数据?为什么我们需要它?

语义网或链接数据是Tim Berners Lee爵士在2001年《科学美国人》上发表的开创性文章中创造的一个术语。BernersLee提出了一种机器可以独立于人类进行处理的万维网数据的愿景,从而使许多人可以新服务改变了我们的日常生活。尽管本文对大多数包含结构化数据的网页的愿景尚未实现,但可以通过软件代理对其进行分析和采取行动,但语义网已成为一个日益重要的平台,通过不断增长的社区使用国际化的数据共享来实现数据交换和集成。语义Web标准,称为链接数据

当前有许多使用语义Web技术和链接数据来以灵活且可扩展的方式在网络上共享有价值的结构化信息的示例。语义网络技术在生命科学中得到了广泛的应用,它通过跨多个数据集查找路径来促进药物发现,这些路径显示了通过相互关联的基因在药物和副作用之间的关联。

  • 《纽约时报》已发布了150年来开发的大约10,000个主题词的词汇,称为“链接数据”,并将覆盖范围扩展到大约30,000个主题标签;他们鼓励开发使用这些词汇并将其与其他在线资源链接的服务。

区块链

  • 在英国广播公司的用途关联数据使内容在搜索引擎中更容易找到,在社交媒体上更易链接;从音乐或体育等领域的补充资源中添加其他上下文,并传播链接和社论注释超出其原始输入目标,从而在其他上下文中提出相关信息。

  • 美国data.gov网站的主页上说:“随着链接文档网络的发展,包括链接数据网络,我们正在努力最大程度地利用语义网技术的潜力,以实现链接开放政府数据的承诺。

区块链

 

  • 此外,所有社交媒体网站都使用链接数据来创建一个人脉网络,以使其平台尽可能吸引人。因此,我们确实有一些链接数据,但是要利用链接数据的真正力量,我们还有很长的路要走。 

区块链

现在想象一下,如果您可以将git分支中的最新提交引用到比特币交易中,为您的工作添加时间戳。因此,通过链接git commit,您可以从区块链资源管理器中查看该提交。或者,如果您可以将以太坊合约链接到IPFS上的媒体,则可以对其进行修改并在每次执行功能时跟踪其变化。

IPLD是内容可寻址的网络

它使我们能够将所有散列链接的数据结构视为统一信息空间的子集,从而将所有将具有散列数据的链接的数据模型统一为IPLD实例。

换句话说,IPLD是用于创建可普遍寻址和链接的分散式数据结构的一组标准和实现。这些结构使我们可以对HTML网页的URL和链接进行数据处理。

区块链

通过哈希寻址的内容已成为连接分布式系统中数据的一种广泛使用的方法,从运行您喜欢的加密货币的区块链到支持代码的提交,再到整个Web内容。然而,尽管所有这些工具都依赖于一些通用原语,但它们特定的基础数据结构不可互操作。

IPLD是所有散列启发式协议的单一名称空间。通过IPLD,可以跨协议遍历链接,无论基础协议如何,都可以浏览数据。

02  IPLD如何工作?

在深入探讨IPLD之前,让我们看一下IPLD的属性。

IPLD的属性

IPLD使您可以跨协议边界工作,这是无限的极限。关键是默认情况下,IPLD提供了使基础数据可跨工具和跨协议互操作的库。一个独立的描述模型,可以唯一地标识任何基于散列的数据结构,并确保同一逻辑对象始终映射到完全相同的位序列。协议独立解析IPLD将孤立的系统整合在一起(例如连接比特币,以太坊和git),从而使与现有协议的集成变得简单。可升级有了Multiformats(我们将在第4部分中进一步介绍)支持,IPLD可以轻松升级,并且会随您喜欢的协议一起增长。 跨格式操作以各种可序列化的格式(例如JSON,CBOR,YAML,XML等)来表达IPLD对象,这使得IPLD可以与任何框架配合使用。

向下兼容

非侵入式解析器使IPLD易于集成到您现有的工作中。所有协议的名称空间IPLD允许您无缝地跨协议浏览数据,通过公共命名空间将基于哈希的数据结构绑定在一起。现在,让我们更深入地研究IPLD。 深入探讨IPLD规范IPLD不是单一规范,而是一组规范。

      区块链      

IPLD堆栈该堆栈的目标是启用分散的数据结构,这又将启用更多分散的应用程序。此堆栈中的许多规范是相互依赖的。

       区块链  依赖图

这些图显示了IPLD的高级项目规范。即使您不完全了解它也完全可以。好。理论上足够的东西。让我们深入探讨这篇文章中最有趣的部分。

03  使用IPLD

在IPFS中,IPLD帮助构建和链接所有数据块/对象。因此,正如我们在第1部分中看到的那样,IPLD负责组织构成kitty?图像的所有数据块。在这一部分中,我们将创建一个类似于media.com的发布系统,并使用IPLD链接标签,文章和作者。这将帮助您更直观地了解IPLD。在创建发布系统之前,我们将探索IPFS DAG API,该API使我们能够以IPLD格式将数据对象存储在IPFS中。(您可以在IPFS中存储更多激动人心的内容,例如您最喜欢的cat GIF,但现在我们将坚持使用更简单的内容。)如果您不熟悉Merkle尝试和DAG,请前往此处。如果您了解这些术语的含义,请继续…创建一个文件夹名称ipld-blogs。运行npm init并按Enter所有问题。现在使用以下命令安装依赖项:

npm install ipfs-http-client cids --save

安装模块后,您的项目结构将如下所示:

     区块链       

创建IPLD格式节点

您可以通过将数据对象传递到ipfs.dag.put方法中来创建新节点,该方法将为新创建的节点返回内容标识符(CID)。

ipfs.dag.put({name: ‘vasa’})

CID是IPFS中从其内容派生的数据块的地址。每当有人将相同的{name: 'vasa'}数据放入IPFS中时,他们都会获得与您获得的相同的CID。如果输入它们{name: 'vAsa'},则CID将有所不同。将此代码粘贴tut.js并运行node tut.js您将获得此CID 

zdpuAujL3noEMamveLPQWJPY6CYZHhHoskYQaZBvRbAfVwR8S

我们已经成功创建了IPLD格式节点。

连接IPLD对象

有向无环图(DAG)的一项重要功能是能够将它们链接在一起。在ipfsDAG存储中表达链接的方式与CID另一个节点的链接相同。例如,如果我们希望一个节点具有一个名为“ foo”的链接,该链接指向先前另存为的另一个CID实例barCid,则它可能类似于:

{ foo:barCid}

当我们给一个字段起一个名字并将其值作为一个CID的链接时,我们称其为命名链接。下面的代码显示了如何创建命名链接。

使用链接读取嵌套数据

您可以使用路径查询从深度嵌套的对象中读取数据。ipfs.dag.get允许使用IPFS路径进行查询。这些查询返回一个对象,其中包含查询的值以及所有未解析的剩余路径。这个API的优点是它还可以遍历链接。这是一个如何使用链接读取嵌套数据的示例。您还可以使用此炫酷的IPLD资源管理器来探索IPLD节点。就像,如果我想查看此CID:

zdpuAujL3noEMamveLPQWJPY6CYZHhHoskYQaZBvRbAfVwR8S

我们将转到此链接:

https://explore.ipld.io/#/explore/zdpuAujL3noEMamveLPQWJPY6CYZHhHoskYQaZBvRbAfVwR8S

现在,随着我们探索IPFS DAG API,我们已经准备好与IPLD合作并创建我们的发布系统。

创建发布系统

我们将创建一个简单的博客应用程序。该博客应用程序可以:

  • 添加一个新的作者IPLD对象。作者将具有2个字段:名称和个人资料(个人资料的标记行)。

  • 创建一个新的Post IPLD对象。帖子将包含4个字段:作者,内容,标签和发布日期时间。

  • 使用帖子CID阅读帖子。

以下是上述目标的代码实现。

区块链

运行此代码后,它将首先通过创建一个作者addNewAuthor,该作者将返回作者的CID。然后,此CID将传递给createBlog函数,该函数将返回postCID。这postCID将通过使用readBlog功能来获取职位信息。接下来,您可以使用IPLD创建更复杂的应用程序。希望您从这篇文章中能够更深入理解IPFS。在下一篇文章中,我们将深入探讨分布式WEB端的命名系统--IPNS。因此,请持续关注【深入了解IPFS/Filecoin】系列。

滨合云智集团是中国分布式存储四大独角兽企业之一,中国区块链技术领域十大独角兽企业之一,“区块链+IOT+AI”场景应用的探索者与深耕者,也是全球顶尖区块链技术研发机构。其总部坐落于杭州,旗下拥有4家子公司,涵盖分布式存储硬件开发、芯片制造、技术开发、以及行业解决方案等生态产业链建设。滨合云智集团以国产自主可控分布式存储技术服务平台为核心,致力于分布式存储技术落地应用,聚焦分布式存储技术上下游产业链各项关键技术的探究和产品开发,融合先进技术与解决方案,推出以分布式存储技术赋能实体企业的创新模式,形成从技术端到产品端完整产业链优势,在行业内具有创造性和领先性,奠定了集团的行业地位和品牌影响力。

公众号:滨合云智

声明:本文为入驻“火星财经 专栏”作者作品,不代表火星财经官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
本内容旨在传递行业动态,不构成投资建议或承诺。