Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
146 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。
* ~3 c; t, U2 J1 P) j$ D: c2 d, R* r, z% L( V% n6 N
在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。
3 X* l+ q6 N$ ^; n3 [
1 [# O: _! z& L' f3 S% h示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi, Y" f. C( a+ \3 |( d" b

2 c4 w7 A) X1 s) b; I: o) O" G第一个示例是版本 1 CID。5 x2 L; U& X$ W. H3 w* E5 J

) p; |  r0 v- @* R查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:
8 }; `8 [  w  h3 r( ^' o( Z2 R
: y7 K# K4 h6 X' x' ^3 _& UHuman Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读" ]; K3 x- r3 M% S* m+ S
5 D2 X* f( _# K( d) s- u! ?  ?( S* u
Multibase:code是基址的标识符,在这种情况下b为base32。* ]% d+ i6 s  l" u, L+ i

  G9 z6 G8 L8 ?# ]Multicodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式+ z* h5 V' X* P- S& Z& A) M
0 z* K# z; Y* `/ L& X- h
Multihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)
3 h4 d+ p6 h. M/ B" J9 i6 c' E
  P3 o/ O  H' R$ X8 f从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。$ R: e) h' [* f: w2 F
6 k, u) s4 J' g0 h
示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR, }8 e4 F2 i' E5 C0 f1 O
- }1 s8 j5 M, x; [- C. g
版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。6 l- B* c2 o! N0 {1 _( @

8 g: E. b' H) W( d在Base32 CIDV1标签下,我们看到& A: C) B5 B5 k1 F4 a  ?, c% v, k
* ~3 _- V; K0 M' {
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。' s7 `/ `; B  l. z

1 a$ s& y6 i& o) [: K/ T- n还请注意,在此 CIDv0 示例中。  i" F# h+ B& v+ t+ D
) ^( k! R/ ~# e6 \5 V5 s) Z; @/ L: E
“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
, J1 U+ H3 E0 O; c% I% u$ d  r2 q5 _5 Y- f! F% n# D, G
为什么?这两个 CID 指向相同的内容。基本上,这是7 r) D4 b: _* t8 T

3 D3 ?- V* w; r; B$ q0 A+ _% mc3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。
. K' c5 |( Q" {5 c5 M/ E$ l( D3 k& q
转换 CID 版本6 m$ r1 s7 ~4 Y

3 E  z1 }/ t0 }- D. U' H您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:" i" l6 A- n! P7 x- _6 r; S
# V2 {4 w, o& @. A8 H- Z* P; V' p; g
multibase = base58btc3 j: |$ U# _8 K; g- Q! I6 ?. w

: I) c6 ]+ Z# S4 zmulticodec = dag-pb
2 G4 R- _% [0 {( F: _- }
& T) d% O( j5 M8 K0 g- s" {multihash-algorithm = sha2-256. T! U4 S( g: ]1 {! ~& s& N

, B# y1 E' t4 pmultihash-length = 32 (32 个字节,相当于 256 位)7 A) p! y" Q6 R2 ?( Z7 j
, L) Z  D4 A6 D* W- ~/ h3 f4 r" u. I
为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF1 T3 I# T" z! R  [3 O
. a8 ^9 T" Y9 t9 m; ~
在浏览器中打开链接,然后从 URL 末尾复制 CID
1 \' z  I+ d$ I) U: @9 \* ~( m  H: y  Z! U" |7 d
(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)
- w* U7 b2 `! Z- K5 g) t0 o7 q) s$ j! Y+ ?6 Y1 s6 U5 `4 B
在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值
9 }, q2 B0 \& L1 u2 N4 Y/ m* c2 H" Z. N1 `. n6 M1 \1 D7 ]$ g
返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面! e0 v- e& V) v

  K+ n2 v% L& A4 o, T: o您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1