Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
270 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。
: o9 o% H8 u: R( j" i0 @( q5 @9 }
) X& Z# A8 V, R0 T# A在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。1 D. z! l9 f2 j" R1 c
3 x- M( e4 N; j! G6 H- p
示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
7 H5 T- A% F" j( p$ J& J: ^6 I( q# i. w' Y  k
第一个示例是版本 1 CID。
9 L1 ~3 o0 Y& Z0 b" x6 t7 t3 Z! L' u* p  A' e0 r
查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:
+ S+ I# S9 ?4 U9 i- ?( N, O. d: D: Y: Z1 Q1 F9 E/ f
Human Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读7 S$ b+ f/ @8 w- F, R# Q
" _" t+ T, d0 p. j
Multibase:code是基址的标识符,在这种情况下b为base32。
8 M8 ~3 R- c7 `0 Y- o% Q3 d) ~; Z6 X0 W( G/ ^: l
Multicodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式
8 R- T# i2 I9 W# g6 z2 o8 J
2 p2 Q" H& b: v1 |$ {Multihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)
& o: j  o; _/ x4 u0 H. p2 s  ]7 \3 j6 D" u2 }8 O
从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
* d4 K0 J1 g0 {1 V
7 f: m5 X' f2 F: s$ H示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR; _2 d0 U4 d( j  O

# i" ]9 i$ A2 k9 j: ~8 w) B" p版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。7 ]4 [* u# h3 W" X7 P

+ _( v  |- j: b0 ~2 Z  ~在Base32 CIDV1标签下,我们看到
3 r3 ]7 Y, p+ p3 E' k# W# C+ u, D8 Z. P% f, j5 l
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。
# r& J4 l1 G  ^8 Q7 k3 F) l; A
7 V: ]! {/ S( N! S* {+ H% t还请注意,在此 CIDv0 示例中。
  ~. g$ a% J# K" k. \; M9 U
- C: r, x, @. R: i“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
2 X, M* F7 B; N4 \3 a
! l& ~1 F( e$ Q' f' P: j, b6 C为什么?这两个 CID 指向相同的内容。基本上,这是. o6 M5 S1 k; D6 }; c/ R; p8 W0 k
! A  Z+ o, [4 V' K; D2 u5 ?, V
c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。
! h6 @; [0 h- i2 v2 D' v0 {/ o2 \# r) M& ^: `. u: Z- s
转换 CID 版本) q9 X* `2 v) e2 U/ J
' b. T% l, N' d. {6 I1 a
您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:+ I& v6 O; A+ a7 e- e

+ ]0 p9 Q" Z/ I1 c* D& Nmultibase = base58btc
, s, x# ]  @) o0 O1 M! N/ t- N8 v  b% }
multicodec = dag-pb
4 Z/ I5 I5 R7 Q; L
7 r8 R) l0 U9 x7 @. v) W5 mmultihash-algorithm = sha2-256) t; R+ o1 X& {- A- D/ B1 H

) z6 d" b3 b$ j& ymultihash-length = 32 (32 个字节,相当于 256 位)
2 r9 R7 }* j# O9 D0 D. R- L) y8 E7 R: H' l
为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF
3 s5 Z. k" r7 s8 {! M: T0 m
  M3 T, w& `( e+ ]8 _- V在浏览器中打开链接,然后从 URL 末尾复制 CID
5 g# k, H2 K; D/ Q" P& D" |) }7 N
* q+ K6 N9 L( C/ j/ z(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)% o5 v5 D+ P$ F0 F& {/ j/ S5 B
. {' O% F( ^( X7 B6 W0 N
在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值
; @8 v5 D5 q7 H: v; ?- t* r6 O8 W$ P( V
返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面
4 c/ q2 y- `# e* \1 S' l6 d! ?2 P7 s6 d! D% h! |# P
您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1