

IPFS由许多技术与概念组成,那么,你了解CID概念么?
引言:内容标识符(Content Identifiers)(CIDs)是IPFS中的重要概念之一,用于标记内容并提示内容的基础信息,那么,什么是内容标识符?他又有哪些特征呢?
本文翻译自IPFS Documentation——IPFS官方文档

内容标识符(Content Identifiers)(CIDs)
内容标识符 是用于指向IPFS中具体物项的标记,内容标识符并不会提示内容储存在何处,但其会根据内容自身形成一系列的地址。CIDs很短,不论其指示的底层内容有多长。
CIDs的生成基于指定内容的加密哈希,也就是说:
1、任何对原内容的改变都会生成一个新的完全不同的CID
2、两个不同的IPFS节点添加的相同的内容分片将具有完全相同的CID
CID的格式
根据编码基础的不同或CID版本的差异,CIDs具有几种不同的形式。许多已有的IPFS工具仍然会生成 v0 的CIDs,尽管目前 files (MFS 可变更文件系统)和object 操作指令已默认使用 v1 的 CID
Version 0(简称v0)
最初设计IPFS时,团队使用base 58编码的多重哈希作为内容标识符(相比新的CID,这种老式的更简单,但灵活性也耕地)。v0版本的CID仍然被默认用作许多IPFS操作指令,所以通常来说你应当试着支持v0版本的CID。
如果一个CID是以“Qm”开头的46位字符,那么他就是v0版本的CID(更多详细信息请查阅CID规范中的“解码算法”)。
Version 1(简称v1)
CID包含了以下更先进的标识符,这些标识符与内容哈希一起,可以明确表明其被用作标识了哪些内容。这包括:
1、一个Multibase前缀(译注:Multibase是一种用于消除文本中二进制编码(如base32,base64,base58等)歧义的协议),用于标注其于CID部分使用了何种二进制编码。
2、一个CID版本标识符,其表明了该CID的版本
3、一个Multicodec标识符(译注:Multicodec通过协定的“协议表”来运作于短字符串种,比如密钥和标识符),用于指示目标内容的格式——其能协助人和软件了解如何在获取内容后对其进行解释。
这些更先进的标识符也具备前向兼容性,能在未来版本的CID中支持不同的格式。
你能根据CID的前几个字节来解释内容地址的剩余部分,也能知道在IPFS获取到内容后如何对其解码。想了解更多,请查阅CID规范(https://github.com/ipld/cid),其包含了解码算法以及已有的用于实现解码CIDs的软件链接。
你也能通过查阅CID监察器(https://cid.ipfs.io/)或在IPLD浏览器(https://explore.ipld.io/)中查阅CID信息,以此获取不同格式CIDs的交互细节。
附:一个CID的例子:
