Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
266 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。# i" o1 y' K* Z
' l8 C$ s/ E4 _3 y- ^9 b
在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。' i& S" G& n. v  R: U
( z4 v! j6 `/ b1 Y6 v
示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi3 z8 t! v; W& L( \. E: n
/ a* i, a) T5 G4 r( g5 ^$ t
第一个示例是版本 1 CID。
9 a5 a. o1 G7 S& H+ o& z7 K0 f. t6 s9 I& m( L$ e5 w% ?
查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:9 \0 q3 ~: F& M' C! m0 P

- q; f1 j7 `; _$ [Human Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读
; k8 r. R' |5 f) X/ S3 d! \8 `% V: N& \: t- A3 _
Multibase:code是基址的标识符,在这种情况下b为base32。
1 d; @4 O; J) A: t( }0 }, t6 a
; W# N0 {5 ]" Z& _/ s: U' V$ Q9 t2 [Multicodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式/ V8 V0 L+ \1 Z

2 e9 c1 Z0 S" gMultihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)8 B; @  I3 n) w! N5 m

3 I/ s1 D- C7 E: Q+ H8 K& H& \% X从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
/ I4 i8 O& b% Z' r2 L. I2 A, B# u$ w. K* T; ?( V4 s$ Q- Z& J
示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR
  W7 A; J& ~3 c/ [$ x3 t- {2 P4 ~4 `7 e1 M, E) o2 a9 r7 T7 t! `
版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。
& G8 q4 M9 l* f) L2 W; n! C/ V9 \5 s
在Base32 CIDV1标签下,我们看到+ T- N2 w/ g5 T( J* B
" M! g8 l: t) o! o+ W
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。
/ K0 \3 s7 i( v+ s) G6 W7 K. p/ q- V! [
还请注意,在此 CIDv0 示例中。
- C! }1 B0 p6 d3 f+ u
0 b/ m( K$ a7 t# G+ R  r“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。- [+ y; \3 D1 t

6 ]+ A% @6 C9 {+ s6 ]为什么?这两个 CID 指向相同的内容。基本上,这是
7 {1 w  J2 ?  z! {- z2 k, e8 b7 ^/ `! v
c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。- P& e$ J$ C4 A4 V+ s! o
' C" X5 @0 ?4 e
转换 CID 版本
+ o! W+ m5 H: `9 j6 |8 x
/ q: Y; N! e( o您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:% z$ P3 ~/ W) y* ]
  r" }% h$ o$ C( {* A8 G0 J& a9 C
multibase = base58btc- F- y# R- G! r& s3 H. y7 g/ w
; p# X# N6 s' t- _$ J' O: n/ A
multicodec = dag-pb
7 c0 |% G% k3 Y, Y6 z- k# f  V0 X. n# c! j, M3 [+ Q1 T+ m( g5 Q
multihash-algorithm = sha2-256( l& @- i5 B: P2 f, z; ~

9 b! K: r0 z# B& [4 Ymultihash-length = 32 (32 个字节,相当于 256 位)  w5 u9 u5 H2 S  ?

7 j! E8 ^/ K9 A! y% V9 H0 A为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF
$ p* ?8 m" I5 x' u& \2 _- q0 F1 @- Z! T, ]4 o. P+ D/ O" v% x
在浏览器中打开链接,然后从 URL 末尾复制 CID
: i$ z1 v( j. G3 I! T. h0 |- k5 n4 }" ~1 |4 K; E4 y
(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF), x2 E5 Z9 H0 ^, j2 q! ?' q

# j9 S, a# X* ~9 p7 G4 i在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值2 z8 S5 G$ w  G4 b; e2 H2 I
0 J) i7 K) ^0 r9 |
返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面
& B( a1 H4 Z/ H8 @' K
  q2 B5 E8 N% f, }# r: D' w$ U您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1