Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
238 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。
0 ~2 i( z% t9 o0 ?' z
5 h8 j: c' L6 x) j% P5 |在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。$ j5 Q% k) \; R" G; S. ^+ U. C

% C& K- K+ w2 n; p+ V示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi5 I9 F; t- e/ F* `
8 m% a- w1 l# O* c# j
第一个示例是版本 1 CID。
, E! z& p  S# o0 X- A4 g4 M" ?: |) R
查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:$ Y" N6 g9 y% e7 |& W+ E

. J, h$ f7 ~: [) H+ nHuman Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读
' q" l% i/ k* g1 a) @1 x# s) |) q  D( w
Multibase:code是基址的标识符,在这种情况下b为base32。* d% E. p2 {0 ~: @
& i! l' U; R0 E& `
Multicodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式
) B  w4 E) y3 ?/ A! W; o0 p, }) i, d- ^+ v, c
Multihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)# r7 ?. J* R' s
/ U. q! d$ G* q, [
从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。
( `# A+ F4 H5 s5 r3 G; L4 e( E( L8 y. n: [# R! @  J3 H* X
示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR5 ?9 F4 `% J. f* n% A

2 H% ~& F$ }8 b, K6 x版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。: |5 `) I6 }0 q- r4 Q7 h" L1 ?

" \6 B0 `0 m- v; z# G0 n! ]1 w$ |- q在Base32 CIDV1标签下,我们看到
* o4 g9 @3 s0 W. {
" ^9 c7 R% b# Ebafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。' u3 E; a' S1 H: s/ b3 Y
4 ]+ e8 p/ ?9 F! z! u2 R5 v
还请注意,在此 CIDv0 示例中。
+ |- ~* M6 {5 M  H1 ^( J& z, }% I0 E4 I; q/ ?! i
“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。+ `+ U' u. q/ [( k1 _9 V

/ u3 o7 s6 H1 a" h' Q为什么?这两个 CID 指向相同的内容。基本上,这是. {0 F  ^, i- w1 x( L
* O1 l0 s" S7 v" a6 b
c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。
5 R$ R; _, k! |7 t8 i
5 i  m7 b" I- r; T转换 CID 版本# U4 h6 d4 W8 v2 `8 h6 f4 ~9 T
" c* t3 ^' r# I
您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:
: u7 O" @2 L7 ^: L+ z0 q7 t4 f( T. o9 u5 q
multibase = base58btc
; M, x1 h( p9 Z& J0 u$ Q5 Z/ t# c* `; C4 w" l! V, H1 r
multicodec = dag-pb; m  ^8 n# Y0 |* g
) o8 \. X* J2 {: _
multihash-algorithm = sha2-256; q& X0 q" C0 s' s  A
! w, d' P. |7 Z  h
multihash-length = 32 (32 个字节,相当于 256 位)# i# A% A# |) f0 f# i
* Z, D% m' J9 w* y
为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF
- {# p5 j  v  P6 v8 ^4 r
! _; G$ U, f; H4 v. W+ F5 j' _在浏览器中打开链接,然后从 URL 末尾复制 CID
& z( O. `* _+ r9 b9 Y! \7 u; g# f
(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)* a. y* N* f7 I) {- A6 e% `6 |

* J; H' J* T1 J$ r* v. \在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值5 W) m, I3 w8 }2 P# n

; {0 V$ v% b8 o7 v1 D2 G" f" k返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面
3 m* V4 N% u, A' D( A3 l, ]$ V1 t9 O- w1 R. k' x5 g" q- U" e
您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1