深入了解IPFS-2:什么是行星际关联数据(IPLD)?

深入了解IPFS-2:什么是行星际关联数据(IPLD)?

这篇文章是“ 深入理解IPFS ”系列的第二部分,通过此篇文章将帮助所有人理解IPFS的基本概念。

在本系列的第一部分中,简要讨论了IPLD我们看到IPLD处理IPFS中的“定义数据”。在这一部分,我们将深入研究并讨论IPLD:

1、IPLD的意义 它背后的意义是什么?为什么我们需要它,以及IPLD在哪里适合IPFS?

2、IPLD如何运作?对其规范进行说明,以及它如何与IPFS的其他组件协调?

3、使用IPLD

希望你从这个系列中学到很多关于IPFS的知识。

深入了解IPFS-2:什么是行星际关联数据(IPLD)?

 IPLD的意义 

IPLD不仅是IPFS项目的一部分,其本身也是一个独立的项目。为了理解它在去中心化世界中的重要性,我们必须理解关联数据的概念:语义网。

什么是关联数据?为什么我们需要它?

语义网或关联数据,是Tim Berners Lee先生于2001年发表在《科学美国人》杂志上,一篇开创性文章中创造的一个术语。Berners Lee 阐述了一个万维网数据的愿景,即机器可以独立于人类进行处理,从而改变我们日常生活的一系列新服务。虽然本文对大多数网页包含,可由软件代理分析和处理的结构化数据愿景尚未实现。语义网已经成为一个越来越重要的数据交换平台,通过不断发展的社区来实现数据共享使用国际语义网标准,称为Linked Data(关联数据)

目前有许多使用语义网技术和关联数据,在Web上以灵活、可扩展的方式共享有价值结构化信息的例子语义网络技术在生命科学中被广泛使用,通过在多个数据集中寻找路径,与每个数据集相关的基因来显示药物和副作用之间的关联,从而促进药物的发现。“纽约时报”发表了150多年来,作为关联数据开发的大约10,000个主题标签的词汇,将覆盖大约30,000个主题标签; 他们鼓励开发使用这些词汇表的服务,并将它们与其他在线资源相关联。英国广播公司使用关联数据使搜索引擎更容易找到内容,并通过社交媒体更多地链接; 从音乐或体育等领域的补充资源中添加额外的上下文,并将链接和编辑注释传播到其原始条目目标之外,以便在其他上下文中提供相关信息。美国data.gov网站的主页声明:“随着链接文档网络的发展,包括链接数据网络,我们正致力于最大限度地发挥语义Web技术的潜力,实现链接开放政府数据的承诺。“ 同时,所有社交媒体网站都使用关联数据来创建人脉网络,以使他们的平台尽可能具有吸引力。

所以我们确实有一些关联数据,但为了利用关联数据的真正力量,我们还有很长的路要走。

现在想象一下,如果可以将你在git分支中的最新提交,引用到比特币交易中来为你的工作加上时间戳。因此,通过链接git提交,您可以从区块链资源管理器中查看提交。或者,如果可以将您的以太坊合约链接到IPFS上的媒体,也许可以修改它,并跟踪它在每个函数执行中的更改。

所有这些都可以使用IPLD。

IPLD是内容可寻址的网络(如在第一部分中所讨论的)。

它允许我们将所有与哈希相关的数据结构视为统一信息空间的子集,统一所有将数据与哈希作为IPLD实例链接的数据模型。

或者换句话说,IPLD是一组用于创建分散数据结构的标准和实现,这些分散数据结构是通用可寻址和可链接的这些结构允许我们对数据做URL和链接对HTML网页做的事情。

通过哈希进行内容寻址已成为一种广泛使用的方法,用于连接分布式系统中的数据,从运行加密货币区块链、到支持代码的提交、再到整个网络的内容。然而,尽管所有这些工具都依赖于一些常见原语,但它们的特定底层数据结构不可互操作(因为我现在无法将git提交连接到区块链交易)。

IPLD是所有哈希启发协议的单一名称空间。通过IPLD,可以跨协议遍历链接,无论底层协议是什么,都可以探索数据。

