Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
269 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。
& r3 H$ _1 Z# r9 q$ n7 ]! ^; i4 B2 V+ a6 d5 Y
在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。6 @/ p. [! }! f

* p0 I8 {- V0 `% L示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
" G6 T$ c+ U) d, D* s- Z3 n. c& p1 @. s) K' G
第一个示例是版本 1 CID。$ l& o9 B" u; ~+ O6 G, f$ X

* R9 f. D/ [% |: N9 b5 D! K% Y5 Z7 q查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:
( E5 S. V* u6 P7 C2 J/ B" U" H
$ o  ]2 H# g4 B5 y, X& G) S1 X1 LHuman Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读, t5 N* l" r! f) ?

, R& v" ~: p- |+ R) D6 l: I+ @8 g2 ^Multibase:code是基址的标识符,在这种情况下b为base32。
3 K6 N, G% ~0 F6 K! q  X" t- z. \2 n. i5 T0 B5 P2 u0 V: j( V
Multicodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式
" |5 d& V* d$ v4 u3 b9 Q" n# \% S
Multihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)' w7 v  m1 c1 A9 P
5 i& `) {- E2 z' D
从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
# V8 _1 h: b; P) w" D" |. ?6 s# L6 F( p1 Y0 V4 a9 }$ ~$ }2 N  p
示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR7 I; I+ A  f! v$ ?; `' D

. t' S$ L( U. _/ z  G版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。) r$ \7 r; f& B3 d; y

' v: ~1 @# ]% j2 x% @在Base32 CIDV1标签下,我们看到
7 r) i3 u" f. K. u9 e- |4 J% H
- A8 I( k2 L0 \  @bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。" I3 J4 {. L+ K5 G# p4 r" ?% t
& s5 u" x" e9 }: {* _# {9 U
还请注意,在此 CIDv0 示例中。6 W1 @1 V' v9 C2 L$ f& O

7 h& d3 p, i* x# r" b“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
9 o) A1 P: O7 y8 X) R8 @4 v; h5 e1 C4 E  S! a& e7 k
为什么?这两个 CID 指向相同的内容。基本上,这是
: b# H5 u. c* }3 d- @$ h" L& |( w' A" z, G, w) w  B9 |$ J
c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。( c/ @% w- M, x9 ~) d1 h# d/ D

, {" _  @( K$ ^" B4 H, [9 j转换 CID 版本
) Q8 o; w6 h# _; U/ \7 X4 @* s5 i* A9 ~/ {
您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:0 f  \5 v9 Q  }6 r
# h% H( P6 b( N  C# Y5 ^& E3 h
multibase = base58btc
. _- ]2 u5 g! J  |" R, ]0 Y  o) ~5 s, i, ?! R4 j  z
multicodec = dag-pb
' F: l7 e& @$ }6 x( ?
) B) n8 u, R/ \, D2 Hmultihash-algorithm = sha2-2568 ~( u1 l( z% k& M2 v" l( g

" i5 I# E' d9 y) c; @  Smultihash-length = 32 (32 个字节,相当于 256 位)* M* W' `; z: C8 z% O

. Z5 ~1 h$ a. w4 q5 d1 @为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF
9 }: D; S8 J0 F" k
8 H( q$ ^) p. w( d5 g在浏览器中打开链接,然后从 URL 末尾复制 CID
: y" ~4 h7 k6 S. M6 l( Z) p( `  _) m9 @4 V" B: K6 a
(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)$ m6 |' H; s" ~4 ^
8 t2 w! F* G" b7 X; r, E9 t
在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值
" u7 o' E: U: f+ x5 B/ Y( x4 Q$ A) N! J. x" _% S8 I
返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面
% J5 X, B5 `, _- r0 ?1 S% B: D2 p) W( n) W8 [
您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1