本文翻译自 IPFS 社区教程 [链接]。ProtoSchool 是一个可以交互式学习 IPFS 编程的网站,涉及代码的部分大家可到该网站上直接运行测试! 本文接上篇 [链接]。 LESSION 4 - 内容标识符(CID) 之前我们通过可爱的照片举例让讨论不那么无趣,但实际上内容寻址可用于所有不同类型的文件和数据,J ..

IPFS 去中心化数据结构(三)

本贴最后更新于 197 天前,其中的信息可能已经时异事殊

本文翻译自 IPFS 社区教程 ProtoSchool。ProtoSchool 是一个可以交互式学习 IPFS 编程的网站,涉及代码的部分大家可到该网站上直接运行测试!

本文接上篇 IPFS 去中心化数据结构(二)

LESSION 4 - 内容标识符(CID)

之前我们通过可爱的照片举例让讨论不那么无趣,但实际上内容寻址可用于所有不同类型的文件和数据,JSON 对象、学术论文还有视频。要使加密哈希工作,我们需要知道我们正在使用的是哪种数据格式并使用适当的工具。

数据结构解码

CID 是内容寻址的特定方式。它是 IPFS 的规范之一,IPFS 是一种去中心化的 Web 协议,我们将在后面的教程中讨论,它具有非常广泛的含义。

CID 是包含加密哈希的单个标识符,并包含了编码解码器("codec")相关所需的信息。编解码器以某些格式编码和解码数据。

+-------+------------------------------+
| Codec | Multihash                    |
+-------+------------------------------+

许多格式和协议都是使用内容寻址的。 CID 让我们可以为任何系统机制创建通用标识符。 像 Git 、以太坊和比特币都使用内容寻址,只是它们在解析数据加密哈希函数上有所不同。

CID 是一种标识符,包含用于解释数据的编解码器和多重哈希值(multihash),它是一种自描述哈希值(值中标识了使用什么类型的哈希函数来创建该值)。

+------------------------------+
| Codec                        |
+------------------------------+
|                              |
| Multihash                    |
| +----------+---------------+ |
| |Hash Type | Hash Value    | |
| +----------+---------------+ |
|                              |
+------------------------------+

链接不同的数据结构

CID 允许我们对完全不同的数据结构进行链接。 想象一下,一个 JSON 对象树链接到 BSON 对象,这些对象又链接到 Git 提交。(或者想象一个包含小狗照片和小猫视频的文件夹,其子文件夹包含长颈鹿的文章。存在各种各样无穷的可能性!)在这棵文件树下,我们有一个加密哈希值,我们用它来分发或链接到其他数据。

为什么在不同的数据结构之间建立链接很重要?在中心化的网络上,我们将文本链接到图片,从徽标链接到主页,从电子邮件链接到 PDF。链接将资源联系在一起,传达意义,形成网络互动!


下一节:IPFS 去中心化数据结构(四)

  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    21 引用 • 220 回帖 • 219 关注
  • 去中心化
    14 引用 • 91 回帖 • 2 关注
  • 数据结构
    55 引用 • 100 回帖 • 2 关注
1 操作
88250 在 2019-04-30 08:53:00 更新了该帖
2 回帖
请输入回帖内容...
  • qiankunpingtai

    读完这个我有点疑惑,这样的关联关系类似于是 nosql 数据库生成了了关系型数据库的主键吗?内容是 nosql 部分,根据内容计算出来的主键?是这样的吗?

    1 回复
  • 88250

    差不多可以这里理解吧。用文中提到的 Git 来理解更简单一些,每次提交都会按相关提交数据生成一个唯一哈希值。