本文由 filcloud 編譯整理
原文連結 :https://proto.school/#/anatomy-of-a-cid/06
您可以將任何 ipfs cid 貼上到方便的 cid 檢查器中,以視覺化其所有字首及其代表的含義。
在本課程的最後一課中,我們將介紹使用 cidv0 和 cidv1 格式的該工具的一些結果。
示例 1:cidv1
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
第一個示例是版本 1 cid。
檢視 cid 檢查器工具的結果,我們可以看到該工具能夠為我們解析的幾個部分:
human readable cid
:分解 cid 的每個部分,以便我們人類輕鬆閱讀multibase
:code
是基址的識別符號,在這種情況下b
為base32
。multicodec
:code
是編解碼器的識別符號,在這種情況下0x70
為dag-pb
ipld 格式multihash
:將 multihash 分解為所使用的 hash 演算法(18
是的程式碼sha2-256
)和hash的長度(256 位,等於 32 個位元組)
從“人類可讀 cid ”細分中,我們可以看到,在新增適當的 cidv1 字首之前,內容的原始雜湊為c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a
。
示例 2:cidv0
qmbwqxbekc3p8tqskc98xmwnzrzdtrlmimpl8wbutgsmnr
版本 0 的 cid 顯示了一些不同的結果:multibase
和和multicodec
均被列為“隱式”。由於版本 0 cid 沒有這些字首,因此始終假定它們分別為base58btc
和dag-pb
。
在base32 cidv1
標籤下,我們看到
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
,它與第一個示例的 cid 相同!cid 檢查器為我們提供了從 cidv0 到 cidv1 的轉換。
還請注意,在此 cidv0 示例中。
“人類可讀 cid”的末尾(字首後面的部分)與 cidv1 示例中的末尾如何完全相同:c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a
。
為什麼?這兩個 cid 指向相同的內容。基本上,這是
c3c4733ec8affd06cf9e9ff50ffc6bcd2ec85a6170004bb709669c31de94391a
在兩個不同版本的 cid 規範中表示的相同的 hash()。
轉換 cid 版本
您可以將 any 轉換cidv0
為cidv1
,因為 from 中的隱式字首v0
顯式在中v1
。但是,由於不cidv1
支援多個編解碼器和多個庫cidv0
,因此並非所有cidv1
都可以轉換為cidv0
。實際上,只有cidv1
具有以下屬性的屬性才能轉換為cidv0
:
multibase = base58btc
multicodec = dag-pb
multihash-algorithm = sha2-256
multihash-length = 32
(32 個位元組,相當於 256 位)
為了檢驗這一理論,您可以在 ipfs 網路上檢視我們心愛的aardvark映像,網址為:https://ipfs.io/ipfs/qmcrd4wkppi6dig81r5slj9zm1gdcl4zgpej9cfurrgbzf
在瀏覽器中開啟連結,然後從 url 末尾複製 cid
(qmcrd4wkppi6dig81r5slj9zm1gdcl4zgpej9cfurrgbzf
)
在新的瀏覽器視窗中,將其貼上到 cid 檢查器工具中,然後找到在螢幕底部顯示的等效 cidv1 值
返回您的 aardvark 標籤,用原始 url 中
v0
的轉換後的v1
cid 替換 cid 並重新整理頁面
您應該看到我們的 aardvark 的相同影象。
非常感謝您對 ipfs&filecoin 專案的持續支援。我們很高興繼續與您一起,為人類資訊建立一個強大的,去中心化和高效的基礎。
filcloud 幫你迅速瞭解 ipfs 領域的熱點技術和應用
公眾號:filcloud