本文翻译自 IPFS 社区教程 ProtoSchool。ProtoSchool 是一个可以交互式学习 IPFS 编程的网站,涉及代码的部分大家可到该网站上直接运行测试!
本文接上篇 IPFS 去中心化数据结构(二)。
LESSION 4 - 内容标识符(CID)
之前我们通过可爱的照片举例让讨论不那么无趣,但实际上内容寻址可用于所有不同类型的文件和数据,JSON 对象、学术论文还有视频。要使加密哈希工作,我们需要知道我们正在使用的是哪种数据格式并使用适当的工具。
数据结构解码
CID
是内容寻址的特定方式。它是 IPFS 的规范之一,IPFS 是一种去中心化的 Web 协议,我们将在后面的教程中讨论,它具有非常广泛的含义。
CID
是包含加密哈希的单个标识符,并包含了编码解码器("codec")相关所需的信息。编解码器以某些格式编码和解码数据。
1+-------+------------------------------+
2| Codec | Multihash |
3+-------+------------------------------+
许多格式和协议都是使用内容寻址的。 CID
让我们可以为任何系统机制创建通用标识符。 像 Git 、以太坊和比特币都使用内容寻址,只是它们在解析数据加密哈希函数上有所不同。
CID
是一种标识符,包含用于解释数据的编解码器和多重哈希值(multihash
),它是一种自描述哈希值(值中标识了使用什么类型的哈希函数来创建该值)。
1+------------------------------+
2| Codec |
3+------------------------------+
4| |
5| Multihash |
6| +----------+---------------+ |
7| |Hash Type | Hash Value | |
8| +----------+---------------+ |
9| |
10+------------------------------+
链接不同的数据结构
CID
允许我们对完全不同的数据结构进行链接。 想象一下,一个 JSON 对象树链接到 BSON 对象,这些对象又链接到 Git 提交。(或者想象一个包含小狗照片和小猫视频的文件夹,其子文件夹包含长颈鹿的文章。存在各种各样无穷的可能性!)在这棵文件树下,我们有一个加密哈希值,我们用它来分发或链接到其他数据。
为什么在不同的数据结构之间建立链接很重要?在中心化的网络上,我们将文本链接到图片,从徽标链接到主页,从电子邮件链接到 PDF。链接将资源联系在一起,传达意义,形成网络互动!
下一节:IPFS 去中心化数据结构(四)