買比特幣 買比特幣
Ctrl+D 買比特幣
ads

LOCK:深度解析IPFS怎樣實現文件存儲_BLO

Author:

Time:1900/1/1 0:00:00

概述

IPFS-InterPlanetaryFileSystem星際文件系統,是一個點對點的分布式文件存儲系統,IPFS的愿景是構建一個全世界的分布式網絡,用來替代傳統中心化的服務器模式,所有的IPFS節點組成一個分布式網絡,每個節點都可以存儲文件,用戶可以從IPFS構建的網絡中以DHT(DistributedHashTable,分布式哈希表)的方式獲取文件,從而實現了新一代的完全去中心化的網絡,旨在取代現有的萬維網。IPFS功能很豐富,包括DHT組網,文件存儲,Bitswap文件交換等功能。本文主要介紹IPFS的文件存儲原理,文件上傳到IPFS節點存儲時,節點會將文件分塊后進行存儲,每個文件以MerkleDAG的格式組織,而MerkleDAG的根哈希則用來表示該文件。本文將對IPFS存儲進行詳解,所述的IPFS的版本為v0.6.0。

CID

在介紹IPFS存儲文件的遠離之前,先介紹一個重要的標識——CID,CID是IPFS中用來表示內容的標識,可以用來表示一個文件,也可以用來表示一個文件塊。如下所示,CID是一個字符串,它主要由Version、Codec和Multihash三部分構成,Version目前分為v0和v1版本,v0版本的CID可以由V0Builder生成,v0版本的CID以Qm字符串開頭,v1版本的CID可以由V1Builder生成,v1版本的CID主要包含三個部分Codec,MhType和MhLength,其中Codec是表示內容的編碼類型,例如DagProtobuf,DagCBOR等,MhType是哈希算法,例如SHA2_256(默認的哈希算法),SHA2_512,SHA3_256,SHA3_512等等,MhLength是生成哈希的長度,默認用-1表示根據哈希算法確定長度。

跨鏈去中心化賬戶系統DAS與NFT數據聚合平臺NFTGO達成深度合作:據官方消息,基于Nervos CKB開發的跨鏈去中心化賬戶系統DAS與數據聚合平臺NFTGO達成深度合作。目前,NFTGO平臺已經全站支持解析以太坊錢包地址所綁定的.bit帳號,并為DAS生態提供NFT數據支持,滿足用戶對NFT資產數據的查詢和管理需求。[2021/10/9 20:16:05]

IPFS組件介紹

IPFS用IpfsNode表示IPFS的節點,存儲相關組件的如下所示:

這些組件的關系如下圖所示,最上層是DAGService,它組合了BlockService組件,而BlockService組合了GCBlockstore組件,然后GCBlockstroe包含BaseBlocks和GCLocker兩個組件,最后BaseBlocks組合了最原始的blockstore組件。

Bitget與高盛學院達成深度合作關系:據消息,數字資產交易平臺Bitget與高盛學院達成深度合作關系,雙方將圍繞數字資產的合約板塊進行合作,共同推動國內市場和社區共識的發展。

Bitget總部位于新加坡,是一家專注于衍生品的全球數字資產交易平臺。截至目前,Bitget在全球擁有數百萬注冊用戶,合約交易量位居全球前五。

高盛學院專注于數字資產行業投資顧問培訓及二級市場技術的培訓,旨在打造區塊鏈行業投資顧問的黃埔軍校,高盛學院的團隊精英來自華為、網易、國內頭部券商等企業,旨在以專業化、機構化的方式解決數字貨幣散戶遇到的投資問題。[2021/3/2 18:07:20]

接下來分別介紹這些組件的功能:

Pinning:固定CID的管理器,主要負責將文件或者文件塊的CID固定,固定CID的塊不會被GC掉。上傳的文件最后的文件的CID都會被固定住,防止被GC。

IOST與Blocery達成深度合作 攜手變革韓國農產品流通領域:據IOST官網消息,近日IOST與Blocery達成深度合作。通過本次合作,IOST將與Blocery共同依托區塊鏈底層技術,攜手變革韓國農產品流通領域,打造更多鏈接線下的優質應用,加速促進全球生態落地。

