本文由 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 專案的持續支援。我們很高興繼續與您一起,為人類資訊建立一個強大的,去中心化和高效的基礎。