Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
145 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。& W! O/ v9 w, u; V2 F. W% g7 n: B
3 i" i! F+ F; X5 u* d. p$ l- v+ O
在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。
# G0 R9 N, V8 K9 y, J" Q
4 g/ C( Y; q9 _% t8 {示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
9 V2 W% v% _, c1 F3 A! j2 e+ M- T4 h/ J) o
第一个示例是版本 1 CID。3 e  f2 @$ U9 I  h0 M
* [1 Q3 ?" j# |* A6 ]( S
查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:
1 T6 J, S6 Y& S  _1 B$ n
8 t7 W$ S* ^. T! Z! LHuman Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读
) o, F$ Z  i6 y" I4 o0 y4 y# u  D: p8 X
; U8 {6 c: W/ z8 |; O1 s; \% J/ MMultibase:code是基址的标识符,在这种情况下b为base32。4 t4 j3 O  S- h4 Q3 d* ]! s
2 N5 a7 D- }& c! H! y; t
Multicodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式
: U3 ?7 j5 O; p0 L/ A# u4 u  Z  r
* c# c' K6 V( M5 u; \7 p0 q3 mMultihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节); o( ^  S9 v( L; Y
, E% C* H8 s2 R; u9 a+ t8 z
从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。" h" [4 I) m8 h1 o: w) K; }: V8 R

* U0 ~# s! W  e示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR
5 Y$ w' Y2 t6 Q6 p, U  ~4 O) }" }
" X/ O+ R' G8 B# v* m# g版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。
1 c, k) h: {4 @
! b( l6 ?* }0 G, ?在Base32 CIDV1标签下,我们看到( k! y# m1 O( B9 d& T

* d; h* N/ I" }+ N7 j: Cbafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。
0 U' Z& G4 \4 ]/ F4 c( F  I
. f' D3 `/ q5 i' r$ s: ^1 D$ u$ B还请注意,在此 CIDv0 示例中。! |9 D! ~: |6 ^, W* p  i
4 o9 _( d4 w+ g$ G" p0 [2 G5 D
“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。0 g6 K0 `/ `0 `
& H2 M& `# U; s7 h% |' [
为什么?这两个 CID 指向相同的内容。基本上,这是
2 z- N0 |" k# V1 V
7 a' L% V# m4 f5 \' [c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。
; O: }6 q6 |! k) ^. D! e$ A0 d; X& ~8 u" v4 e
转换 CID 版本. D  j% C6 H0 Q6 s6 L% J2 O

$ f% w% u" t8 b# A您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:
* p9 p; ]: x" Y# |: q4 V* r) e6 N% h; x9 Z1 o
multibase = base58btc
6 l9 z4 g: y) j  g- |, B- d' H
4 Y' @9 \4 {) pmulticodec = dag-pb
$ ^* \7 V/ ?3 z; [- V# t, }
$ P1 k0 R2 q+ f' a  Y% Hmultihash-algorithm = sha2-256
4 |. h. \8 O0 i" ~" X! N$ O+ |3 M1 j  l# T  F1 l
multihash-length = 32 (32 个字节,相当于 256 位)3 P. n4 M" h& o
' t  g6 J# a" |
为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF
& A" P2 P9 u& G9 [8 ~0 h
. E2 }2 i, G1 S' B' O! M在浏览器中打开链接,然后从 URL 末尾复制 CID
0 c4 D! b3 l" V$ r
9 `) k3 P1 y5 w0 q(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)
; a: P2 t5 u" w! `& l7 K) C$ a6 ^: u& U
在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值
+ {5 `( }8 P/ a- ~! S6 ?
1 N* r2 v* c& D4 [$ _& I0 V) B6 V返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面  h* K! v! U) Z9 \+ U) r) K$ Y7 r
9 R+ o, G  E5 i' i
您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1