Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
264 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。  ]' b) A9 d, q) r/ l. e: I2 m: \

. [7 G) U: i3 G& G- g; U在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。
5 B  G; p! M( U6 f. G7 E# O- |. _1 a( u+ P; s' z
示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi/ k3 z5 h4 `' ?5 I

2 X$ z1 n+ @! V6 Y第一个示例是版本 1 CID。
( O8 s8 [3 t8 ^; V4 D  w7 g3 ^# ?" K" i+ N: X2 K( ]" l0 |* n# {' J4 `
查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:
( }  f5 r$ o+ P. L& f, F/ q+ h% O. m# v
Human Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读9 {; |5 [) r1 t/ z

8 U8 M* ~% @1 J' e* d# NMultibase:code是基址的标识符,在这种情况下b为base32。* W0 k7 l. v5 j' @
  m$ M2 Z! n/ @" Y1 Z3 W
Multicodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式3 a. Q  i: N7 B& J: C+ ]8 o
% ^' b5 O9 _5 V8 D- ?, S; D( S
Multihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)
# e9 I% }9 r% u. L% P; ^0 _1 C5 A6 ?. u* y
从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
/ V; ~$ u: m; ?5 T5 N
& Z8 k7 U7 C1 m9 X; ~, g3 u示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR: X! w; m: i: O9 e; T- w) y
: Z. K' e" C7 v  u" H& \
版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。
' H. j* M" z" a! d$ L6 }
' T8 ?  @& I9 r4 E9 X8 x在Base32 CIDV1标签下,我们看到* O# t5 @# M2 w/ h2 l  s* w

6 a- ~) z9 v5 _4 n6 k6 l' abafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。
  ]8 K+ ?1 l8 ^* b
" l) J5 M/ R& l/ {8 a' C4 ^9 O还请注意,在此 CIDv0 示例中。0 \2 c3 I! u/ y7 D" C: v7 ]
2 k3 [3 ^5 ]& q5 p
“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
( o) S) {1 ]8 C0 k3 R9 T2 d
+ C- z% J. b7 W0 Y. [4 T为什么?这两个 CID 指向相同的内容。基本上,这是
% s3 {6 o9 G4 X* Q1 X1 k) H0 p+ g- R' q4 h" K6 v
c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。6 F2 g6 K% B$ T7 Z

- W, X% W) m1 x1 H9 h2 e2 C转换 CID 版本$ ?5 ?' J( T% C% b
" i2 X0 i& \2 U( z2 i7 j
您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:
2 H" o" T3 I. t4 Q
( Q( d3 D. p) l2 Umultibase = base58btc. G# H; n  T3 k* a6 T. k- _

1 s5 U/ Y3 _$ S+ r, Imulticodec = dag-pb
7 k  q% G1 X' z' Z3 s9 n+ [7 Y/ z! ]; Q4 b1 i& P
multihash-algorithm = sha2-2564 |# b$ _2 m" D: Z' I0 q: U* D
9 o) X5 O+ }+ F. ^# f" v( r+ ?9 o4 J
multihash-length = 32 (32 个字节,相当于 256 位)
: {, D$ Z: W0 R  }/ ~( t9 D- G. O& A3 S( \" f
为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF9 {" A/ e- n  f, n3 i
" `$ ]9 e7 W4 o" B* t' ^
在浏览器中打开链接,然后从 URL 末尾复制 CID* H# q. F3 l: }) }2 J- D8 p- e$ X
6 L. ~4 {* s- n3 {
(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)9 Q# d+ e* I) Y; t' |/ K

, \( T( x9 M, O在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值
, f0 p5 f( x, {& ^
6 W2 X1 c: d0 a4 M9 e返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面, |' X  P! J3 Q2 o4 p
5 }7 e- U( @2 u: o! v# P5 q
您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1