Blocery是一個連接農產品的區塊鏈平臺,專注于解決現有食品供應鏈的流通問題,目前已在韓國獲得多項相關區塊鏈技術專利,2017年以來一直與韓國政府保持緊密合作。Blocery母公司EzFarm是一家的韓國領先的農業科技公司,年銷售額超1000萬。EzFarm將農業與IT技術相結合,提供智慧農場、農場生產管理、農產品直銷配送等平臺服務。[2020/11/18 21:12:57]

Blockstore:GCBlockstore類型,組合Blockstore和GCLocker兩個組件。

BaseBlocks:原始的blockstore,提供了對Block的Get/Put/Has/DeleteBlock等操作。

川渝高院將共同利用區塊鏈等技術 深度與訴訟服務進行融合:近日,四川省高級人民法院和重慶市高級人民法院采用遠程音視頻聯調方式簽署《成渝地區雙城經濟圈跨域訴訟服務合作協議》,根據協議內容,兩地法院將共同拓展人工智能、大數據、區塊鏈等新興技術與訴訟服務的深度融合,建立智慧服務共建共享機制。

四川省高級人民法院副院長張能表示,本次“云簽約”所采用的區塊鏈存證技術,尤其是音視頻存證、電子協議存證,是未來川渝兩地跨域訴訟服務合作的一次技術性“試水”。 他表示,未來在川渝地區一系列跨域訴訟服務合作的開展, 都將以此為技術支撐循序展開。[2020/9/19]

GCLocker:用來鎖住blockstore,保護blockstore防止被GC影響。

Blocks:提供Block的服務,組合Blockstore組件,提供了GetBlock/GetBlocks、AddBlock/AddBlocks、DeleteBlock等操作。

動態 | 蘭州市大數據服務中心將推進區塊鏈等新技術的深度應用:日前,蘭州市大數據服務和應用創新中心舉行啟動儀式。中心主要從加固基礎運行支撐環境、建立健全數據標準規范、拓展數據匯聚采集方式、打造數據運行維護體系、構建一體化數據運營體系等五個方面進行探索創新。下一步中心將圍繞實現“政通、惠民、興業”的目標,全面推進大數據、人工智能、區塊鏈等新技術的深度應用,不斷釋放數據價值、促進政務信息共享共用和業務流程協同再造,助力提升政府的現代化治理能力,助推蘭州市經濟社會實現跨越式發展。(人民網)[2020/1/13]

DAG:IPFS的默克爾DAG的服務,組合BlockService組件,提供Get/GetMany,Add/AddMany,Remove/RemoveMany等操作。

文件存儲流程

文件上傳時將文件添加到IPFS的倉庫中,上傳的流程可以如下圖所示,生成默克爾DAG的結構,生成的結構有兩種Layout:balanced和trickle的。這里介紹默認的balanced結構,首先生成root作為根節點,然后將文件分割,默認按照256KB大小讀取一個chunk,生成葉子節點,依次生成node1,node2,root節點會有Link指向掛在root節點的葉子節點node1和node2。root節點下面能夠Link的葉子節點數量是有限的,IPFS中默認設置的是174個。

如下圖所示,超過174個后則會新創建一個newroot節點,并Link到oldroot,新的chunk作為node3被newroot直接Link。

當繼續有新的chunk添加時,則會生成node34作為node3和node4的父節點,node34含有兩個Link分別鏈接到node3和node4。

IPFS在init的時候會生成.ipfs目錄,如下圖所示,其中blocks則為文件塊存儲的目錄,datastore為leveldb數據庫,其中存儲了文件系統的根哈希等,存儲相關的配置關聯在.ipfs目錄下面的config文件。

經過上面的步驟,文件已經切塊并轉化成MerkleDAG的結構,接下來詳細介紹每個塊是如何進行存儲的流程。