深入了解IPFS-2:什么是行星际关联数据(IPLD)?

  IPLD如何运作?

在深入了解IPLD之前,让我们看看IPLD的特性。

IPLD的特性

IPLD允许跨越协议边界工作的限制。重点在于,默认情况下,IPLD提供的库使基础数据在工具和协议之间具有互操作性。 

规范数据模型

一种独立的描述性模型,可唯一标识任何基于哈希的数据结构,并确保相同的逻辑对象始终映射到完全相同的位序列。

协议独立解决方案

IPLD将孤立的系统结合在一起(如连接比特币、以太坊和git),使与现有协议的集成变得简单。

升级

通过Multiformats(我们将在第4部分中进一步深入研究),IPLD可以轻松升级,并将随着你喜欢的协议而增长。

跨格式操作

以各种可序列化格式(如JSON、CBOR、YAML、XML等)表达您的IPLD对象,使IPLD在任何框架中都可以使用。

向下兼容

非侵入式解析器使IPLD很容易集成到你现有的工作中。

所有协议的命名空间

IPLD允许无缝地跨协议探索数据,通过公共命名空间将基于哈希的数据结构绑定在一起。

深入了解IPLD规范

IPLD不是单一规范,而是一组规范。

深入了解IPFS-2:什么是行星际关联数据(IPLD)?

IPLD堆栈

该堆栈的目标是实现分散的数据结构,从而实现更分散的应用程序。

该堆栈中的许多规范是相互依赖的。

深入了解IPFS-2:什么是行星际关联数据(IPLD)?

依赖图

这些图表显示了IPLD的高级项目规范。即使你不完全理解它也完全没问题。

有关IPLD理论的部分已经分享完了,接下来让我们深入探讨这篇文章中最有趣的部分?。

深入了解IPFS-2:什么是行星际关联数据(IPLD)?

使用IPLD

在IPFS中,IPLD有助于构建和链接所有数据块/对象。因此,正如我们在第1部分中看到的那样,IPLD负责组织构成kitty图像的所有数据块。

在这一部分中,我们将创建一个类似发布系统的medium.com,并使用IPLD链接标签、文章和作者,这将有助于您更直观地了解IPLD。

在创建发布系统之前,我们将探索IPFS DAG API,它允许我们以IPLD格式将数据对象存储在IPFS中。(你可以在IPFS中存储更多令人兴奋的东西,比如猫图片,但我们现在会坚持使用更简单的东西。)

如果您不熟悉 Merkle tries 和 DAG,可以通过此链接了解:https://proto.school/#/data-structures/01

创建文件夹名称  ipld-blogs 。运行  npm init  并按下Enter键回答所有问题。

现在使用以下命令安装附属项:

npm install ipfs-http-client cids --save

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

深入了解IPFS-2:什么是行星际关联数据(IPLD)?

创建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合作并创建我们的发布系统。

创建发布系统

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

1、添加新的Author IPLD对象。作者将有两个字段:名称和配置文件(配置文件的标记行)。

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

3、使用帖子CID阅读帖子。

在运行此代码时,它将首先通过 via addNewAuthor创建一个作者,这将返回作者CID。然后这个CID将被传递给createBlog函数,该函数将返回postCID 。readblog函数将使用此postcid获取日志详细信息。

可以使用IPLD创建更复杂的应用程序...

在下一篇文章中,我们将深入探讨分布式Web的命名系统IPNS。敬请期待...


【往期文章】

Filecoin最新进展:2018年第三、四季度更新

- 重磅!Filecoin安装第一手教程,马上参与!

- 深入了解IPFS-1:初级到高级指南

本文由vasa发表于Hacker Noon,经由Filecoin中国社区翻译整理。


深入了解IPFS-2:什么是行星际关联数据(IPLD)?

(识别二维码进入IPFS社群)

深入了解IPFS-2:什么是行星际关联数据(IPLD)?

本文由 Ipfs币 作者:ipfs币 发表,其版权均为 Ipfs币 所有,文章内容系作者个人观点,不代表 Ipfs币 对观点赞同或支持。如需转载,请注明文章来源。
14

发表评论