Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
265 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。
' R2 q& J6 [+ `) R$ E$ _
6 O  q8 x5 e4 E, I! S在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。
. M( q& ]+ M$ d+ A4 F# G# f5 H( Q% j1 T) Y7 L6 C! N/ T# f
示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
" H$ I: }2 A9 T# f
( j' @1 B2 x0 A( y8 q+ I第一个示例是版本 1 CID。9 }' V4 ?( R5 a! l

" d$ D  w  T* a查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:
5 a# [9 \& r/ h* I! f* v) M* V. G
$ R3 V# {9 D# u( V. ]4 c7 R* {2 IHuman Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读
8 o- |# G4 n3 j' r, A9 N, Y, c- G! Z$ F" F2 E1 O7 Y( C+ c6 y- V" O
Multibase:code是基址的标识符,在这种情况下b为base32。
3 H8 @1 y" B& t& \
( i1 h( I; Y6 h0 g7 LMulticodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式
: }: B, {1 z- V4 R0 y+ ?* R4 X* W* Z( W. H
Multihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)
) b$ `9 q; A6 f) w& l/ o
$ j8 h+ e2 d0 F3 I5 }4 G) W$ n从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。+ U% R+ e, {$ o- R

, q0 O) u# M+ l示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR% E! @- g4 m/ r: r3 q

+ [& @9 u" a5 c6 I  P# K6 g' z  y版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。: m+ E. I+ J8 Z6 e  A; Z
9 b6 x8 K- [, n
在Base32 CIDV1标签下,我们看到
. ]6 S1 ?" Z  @  \7 H( w0 f; R! v$ ~6 u
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。& W) k& Y, l0 d8 h. f+ ~+ F9 W
6 F+ c7 |; X+ {8 B' C7 N
还请注意,在此 CIDv0 示例中。
# o6 Q- w0 K  q$ z, z; T- o
$ W7 ~4 t+ c$ ^$ W6 y/ ?/ |' M“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。* s3 S' Z% `! t  r# D" u. u

* w! W5 S9 z. T  l为什么?这两个 CID 指向相同的内容。基本上,这是( S* \+ ^+ z+ U$ i/ q3 Y4 Y  g. ^

3 D( e4 i! g* Y# ?3 }9 V5 D( Ac3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。
& S: d# y2 X% X" |: T6 D7 P% l4 M4 D5 V/ l) _% ^- b2 P/ B6 ?3 l
转换 CID 版本" ?2 J4 t5 f- }
% X" ?8 E2 b. s! s/ M( t# Q
您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:& `2 Z2 `1 Q( n* }' e9 `2 I

3 U' t' y+ m8 hmultibase = base58btc
, X) u3 u! G6 e2 J7 f
/ S: r3 [" [- P1 s1 |0 Imulticodec = dag-pb
1 i2 n1 i: C) o% O, M1 k" {* |4 N$ \
multihash-algorithm = sha2-256
! K# r' p1 a1 J1 d2 C4 ~8 i5 R  R) p: D/ j. U
multihash-length = 32 (32 个字节,相当于 256 位)
  T4 H# \# l2 [( Y, r
) t* T6 p% H8 ~4 @& R5 v为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF
& Q  g& [+ @% a
# [  O# U$ n1 z) ^在浏览器中打开链接,然后从 URL 末尾复制 CID# g( O3 q/ J: f; r( f" p
( C7 ?7 @5 l# v: Y9 X
(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)! E2 s0 `8 r0 o$ D9 H. ?0 q

5 A3 j  A2 L. O. K7 W7 o( O( ^. l7 D在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值" E! s' f. o0 N, w

7 L1 l3 _% S* [5 Q1 [4 e返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面( i. T+ D4 U( ?

3 {0 a; H; ^* C( c/ c4 }. `您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1