Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

一个哈希,多个 CID 版本

袖矜
144 0 0
您可以将任何 IPFS CID 粘贴到方便的 CID 检查器中,以可视化其所有前缀及其代表的含义。8 _4 c7 }! \% X9 z% W

( S8 b8 o) s- R7 q: a6 x2 C在本课程的最后一课中,我们将介绍使用 CIDv0 和 CIDv1 格式的该工具的一些结果。
3 w1 p2 _+ a, e8 g* `0 _% H9 \: a4 ~: l8 J
示例 1:CIDv1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi7 B9 N. e. h) \5 a. {

; i6 R  U( z" [6 T第一个示例是版本 1 CID。
& L8 s' M& M; C- O' A8 Z
6 B' ~3 ]/ E4 Y+ `( q4 S查看 CID 检查器工具的结果,我们可以看到该工具能够为我们解析的几个部分:
/ M4 J* T8 B. S; W0 Q& |! I
3 j9 s6 ^* f! V  sHuman Readable CID:分解 CID 的每个部分,以便我们人类轻松阅读
7 X0 V  h5 n* v# b$ N* r: ]
" U' P, L( T3 aMultibase:code是基址的标识符,在这种情况下b为base32。
9 I$ O* V1 `: j8 |) R- q  S
" q8 m- z- ?2 X6 C+ E1 ZMulticodec:code是编解码器的标识符,在这种情况下0x70为dag-pbIPLD 格式1 t7 e% N0 j2 h( B

/ V( V3 c( g, Y4 y% O) lMultihash:将 multihash 分解为所使用的 hash 算法(18是的代码sha2-256)和hash的长度(256 位,等于 32 个字节)
5 U( m& @: X9 j) n: s0 A3 h. p- l4 Q+ \! d
从“人类可读 CID ”细分中,我们可以看到,在添加适当的 CIDv1 前缀之前,内容的原始哈希为c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。" ~* |4 R: i7 A" n, [# ~
% A/ N7 n$ \* O1 O+ W1 v
示例 2:CIDv0QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR! _2 J/ h8 v8 M+ ^
8 M* z+ x  q# E/ ]* v0 g( b
版本 0 的 CID 显示了一些不同的结果:multibase和和multicodec均被列为“隐式”。由于版本 0 CID 没有这些前缀,因此始终假定它们分别为base58btc和dag-pb。' S+ J4 S# u) M% x" e! z
9 w  J$ z) B* ~8 a% Z9 ~  F! W1 k
在Base32 CIDV1标签下,我们看到- N' k3 p) G; X# F% a
; n: M% K$ ]( u: L# k# R
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi,它与第一个示例的 CID 相同!CID 检查器为我们提供了从 CIDv0 到 CIDv1 的转换。
* D+ B; I0 R5 x1 F0 e4 h5 e/ ], [9 L6 \
还请注意,在此 CIDv0 示例中。
  ^4 H8 [1 K3 O8 R7 E3 o$ S0 A- T
5 P4 a) e5 g) R- q9 P& o* [& _“人类可读 CID”的末尾(前缀后面的部分)与 CIDv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a。* O4 a+ b! D' [' u+ l
, o! O/ T( {8 l7 I- q, ?$ i0 e
为什么?这两个 CID 指向相同的内容。基本上,这是! F2 y$ N; f; }; q7 U  R

4 I8 H4 W; _8 ]c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a在两个不同版本的 CID 规范中表示的相同的 hash()。  @4 j( Q* E0 f' A1 e) i
8 ^  V8 H& v4 q; {9 N( Y. V
转换 CID 版本7 x0 t+ Y% J: z) q, p

4 L& i7 N8 [$ Y% b" @" x- \2 M您可以将 any 转换CIDv0为CIDv1,因为 from 中的隐式前缀v0显式在中v1。但是,由于不CIDv1支持多个编解码器和多个库CIDv0,因此并非所有CIDv1都可以转换为CIDv0。实际上,只有CIDv1具有以下属性的属性才能转换为CIDv0:* y! F2 m" S: v$ X# c: ?  z
9 O; X6 U5 ^: x0 z
multibase = base58btc9 z+ t4 ~6 K6 @2 U' t' h8 m5 B( j
9 n& ?  ?' i) \! d! q
multicodec = dag-pb) y! U+ W$ S- a8 ?& ^

( I* |- ?8 K) ]. s3 g0 Imultihash-algorithm = sha2-256
) V9 O3 X; Y: Z6 C8 z1 K4 q+ C5 q
/ J3 \* w1 T2 N, ]% K1 A- ]2 qmultihash-length = 32 (32 个字节,相当于 256 位)
) e( v2 T) z9 {. P
* `2 F; M- ~% I  F4 ^为了检验这一理论,您可以在 IPFS 网络上查看我们心爱的aardvark映像,网址为:https://ipfs.io/ipfs/QmcRD4wkPPi ... DCL4zgpEj9CfuRrGbzF
8 O5 @( F5 W* z- V0 P. ?" s" r+ n6 K8 f: V
在浏览器中打开链接,然后从 URL 末尾复制 CID
$ ?- e; g. H; l0 x$ V
  d# O- R* c% Y0 O- z(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF); u$ m3 ^$ z) O8 h& v. Y- k2 D
; G6 U! {$ y4 ~, d, _2 b
在新的浏览器窗口中,将其粘贴到 CID 检查器工具中,然后找到在屏幕底部显示的等效 CIDv1 值
, w* l' }3 R' h" {, t( A0 v
# g1 Z) i- G- P) Q8 h" b& M3 d+ s: z返回您的 aardvark 标签,用原始 URL 中v0的转换后的v1CID 替换 CID 并刷新页面
; L' h0 g1 B6 d+ E- _+ g- O1 N; ^
您应该看到我们的 aardvark 的相同图像。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

袖矜 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1