IPFS的content identifier(CID)

A content identifier, or CID, is a label used to point to material in IPFS. It doesn’t indicate where the content is stored, but it forms a kind of address based on the content itself.

IPFS協(xié)議使用CID作為文件的唯一標(biāo)志章钾,它根據(jù)內(nèi)容進(jìn)行hash計(jì)算得到翎蹈,標(biāo)志的是文件內(nèi)容存筏;而HTTP標(biāo)志的則是文件存儲的位置。
一個IPFS節(jié)點(diǎn)可以向它的peer詢問是否存有某特定hash值的文件幔摸,如果某個peer有這個文件,就返回文件。

由4個部分組成

CID當(dāng)前最新的版本是v1秀姐,結(jié)構(gòu)是:
<multibase-prefix><cid-version><multicodec-content-type><multihash-content-address>

  • multi-base:編碼格式
  • CID version
  • multi-codec:文件類型
  • multi-hash:hash值

舉個例子,將下面的CID轉(zhuǎn)換成可讀形式若贮,它表示使用base58btc編碼省有,cidv1版本的CID,文件類型raw谴麦,hash算法sha2-256蠢沿,hash值長度256 bits, hash值6e6ff7950a36187a801613426e858dce686cd7d7e3c0fc42ee0330072d245c95

# example CID
zb2rhe5P4gXftAwvA4eXQ5HJwsER2owDyS9sKaQRRVQPn93bA
# corresponding human readable CID
base58btc - cidv1 - raw - sha2-256-256-6e6ff7950a36187a801613426e858dce686cd7d7e3c0fc42ee0330072d245c95

支持多版本

這里的multi指的是它支持多個版本

  • multi-base的作用是縮小hash的長度,支持base64, base32, base58btc等等匾效。完整的支持列表
  • multi-codec標(biāo)志數(shù)據(jù)的類型舷蟀,支持raw, png, mp4, zip, eth-tx, bitcoin-tx, git-raw, md5, sha2-512等等∶婧撸可以看到它不僅支持圖片雪侥、視頻,還支持以太坊精绎、比特幣的交易和區(qū)塊速缨。完整的支持列表
  • multi-hash支持多種hash方法,md5, sha2-512, sha3-512等等

multi-hash

multi-hash又分成3部分:hash算法代乃、hash值bytes長度旬牲、hash值仿粹。不僅包含了hash值,還包含了所使用的hash算法原茅,實(shí)現(xiàn)self describing吭历,并兼容多種hash算法。
<varint hash function code><varint digest size in bytes><hash function output>
下面是使用4種不同hash算法對同一個文件獲得multi-hash擂橘,使用的是16進(jìn)制晌区。

multi-hash

  • 紫色的部分表示hash算法,不同算法有對應(yīng)的標(biāo)志通贞。
  • 綠色部分表示hash值長度朗若,這里都是256位,也就是32 bytes昌罩,使用16進(jìn)制表示為20哭懈。
  • 白色部分表示使用對應(yīng)的hash算法求得的hash值。

參考

https://docs.ipfs.io/guides/concepts/cid/
https://github.com/multiformats/multihash

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末茎用,一起剝皮案震驚了整個濱河市遣总,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轨功,老刑警劉巖旭斥,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異古涧,居然都是意外死亡垂券,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門蒿褂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來圆米,“玉大人卒暂,你說我怎么就攤上這事啄栓。” “怎么了也祠?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵昙楚,是天一觀的道長。 經(jīng)常有香客問我诈嘿,道長堪旧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任奖亚,我火速辦了婚禮淳梦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昔字。我一直安慰自己爆袍,他們只是感情好首繁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陨囊,像睡著了一般弦疮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜘醋,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天胁塞,我揣著相機(jī)與錄音,去河邊找鬼压语。 笑死啸罢,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的无蜂。 我是一名探鬼主播伺糠,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼斥季!你這毒婦竟也來了训桶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤酣倾,失蹤者是張志新(化名)和其女友劉穎舵揭,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躁锡,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡午绳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了映之。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拦焚。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖杠输,靈堂內(nèi)的尸體忽然破棺而出赎败,到底是詐尸還是另有隱情,我是刑警寧澤蠢甲,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布僵刮,位于F島的核電站,受9級特大地震影響鹦牛,放射性物質(zhì)發(fā)生泄漏搞糕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一曼追、第九天 我趴在偏房一處隱蔽的房頂上張望窍仰。 院中可真熱鬧,春花似錦礼殊、人聲如沸驹吮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钥屈。三九已至悟民,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間篷就,已是汗流浹背射亏。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留竭业,地道東北人智润。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像未辆,于是被迫代替她去往敵國和親窟绷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容