Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
148 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。% \2 `2 L, p" \0 i: ]6 [
6 n4 ^# M( r: X& N3 w
在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。
3 x- g4 n( ~# C& C" c  F* l6 ?& H( f  |6 c
示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi4 s7 b7 g* `, s
/ i9 M6 P3 B0 g' c( N5 A, [
第一个示例是版本 1 CID。* [, R* R" M  m' u* k, z* l

, \, T/ n4 |( }" c4 M查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:" N( Z3 N4 x( C: P1 ]
' Y% t( v) [5 q- H$ f7 u
Human Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读
3 m: _8 ^8 n) {3 A4 t. l2 G) O5 T' t
Multibase:code是基址的标识符,在这种情况下b为base32。) J/ K9 P* v* u. o1 Y. s

4 Z) p! L% ~5 DMulticodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式- g4 u# k, `7 r6 I# I  I: ^) l

8 a" R, S8 ^  K/ o5 Q$ ]Multihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)
3 y/ T& r0 T1 L0 h; _$ p* x% n/ t5 x6 S$ N
从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
. ~1 e) N  A4 l; T
/ K9 {; c$ U& b3 N9 l' K示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR
( Z( T6 O" @. P, W4 `* P: C5 N8 ?' B) b; z  \  s7 x
版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。7 `4 p- a4 P4 g4 e4 {  k( k* W9 N
6 @4 O! h* N3 m- c7 m
在Base32 CIDV1标签下,我们看到
- Z, E: }( ^* ]1 h: S8 H, M2 J& W8 A3 B1 y& y7 o$ O* J
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。" Y6 c; W; D, z3 o: q

# ^1 d: Z) z, B/ p还请注意,在此 CIDv0 示例中。! o8 u& J; C. u- f" o1 G* `" c; R0 }

9 a1 e: V. ~: z) i# Z3 M3 o“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。* `7 t& X2 x: ]  u6 Q* i8 M- b4 P$ u+ F
0 u5 Y  T9 X1 L3 B; g/ Y. d: o+ ?& n4 N
为什么?这两个 CID 指向相同的内容。基本上,这是
4 {( K1 E0 Q5 G: v4 V2 J- g! f
; o- }5 p) J! \; {c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。, y  [2 O0 O9 ^) \0 S; ~

' `3 C6 g) Q7 K* ^% q( R5 H转换 CID 版本
, ~, M: y( \. F- z1 c% y- x) j# p1 P/ s. K0 F3 C
您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:
9 `; o$ e" p2 T+ e# l: U: O' r! E3 e+ O! q
multibase = base58btc
: F- @% M0 q* e1 Y+ o  N
/ n2 o  G3 G8 O  u3 G& Wmulticodec = dag-pb
5 v% m# h3 n" h) r; a$ Y0 l7 e# N1 r+ n( r* J5 z- o, E
multihash-algorithm = sha2-256
9 M7 u  ]6 L+ W% z9 ?0 \4 z5 G4 B( }( J9 k
multihash-length = 32 (32 个字节,相当于 256 位)
$ Q5 I. g  z3 @4 ]9 o
- J0 a! F6 n; c* i; f. `为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF& j. K9 o* j. T) p9 w# v) e
' e5 h3 C) {  z. I$ g' r
在浏览器中打开链接,然后从 URL 末尾复制 CID
: H, ]2 i& z- h6 [2 s1 D0 K
4 Q* z# B7 z" y  Z(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)
. A3 Q* ?6 V- K2 C: O! B6 ~" g0 Z! a- R8 e9 P2 [) v' @' y  Q- N& j
在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值  D) ?: Q# ?/ I7 I. b- E

3 y  o, C3 a7 C2 j返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面
8 i. L& U; L! ^, ?- X: d; v* p# G+ Z5 I4 ^1 n# J* o% E* R. d
您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1