LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 什么是IPLD?

什么是IPLD?

2021-11-01 算力全球 来源:区块链网络

什么是IPLD?

大多数人已经知道 IPFS 是什么以及它在分布式数据方面为普通开发人员提供了什么。然而,关于这个革命性的系统,IPFS 并不是人们应该了解的唯一东西。

在 IPFS 之下是一个称为 IPLD 的系统,它处理 IPFS 为将数据存储在链上并创建hash链接(我们将其视为内容 ID(CID))所做的所有繁重工作。但是什么是 IPLD,为什么它在更宏大的计划中很重要?了解 IPLD 将使您对 IPFS 的工作原理以及通过 IPFS 扩展当前用户可用的数据结构所需的方法有更深入的了解。

星际关联数据 (IPLD) 和 IPFS

从最基本的形式来看,IPLD 是构建 IPFS 的数据层。它创建了一系列数据链接,但也允许用户通过可以存储在 IPFS 上的简单数据结构自行创建这些链接。您可以将 IPFS 视为 IPLD 的块存储——通过 IPLD 发送到 IPFS 的数据保存在链上,用户会收到一个 CID 来访问该数据。

当有人在 IPFS 上存储一个文件时,这个文件被分成几个块,存储在不同的块中。为了重建整个文件,一个图表将每一个内容位连接在一起,目录指向单个数据片段,这与 c + + 等旧编码语言中的指针没有什么不同。

内容ID 是生成的hash,以允许用户与 IPFS 交互并恢复其数据。IPLD 负责解码这些hash,以便用户能够访问它们的数据。在许多方面,IPLD 的功能很像开发者的老朋友 Git,因为它使用类似的方法构造那些被称为 Merkle DAG 的链接hash。

Git 和 Merkle DAG

通常,当创建一个hash时,它仅指数据移动的一个方向。例如,人们无法及时前进到hash不存在的地方。Git 使用 Merkle DAG 创建特定时间点的“快照”,允许用户在需要时回滚数据。Merkle DAG 是 Git 的重要组成部分,但它也是像 IPLD 这样的链接系统中的宝贵工具。

Git 是一个完全独立的系统——其中生成的hash只能在其中解码。IPLD 更雄心勃勃,旨在解码它接触到的所有hash。但是,要使其成为一个可行的系统,必须有一种方法来告诉 IPLD 如何解释该hash以获取底层数据。这就是多哈希和多编解码器的用武之地。对于系统来说,弄清楚每个 hash 表示什么的最好方法是什么?当然,让hash函数告诉系统它需要解码什么。

一个复杂的数据表示系统

大多数开发人员都熟悉简单的数据表示系统,如 JSON 或 CBOR。在这两种情况下,都可以使用这些系统来表示和检索多个数据结构。然而,这些简单的数据表示系统都不支持链接。很明显,IPLD 不可能使用这些简单的系统,因为链路是 IPLD 系统的核心。

那么,IPLD 如何处理这种缺乏复杂性的问题呢?用户实际上可以使用这些简单系统的扩展版本来存储数据。JSON-DAG 允许存储典型的 JSON 序列化数据,但也支持可与 IPLD 一起使用的链接。JSON-CBOR 允许更大的灵活性。CBOR 是一种二进制存储系统,使其快速高效。Filecoin 使用 CBOR-DAG 作为其链,因为它的效率以及 CBOR 可以处理比 JSON 更多的数据类型。

使用 IPLD 进行编码和解码

在链上存储数据似乎很容易,但是系统如何解码进入组件数据结构的hash呢?IPLD 使用底层数据模型,其中包含大多数开发人员可以立即识别的形式,例如字符串、布尔值、整数、浮点数等。

IPLD 的系统使用两层方法对这些数据结构进行编码。主要的 Protobuf 格式 (DAG-PB) 是用于呈现命名链接和二进制 blob 的专用格式。辅助 Protobuf 格式(称为 UnixFS)派生有关文件的元数据。CID 可以包含与不同系统相关的多个hash和多个编解码器。这种多任务、多编解码器构建对于 IPLD 认为自己是一个多格式系统是必要的。

将技术扩展到新领域

IPLD 只是数据结构的最新迭代。数据结构已经存在并且已经使用了很长一段时间。看看 Haskell 和 Scala 等系统,它们处理数据结构的方式与 IPLD 的处理方式之间的相似之处显而易见。IPLD 采用了这些系统的开创性技术,并将其转换为分布式格式。

这些孤立系统与 IPLD 之间的区别在于,IPLD 允许分布式存储,其基础链接是 IPFS。这些数据结构管理范式已经持续存在并逐渐发展成为可扩展的,这是 IPLD 价值主张的核心特征。

通过 IPLD 备份 IPFS,开发人员可以访问一个强大的分布式数据存储系统,该系统可以处理多种自描述格式。灵活性和可扩展性形成了强大的组合,为开发人员提供了一种工具,他们可以使用该工具来推动楔入式 Web3.0 系统的开发。

查看更多

—-

编译者/作者:算力全球

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...