内容寻址和CIDs
内容标识符,或CID,是IPFS网络中指向真正数据实体的标签。它并不表示数据内容在网络中存储的真正位置,他只是基于数据内容本身形成的一种表示地址的形式。无论数据内容有多大,CID的表示形式都很短。
CID是基于内容的加密哈希。主要表现为以下几点:
- 对数据做任何更改,都会产生不同的CID
- 使用同样的方式把同样的内容添加的两个IPFS节点,会产生相同的CID
IPFS默认使用sha-256哈希算法,同时也支持多种其他算法。 Multihash项目旨在为其他程序提供哈希算法,并允许多个哈希算法并存。(如果你好奇IPFS中的哈希类型是如何决定的,你不妨留意这个论坛)
标识符格式
CID可以采用几种不同的形式,具有不同的编码基础或CID版本。尽管文件(可变文件系统)和对象操作现在默认使用CIDv1,但许多现有IPFS工具仍会生成v0 CID。
Version 0 (v0)
最初设计IPFS时,我们使用base58编码的多哈希作为内容标识符(这比更新的CID更简单,但灵活性要差得多)。默认情况下,许多IPFS操作仍使用CIDv0,因此通常应尝试支持v0。
如果CID是以“ Qm”开头的46个字符,则为CIDv0(有关更多详细信息,请检查CID规范中的解码算法)。
Version 1 (v1)
CID v1包含一些前导标识符,这些标识符明确说明了使用哪种表示形式以及内容哈希本身。这些包括:
- A multibase prefix,,指定用于CID其余部分的编码
- CID版本标识符,指示这是哪个CID版本
- 一个多编解码器标识符,指示目标内容的格式-帮助人们和软件在获取内容后知道如何解释该内容
这些领先的标识符还提供前向兼容性,支持在将来的CID版本中使用的不同格式。
您可以使用CID的前几个字节来解释内容地址的其余部分,并知道从IPFS提取内容后如何解码内容。更多详细信息,请查看CID规范。它包括解码算法并链接到用于解码CID的现有软件实现。
CID检查器
自己探索CID很容易。是否要分解特定CID的多种基础库,多编解码器或多哈希信息?可以使用IPLD资源管理器中的CID检查器或CID信息面板(两个链接都使用示例CID启动)来对不同格式的CID进行交互式细分。
更多资源
查看以下链接,以获取有关CID及其工作方式的更多信息: