Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
153 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。
: c) h* N9 h  r6 h
0 ]/ }# d8 Y- y3 ]在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。" w2 S* L7 ^! H& N
3 h+ [" R1 y  r
示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi* H6 O, ~: [! y/ _5 E- G( C* O
! T& G. M# W8 S1 k1 s
第一个示例是版本 1 CID。
: i+ s" F5 s, i: C6 ^+ X$ ?: S. |' a0 ]+ ~; g7 \
查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:- m/ ?# ^/ w' S8 T. A0 u7 m
4 R/ o& `6 ^+ e9 E' D/ `
Human Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读# f2 |6 K6 h5 v( I+ K

6 f4 x6 d# ^% lMultibase:code是基址的标识符,在这种情况下b为base32。
  d3 q# Y& e5 x+ A
$ {0 a: E; {% d' j& G& f+ @! `Multicodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式! l" L6 L2 l- `9 r9 N6 P
3 N0 P8 D. }, \# t8 X
Multihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)
+ @) p% t; u' e: I; l: I0 Z) D' j# @& ^$ z
从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。8 C: W# g$ u+ ^2 v/ }4 ~
; \( J* A; {3 w, l. ]
示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR0 p# U% o- @. X/ ~1 E* j

( x% g/ F' e( w5 ]版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。" {9 Z5 Y2 F8 @6 U+ n+ S* E$ |, {3 G0 B

; S) R0 D* `4 ]0 l: W. i在Base32 CIDV1标签下,我们看到
. f  f5 E. M" X' K: `% a) b/ X! m4 `3 t+ N' ^
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。
4 c1 s. ~- G" J6 O4 Y+ _) B0 Z0 @' I8 k
还请注意,在此 CIDv0 示例中。
* i. N5 V2 B9 U" Q- \
- u, h+ q5 _& J. M5 e“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
( e. @2 J! `7 x- v2 `
& o1 [/ _3 S# u, K  @为什么?这两个 CID 指向相同的内容。基本上,这是
$ O: \6 v. V  T) @9 R% t
; t. g  w. o# ?3 y  _$ [c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。
% z1 c. ^; c3 W: }
2 }% [: ~- }1 v5 o: j转换 CID 版本2 h. m# n; p8 E! z& ?

) |0 I5 R2 \# c5 ]- N您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:
' V+ R1 S1 ~' }  @- M" d' {# [5 ?
multibase = base58btc
' o/ A/ Z$ o' m8 H) ^- ^* j) {4 V, E1 R4 a& [. u) R7 K
multicodec = dag-pb
+ z5 b/ {4 X. [% l5 I$ L
9 a" ^* W' l$ h1 b! ]$ O# Bmultihash-algorithm = sha2-2560 n9 r/ V: G* H4 J3 g+ O# z8 C
# {6 g; [( z4 `7 @, R, }3 K
multihash-length = 32 (32 个字节,相当于 256 位)' e0 e1 _3 _6 J9 ]- n
0 _% n' d* S/ L( u4 ^# ]' @
为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF; k- M& e: m8 G# H  c+ R* e

- w* Y$ ?; w7 j. I2 u% `在浏览器中打开链接,然后从 URL 末尾复制 CID' ?9 r8 T. H) k" B3 f

0 b) e. |- v- x+ y; q7 K0 O/ u2 r6 \(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)* W, I2 O3 D! L

3 v' d! `; o' D. X在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值  H6 N+ h4 P! F! A( z. a' o% y. h
' n% }6 }: ~' O1 H3 u3 {# I
返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面3 q* Q" ?$ D( p3 j! g$ a$ w7 K

3 K8 J' H- b. M; I1 L9 ~您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1