第30章 【IPFS一问一答】解析IPFS Multiformat之Multicodec

30 【IPFS一问一答】解析IPFS Multiformat之Multicodec

multicodec是一种自描述的编解码,它包含一些自我描述的其他格式。多代码标识符是varint。它其实是个table,用1到2个字节定了数据内容的格式,比如用字母z表示base58 btc编码,0x50 表示 protobuf等等。

上边提到的table在这里可以看到https://github.com/multiformats/multicodec/blob/master/table.csv

multiodec识别的一大块数据如下所示:

< multicodec> <encoded-data > 
#我们可以简写成:
< mc> <data >

另一个有用的场景是使用multicodec作为访问数据的密钥的一部分,例如:

# suppose we have a value and a key to retrieve it
"<key>" -> <value>

# we can use multicodec with the key to know what codec the value is in
"<mc><key>" -> <value>

值得注意的是,multiodec与multihash和multiaddr配合使用效果非常好,我们可以使用多重代码为这些值添加前缀,以告诉它们是什么。