如下圖所示,一個Block存儲時,首先由dagService調用Add進行添加;之后由blockService調用AddBlock添加該Block;再調用arccache的Put,arccache是對存儲的Block做arc策略的緩存;再之后由VerifBS調用Put進行存儲,VerifyBS主要對CID的合法性進行校驗,合法則進行Put;接著blockstore調用Put進行存儲,Put函數中會對CID進行轉化,調用dshelp的CidToDsKey方法將CID轉化成存儲的Key;再接著調用keytransform.Datastore的Put,Put函數中會將前綴拼上,這時Key加上了前綴/blocks;然后調用measure的Put函數,measure是對mount的封裝;之后調用mount的Put函數,mount和IPFS的config配置文件中結構對應,根據key去查找對應的datastore,由于前綴是/blocks則可以找到對應的measure;調用該measure的Put函數;最后調用flatfs的Put函數,由Put函數調用doPut最終調用encode函數將完整的block寫入的目錄指定為/home/test/.ipfs/blocks/WD,其中WD來自于blocks/CIQFSQATUBIEIFDECKTNGHOKPOEE7WUPM5NNNSJCCDROMM6YHEKTWDY中的倒數第三第二個字符。這樣該Block則寫入了該目錄下面的文件中。

總結

IPFS文件存儲格式為默克爾DAG格式,每一層Links大小為174個,超過了則會重新調整。文件存儲過程中有多個Datastore進行了組合和封裝,每個Datastore功能比較單一,例如arccache只做Block的緩存,VerifBS只做CID的校驗,這樣做的好處是每個組件功能明確,不好的地方在于組合太多,調用深度太深,加上內部都是用interface,好幾個組件都實現了該interface,不便于閱讀。

IPFS的存儲模式面向互聯網用戶而設計,因為它的開放性,允許所有節點隨意接入,已接入IPFS網絡的節點可以自由查找內容,不適合直接用來作為企業的文件存儲服務。但其分布式存儲的特點,很容易進行存儲的動態擴容,可以通過結合節點認證機制和DHT查找內容的剝離,為企業的分布式存儲系統,另外配合區塊鏈技術,通過鏈上鏈下協同技術,很容易地解決鏈上存儲容量不足的問題。

了解IPFS和Filecoin資訊,參與Filecoin挖礦,可聯系IPFS研習社,微信號:XF2020IPFS

Tags:LOCBLOBLOCLOCKblockWRKMisblocBitBlocks FinanceBlockium

芝麻開門交易所
SDT:關于開通CRO、DOGE、STORJ、JST、FSN、HIVE、LAMB、WICC逐倉杠桿交易的公告_ETH

尊敬的用戶: 為了提供更好的杠桿交易服務,滿足杠桿交易用戶更精細化的產品需求,火幣全球站現將新開通8個逐倉杠桿交易對:動態 | 關于Facebook新加密貨幣Libra需要了解10件最重要的事:.

1900/1/1 0:00:00
DEFI:DEX會否沖擊CEX?流動性挖礦可持續嗎?為什么看好ETH?對話OKEx徐坤_DEF

2020年,DeFi大火,引發整個加密貨幣社區側目。尤其是自2020年6月DeFi社區采取流動性挖礦和Yieldfarming以來,DeFi各項指標一路飆升.

1900/1/1 0:00:00
MGC:CCR炒幣機器人:幣圈炒幣成功盈利只需做到這四步_mgcc幣怎么交易

這里沒有華麗的語言,只有最真實的心得。如果不喜歡,可以直接無視之。如果你看到面前的陰影,別怕,那是因為你的背后有陽光,逆風的方向適合飛翔,可是逆勢的交易只會死亡,不怕萬人阻擋,只怕自己投降.

1900/1/1 0:00:00
EST:奕恒說幣:8/13大餅,以太走勢“順風順水”小風險撬起大利潤_DELTARLP幣

走對思路的當然是賺的盆滿缽滿,逆勢操作的卻是苦不堪言,相信現在有許多投資朋友現在是深受摧殘,手上握滿了套單和鎖單正在苦苦支撐,那么這個時候干著急是沒有辦法的.

1900/1/1 0:00:00
STEP:有道丨(8-13)比特幣午間行情及策略_ONE

我們該如何在這樣波濤暗涌的市場取得一片生存之地?來自Ckcoin分析師有道給的答案是:精準的短線搏殺.

1900/1/1 0:00:00
數字貨幣:紫盈說幣:8.13比特幣投資千萬別和虧損談戀愛只需三招讓利潤起飛_數字貨幣拉人頭的傳銷

紫盈說幣:8.13比特幣投資千萬別和虧損談戀愛,只需三招讓利潤起飛炒幣學會止損,千萬別和虧損談戀愛.

1900/1/1 0:00:00
ads