Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
181 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。
& Z0 L- R: P8 d
/ ?3 U/ k  K7 ]# e在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。
' y' V' P0 x( B5 B: p/ t0 q
9 p3 p7 }1 b- S( u  u/ r+ U示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi6 T' x  `( d3 ]: d4 D: J# I& J

5 W, C" t  n* n' m$ F1 g9 P第一个示例是版本 1 CID。
* y4 A0 ]) A; |% {; k: }0 M5 P4 c+ H& u; g/ i
查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:7 |" k2 [8 C  B; Y; B1 R

* L/ e; v* N% N! u0 ^Human Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读
1 q; ]# q# e/ O9 ^# [' K& C# i. {  p) q. ]# P, L
Multibase:code是基址的标识符,在这种情况下b为base32。: u4 t) J0 X' ^
8 F- H) i: k% `) t& ^
Multicodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式* t8 x% ?1 |$ e8 n9 J& s& D/ Z
" ~0 }; u% r) z/ R
Multihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)+ {/ O/ b6 t9 b6 H1 I5 b

3 P3 H% q, @) n4 P从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。' v8 v+ ~4 m& `6 X2 F

' h7 [7 i& r3 D* d  ^7 D" l示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR
3 ~1 m! x2 o1 i3 u+ z1 i0 R' M8 X4 r) ~1 K! t/ @$ U' a+ K3 |
版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。7 m* L7 d0 ^1 A( L3 o
. V6 J6 }' a$ Q: _  P
在Base32 CIDV1标签下,我们看到, [6 D5 K; e8 x4 T  l
7 y8 g! w9 w7 j7 i! h" ]7 ~: T, E, g: U, v
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。
3 t5 I! c' f  G6 \) p0 y" u( e
2 Y+ D; A4 K& r& q8 B8 Y, Y" Z8 s2 I还请注意,在此 CIDv0 示例中。# [: D0 F7 F& g( b

/ b$ H2 L& C1 S0 K7 b5 W“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。$ x0 u5 q: L: u( ]- c

( W2 I( o0 @% q为什么?这两个 CID 指向相同的内容。基本上,这是
4 }; O4 G6 Y, ]) L7 |# i! V! }2 O1 L
+ h2 R1 R0 K9 }1 _4 i% zc3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。
4 w2 A! U3 p  z5 J/ _2 ^, e) t8 ~# `% L# Q" c; H1 v
转换 CID 版本  L8 p; x: j) N7 K3 |: L
: o! c( [& Y- `6 F# y
您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:+ D0 E7 A7 p# a- n  m6 i/ u% R

1 q4 m( c" U: A8 X  V4 {( `$ g5 Jmultibase = base58btc
5 c4 B: N) U, u! `
3 [+ R: A5 P- h( o% Dmulticodec = dag-pb
4 f& I) O6 g2 y% U+ h- z8 V! M
8 H$ q! S! L+ wmultihash-algorithm = sha2-256
( D# @% ^  w% X0 [2 G1 J, L- }# e5 i$ y. _
multihash-length = 32 (32 个字节,相当于 256 位)
# B: C0 k5 T2 r: S
# G& \+ ?( [' Y为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF- u2 b8 w! w" C- P( O
4 b; b. I9 l) ?3 G- N+ e- i3 L) y5 m
在浏览器中打开链接,然后从 URL 末尾复制 CID& v8 n6 x$ f# q8 h

( i5 }) J, l9 Z  E(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)
: m# g4 P" h, a! q- Z
- B$ `" c" Y! A6 @- j: P. v4 F( l在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值/ z  o3 z* c! h. q
" w( x. ?$ b, a% Q5 }
返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面
  W2 f3 K) X  s) u4 J$ D
& T. q  R: R. c& l您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1