Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
271 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。' v; R5 I+ M% Y7 d5 ]. i

) z5 y1 X  [  Q" r) c在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。8 M% g" F) L6 U- d! `
4 s: C" I1 I( Q2 b) ?( l
示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi1 {0 b7 W& \( Z" |1 N

& G4 Z" ^, }0 _6 A. b9 L2 @第一个示例是版本 1 CID。2 d7 e1 t" x5 l2 y$ y

% s2 d$ q$ X  q" P1 K" y' {& B查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:
0 |4 }+ s. \; z' ~5 q/ W; ]- Y- k, x& Z5 p) a. E7 V* T
Human Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读
: t  p' z/ G- I. C5 B, k7 @$ M* j9 `" s  u
Multibase:code是基址的标识符,在这种情况下b为base32。( k7 e) \5 m/ @9 u7 V" A

- {* J! r5 N- r- ?$ q0 WMulticodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式
) V; v- I7 W$ J/ x
5 t, m$ T4 H  W7 f/ s* fMultihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)+ @3 n- N4 C1 _7 g8 V2 m
2 c* E4 s$ E7 q- F! P, v* e; @) D
从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
  X6 Z! K1 o9 _
$ t! o/ X* n  F% v- J5 o示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR7 \6 O  h6 D9 y  @( d3 Z7 R. z! [
' E$ ?. i1 M' K, b8 Y. @
版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。
# L3 n& _. g+ p3 ~9 p$ J$ W0 u% v5 c
在Base32 CIDV1标签下,我们看到& \& S8 o2 O- b  Q: K3 n+ O

0 ^& |5 e2 w+ |" ]bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。
3 m: s  H) _/ Q, ?4 C+ r& d9 E, I7 M9 [$ m7 V) G) M0 f
还请注意,在此 CIDv0 示例中。  r6 ]* P; y/ W$ V4 t# |( n# ]
  n7 d0 P8 D9 @) N2 D; t' {0 F
“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
/ W. [" \" o, h2 C# G  Q7 ~1 E# ^+ v( F- V. x" U# ]; v7 Y, }
为什么?这两个 CID 指向相同的内容。基本上,这是( @) {' Q- v/ k$ k9 Y6 b/ y5 J9 K

- H9 W9 M/ H4 @5 Cc3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。
/ V4 {1 Z( z1 X) s* _2 s/ [4 @
. i5 A2 v4 h" v转换 CID 版本
4 d0 C1 w0 n- U$ _8 G: X9 \' N6 V6 K' Z' G+ d: {
您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:7 f& M! {# v" C9 t0 [/ y

1 T; E0 m# @2 j- y6 G* Y  H& e, S" Wmultibase = base58btc! l3 A" k7 T+ a9 Z# W5 U; M
/ y# {, R, t) f& w' f
multicodec = dag-pb
2 V5 e9 |3 O$ y1 z* s
4 V6 F7 l7 [% P; p) Emultihash-algorithm = sha2-256
  D3 `( e1 v" G+ R. g
" t" R  q7 e. y  n! G3 pmultihash-length = 32 (32 个字节,相当于 256 位)  e2 A+ L1 x  X) J% ^! J: K

( t; x$ t# a! n- L! R为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF4 @  L3 s4 S& G/ ]
4 @) M9 L; I9 `& \+ c+ Q# S
在浏览器中打开链接,然后从 URL 末尾复制 CID; F; n2 z* T& t

4 F$ N+ X6 T% T6 j3 n) i(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)
5 c+ {5 R$ i, T6 d$ ^# h# a
  m, r5 ]. r9 v2 e% w在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值
/ z+ [4 K" U8 \  O' X
3 x6 i( N- n$ f$ K返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面+ R- C* P) U8 D% a! n

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

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1