Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
141 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。
) o9 A4 k$ a6 I0 I0 K) Q+ b* a
在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。
$ i4 t; I! K5 z$ U5 o% @$ }9 G$ j$ h. n
示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
1 [* I1 W4 F. I! A* Y- ^5 ^, C' k' u8 d/ k! `
第一个示例是版本 1 CID。" @+ K0 [' i6 D, }

) M2 [, c4 |7 R  [& J查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:2 \( s) ~  i' O% }
6 p7 q! Z8 ~# G6 X- ~5 g0 r
Human Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读& i- T/ m1 t: r( Z( P
+ _4 Y+ W+ Z8 T3 E1 R% g1 h
Multibase:code是基址的标识符,在这种情况下b为base32。
" l' d! D, U+ d2 T7 H( m$ o) y( _; r$ h0 M5 Q1 P6 B4 E1 Y, Q' q
Multicodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式4 ?* }1 F/ D/ `0 E

6 U1 j) X1 W' S" X( E2 ?) }Multihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)# v5 n8 B9 e7 A6 F' p1 F6 P9 y- J

1 t/ n0 q* D! p从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
8 Q& I# |" y" J; j4 c/ n8 P/ P7 M: ]+ h0 v" g% o8 \9 Q
示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR
+ \4 R, A, k, v+ @2 u# r+ z9 V) e4 T4 X1 F
版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。- e$ u  D  v1 x* B$ a+ Q
: K8 z- `- D8 T  ?  P
在Base32 CIDV1标签下,我们看到
' k, q3 ^8 e4 p/ _" [3 C& i  ]& ^5 k' m7 l
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。$ A* {" o: T' o! W
' e2 ~/ W5 f# V( Y4 M9 O/ x
还请注意,在此 CIDv0 示例中。
3 N  ^" b& W  _: T8 ?
4 d! N. a; w, h4 N! ^) q  |% C“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。1 |1 b  p9 ~% N% @
# P& f+ s  W8 n
为什么?这两个 CID 指向相同的内容。基本上,这是3 P! p- _7 t' l# P% M) n

2 R/ O6 e! d% L8 f5 w; g) o- Sc3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。
& c; F$ q% x8 N* e2 H$ i4 a  [4 F; J, L# v0 K! d! ^& r* A
转换 CID 版本
4 b# I) O% A3 Y- B" e7 x
" F* d! o$ `0 I( X" b您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:2 B" ^/ ^5 \4 M5 Y, ~

1 m3 \5 _5 ?2 s1 ^" x) U; Pmultibase = base58btc
2 a% G' X9 n& K; d2 y& C' d2 X& A2 G5 b; u0 b% P
multicodec = dag-pb2 g0 G2 d- H$ t! [! t7 G/ p
3 }( H% b; u% ]0 e
multihash-algorithm = sha2-256
' l3 T: L$ C) T% X/ Z
% }* V$ q2 u$ ~& Q" @- D( u9 bmultihash-length = 32 (32 个字节,相当于 256 位); n. _2 |4 r9 s' Q$ V" X; _) q
# E( L' q% \  x8 \
为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF4 x1 r( `7 F, d6 d, T+ _! a
% r, L1 Z5 Y* [; i3 M
在浏览器中打开链接,然后从 URL 末尾复制 CID
! g0 e" A( z( e. u
, c& A; A0 ?) `0 K, c2 M(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)  g0 s/ I. l/ p6 }( D3 k' R1 Q# f
2 ]. p0 @+ M. C' [
在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值6 h* C. S: K1 Z

, `2 _7 r- U" A3 M返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面
' f) u+ E! M# B* z, h( j* j  r! R. z% j0 Z7 I2 r0 E; y# r3 R
您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1