概述
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表示根據哈希算法確定長度。
杭州市長:推動區塊鏈等技術在亞殘運會深度應用:金色財經報道,11月18日下午,杭州亞殘運會代表團團長大會開幕,杭州亞殘組委副主席兼秘書長、杭州市委副書記、市長劉忻表示,充分運用數字化改革成果,推動大數據、云計算、區塊鏈、人工智能等技術在場館運行、賽事活動、服務保障等環節的深度應用,全力呈獻一屆智能智慧的體育盛會。[2021/11/19 6:59:20]
IPFS組件介紹
IPFS用IpfsNode表示IPFS的節點,存儲相關組件的如下所示:
這些組件的關系如下圖所示,最上層是DAGService,它組合了BlockService組件,而BlockService組合了GCBlockstore組件,然后GCBlockstroe包含BaseBlocks和GCLocker兩個組件,最后BaseBlocks組合了最原始的blockstore組件。
接下來分別介紹這些組件的功能:
甘肅省首個5G聯合創新中心:聚焦區塊鏈等技術深度應用:8月3日消息,甘肅5G聯合創新中心近日正式建成使用,該中心是目前甘肅省規模最大、覆蓋面最廣的信息化展廳,主要聚焦區塊鏈等技術在教育、生活、政務、醫療、工業等領域的深度應用,也是推進政府數字化轉型、推動經濟社會數字化建設的一次具體實踐。(人民網)[2021/8/3 1:31:31]
Pinning:固定CID的管理器,主要負責將文件或者文件塊的CID固定,固定CID的塊不會被GC掉。上傳的文件最后的文件的CID都會被固定住,防止被GC。
Blockstore:GCBlockstore類型,組合Blockstore和GCLocker兩個組件。
BaseBlocks:原始的blockstore,提供了對Block的Get/Put/Has/DeleteBlock等操作。
GCLocker:用來鎖住blockstore,保護blockstore防止被GC影響。
Waves基金會與Suterusu基金會達成深度戰略合作:據官方消息,知名公鏈項目Waves基金會聯合旗下Gravity Tech同Suterusu基金會宣布深度戰略合作,共同推動二層隱私計算、公鏈和defi的合作,Waves和Gravity將集成Suterusu原創的零知識證明算法構建隱私二層網絡,給數據和交易加密。截止目前,SUTER在Gate和Kucoin的最高漲幅均超過72%。[2020/8/22]
Blocks:提供Block的服務,組合Blockstore組件,提供了GetBlock/GetBlocks、AddBlock/AddBlocks、DeleteBlock等操作。
DAG:IPFS的默克爾DAG的服務,組合BlockService組件,提供Get/GetMany,Add/AddMany,Remove/RemoveMany等操作。
文件存儲流程
動態 | 北京市2020年將推動區塊鏈等前沿信息技術深度融合:1月12日,北京市十五屆人大三次會議開幕。審查北京市人民政府關于北京市2019年國民經濟和社會發展計劃執行情況與2020年國民經濟和社會發展計劃草案的報告。報告提到,2020年將大力發展數字經濟,推動區塊鏈和人工智能、大數據、物聯網、工業互聯網等前沿信息技術深度融合,建好國家網絡安全產業園區。(新京報)[2020/1/12]
文件上傳時將文件添加到IPFS的倉庫中,上傳的流程可以如下圖所示,生成默克爾DAG的結構,生成的結構有兩種Layout:balanced和trickle的。這里介紹默認的balanced結構,首先生成root作為根節點,然后將文件分割,默認按照256KB大小讀取一個chunk,生成葉子節點,依次生成node1,node2,root節點會有Link指向掛在root節點的葉子節點node1和node2。root節點下面能夠Link的葉子節點數量是有限的,IPFS中默認設置的是174個。
聲音 | 國務院發展研究中心李廣乾:區塊鏈已開始與實體經濟產業深度融合,迎來“百花齊放”的大時代:金色財經報道,國務院發展研究中心信息中心研究員李廣乾在接受經濟日報的采訪時表示,區塊鏈的應用已從金融領域延伸到實體領域,電子信息存證、版權管理和交易、產品溯源、數字資產交易、物聯網、智能制造、供應鏈管理等領域。區塊鏈技術已開始與實體經濟產業深度融合,形成一批“產業區塊鏈”項目,迎來產業區塊鏈“百花齊放”的大時代。對于區塊鏈技術的前景,業內普遍看好。李廣乾就表示,我國區塊鏈產業鏈條正在加快形成,從上游的硬件制造、平臺服務、安全服務,到下游的產業技術應用服務,到保障產業發展的行業投融資、媒體、人才服務,各領域的企業已經基本完備,協同有序,共同推動產業不斷前進。[2019/11/5]
如下圖所示,超過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
尊敬的用戶: 為了提升服務質量,進一步優化API交易體驗,WBF預計將于新加坡時間2020年8月17日對API進行優化升級.
1900/1/1 0:00:00尊敬的EXX用戶: ????您好!根據市場的情況及用戶的建議,EXX將于香港時間2020年8月13日16:00開放SRM的充提業務.
1900/1/1 0:00:00不要認為失去了一切,不好為這點小事而沮喪,成功的路不只1條,重新開始,再來一次,其實,還有很多機會,只要咱們能好好的把握住.
1900/1/1 0:00:00各位朋友們,你們好,我是阿帆老師(aftb88888)。阿帆本著負責、誠懇、認真的態度用心寫好每一篇分析文章,特點鮮明,不夸張,不含糊,力求能讓大家看懂大的趨勢分析以及小范圍的多空搏殺力度!技術.
1900/1/1 0:00:00在比特幣誕生的第11個年頭,雖然加密貨幣這個概念仍然沒有被所有人接納,但這絲毫不妨礙這種新共識正在全世界快速蔓延.
1900/1/1 0:00:002020年7月,經推進海南全面深化改革開放領導小組同意,推進海南全面深化改革開放領導小組辦公室印發了《海南能源綜合改革方案》。方案提出:以市場為主導,激發能源企業技術創新活力.
1900/1/1 0:00:00