一个哈希,多个 CID 版本
袖矜
发表于 2023-1-14 12:17:18
238
0
0
在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。$ j5 Q% k) \; R" G; S. ^+ U. C
示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi5 I9 F; t- e/ F* `
8 m% a- w1 l# O* c# j
第一个示例是版本 1 CID。
4 g4 M" ?: |) R
查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:$ Y" N6 g9 y% e7 |& W+ E
Human Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读
1 x# s) |) q D( w
Multibase:code是基址的标识符,在这种情况下b为base32。* d% E. p2 {0 ~: @
& i! l' U; R0 E& `
Multicodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式
/ A! W; o0 p, }) i, d- ^+ v, c
Multihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)# r7 ?. J* R' s
/ U. q! d$ G* q, [
从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
( L8 y. n: [# R! @ J3 H* X
示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR5 ?9 F4 `% J. f* n% A
版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。: |5 `) I6 }0 q- r4 Q7 h" L1 ?
在Base32 CIDV1标签下,我们看到
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。' u3 E; a' S1 H: s/ b3 Y
4 ]+ e8 p/ ?9 F! z! u2 R5 v
还请注意,在此 CIDv0 示例中。
& z, }% I0 E4 I; q/ ?! i
“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。+ `+ U' u. q/ [( k1 _9 V
为什么?这两个 CID 指向相同的内容。基本上,这是. {0 F ^, i- w1 x( L
* O1 l0 s" S7 v" a6 b
c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。
转换 CID 版本# U4 h6 d4 W8 v2 `8 h6 f4 ~9 T
" c* t3 ^' r# I
您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:
4 f( T. o9 u5 q
multibase = base58btc
$ Q5 Z/ t# c* `; C4 w" l! V, H1 r
multicodec = dag-pb; m ^8 n# Y0 |* g
) o8 \. X* J2 {: _
multihash-algorithm = sha2-256; q& X0 q" C0 s' s A
! w, d' P. |7 Z h
multihash-length = 32 (32 个字节,相当于 256 位)# i# A% A# |) f0 f# i
* Z, D% m' J9 w* y
为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF
在浏览器中打开链接,然后从 URL 末尾复制 CID
9 Y! \7 u; g# f
(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)* a. y* N* f7 I) {- A6 e% `6 |
在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值5 W) m, I3 w8 }2 P# n
返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面
9 O- w1 R. k' x5 g" q- U" e
您应该看到我们的 aardvark 的相同图像。
成为第一个吐槽的人