概述
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表示根據哈希算法確定長度。
現場丨中國銀行業協會首席信息官高峰:大數據、區塊鏈、5G等多種技術生態融合有利于金融深度和廣度發展:金色財經報道,在上海舉辦的外灘大會上,中國銀行業協會首席信息官高峰現場進行主題分享《生態銀行讓金融更普惠》指出,5G為生態銀行帶來了新的機遇,5G主要是為移動場景下云計算、大數據、區塊鏈這些技術的基礎提供了環境,多種技術的生態融合,有利于金融的深度和廣度發展,場景能不能做成生態,關鍵是深度有多深,有多深才會有多寬。[2020/9/26]
IPFS組件介紹
IPFS用IpfsNode表示IPFS的節點,存儲相關組件的如下所示:
這些組件的關系如下圖所示,最上層是DAGService,它組合了BlockService組件,而BlockService組合了GCBlockstore組件,然后GCBlockstroe包含BaseBlocks和GCLocker兩個組件,最后BaseBlocks組合了最原始的blockstore組件。
陳曉豐:區塊鏈技術在金融領域的應用廣度和應用深度都得到提升:金色財經現場報道,2020年9月22日下午,區塊鏈行業應用反洗錢標準討論會在北京召開。杭州趣鏈科技有限公司質量標準部總監陳曉豐表示,區塊鏈技術作為“新基建”的重要支撐技術,在金融領域的應用廣度和應用深度都得到了很大的提升。趣鏈科技參與研制區塊鏈行業應用反洗錢的標準工作,將使金融領域的研究和探索進入了更深的層次,增強服務金融、賦能金融的能力和實力。[2020/9/22]
接下來分別介紹這些組件的功能:
Pinning:固定CID的管理器,主要負責將文件或者文件塊的CID固定,固定CID的塊不會被GC掉。上傳的文件最后的文件的CID都會被固定住,防止被GC。
Blockstore:GCBlockstore類型,組合Blockstore和GCLocker兩個組件。
BaseBlocks:原始的blockstore,提供了對Block的Get/Put/Has/DeleteBlock等操作。
聲音 | 解放軍報:加快推進區塊鏈軍事應用,不斷拓展其應用廣度和深度:11月20日,解放軍報刊文《軍報關注:區塊鏈如何影響現代軍事》。文章表示,區塊鏈由此所體現的技術特性,恰好可以滿足軍事領域的一些特定需求。區塊鏈去中心化的特性契合抗毀生存的軍事需求。區塊鏈可追溯不可篡改的特性契合作戰指揮強信任需求。區塊鏈透明開放集體參與的特性契合信息安全共享的軍事需求。在作戰領域,區塊鏈的去中心化、可擴展、跨網絡分布、強加密等特點,可有效提升作戰網絡的安全性抗毀性,大大增強作戰體系的彈性韌勁。在軍事管理領域,區塊鏈的機器信任機制,可減少軍事管理過程中人為因素帶來的不確定性、多樣性和復雜性。區塊鏈在軍事領域的應用,各國軍隊更是處于探索階段,加快推進區塊鏈軍事應用,不斷拓展其應用廣度和深度,可采取以下措施。1.加強區塊鏈軍事應用的統籌規劃。2.創新區塊鏈軍事應用模式。3.突破區塊鏈軍事應用技術瓶頸。[2019/11/21]
GCLocker:用來鎖住blockstore,保護blockstore防止被GC影響。
聲音 | 中國銀行前行長:區塊鏈等技術的深度融合將建立新的數字信任機制:在10月27日北京通州舉辦的“2019全球財富管理論壇”上,中國銀行前行長、中國互聯網金融協會區塊鏈工作組組長、第十二屆全國人大財經委員李禮輝表示,大數據、區塊鏈等技術將提供分布式、低成本、可認證的技術平臺,建立數字信任機制。區塊鏈與人工智能技術的深度融合正在建設新的數字信任機制,提高財富管理金融的效率。(億歐金融)[2019/10/27]
Blocks:提供Block的服務,組合Blockstore組件,提供了GetBlock/GetBlocks、AddBlock/AddBlocks、DeleteBlock等操作。
DAG:IPFS的默克爾DAG的服務,組合BlockService組件,提供Get/GetMany,Add/AddMany,Remove/RemoveMany等操作。
文件存儲流程
動態 | 京東云與京東數科深度合作 共推區塊鏈“上云”:7月17日消息,京東云在京宣布與京東數科達成區塊鏈技術服務領域的深度合作。雙方發布智臻鏈“云”建設規劃,同步上線了“區塊鏈防偽追溯”、“區塊鏈數字存證”兩款SaaS應用。[2019/7/17]
文件上傳時將文件添加到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:LOCLOCKBLOBLOCHebeBlockBlockPortalBlockNoteXbloc幣哪里可以交易
當你明白什么是趨勢的時候,交易就不再迷茫,當你明白什么是重點什么是次要的時候,說明你懂得權衡利弊.
1900/1/1 0:00:00鏈聞消息,量化數字資產對沖基金LedgerPrime管理合伙人兼首席投資官ShiliangTang在「CryptoTonight」活動中談到監管問題時表示,一些不受監管的期權更像是離岸期權.
1900/1/1 0:00:00內容紀要: BTC在近期走勢走勢連續兩天出現長下影線走勢,但是到目前為止走勢的反彈力度并沒有破位之前的平頂結構帶來的利空走勢反彈力度較小,成為比特幣走勢弱勢最終的定局,目前走勢做多就做以太坊.
1900/1/1 0:00:00親愛的用戶: 第一期「Curve流動性挖礦理財產品」上線后即被用戶搶購一空,應社區用戶的強烈要求,BigONE現已上線第二期「Curve流動性挖礦理財產品」.
1900/1/1 0:00:008月13日,Parity開發者WeiTang在推特上稱,在過去的一年中,ETC社區確實充滿了性,以及一直在玩責備游戲、且社區管理不善.
1900/1/1 0:00:00且聽風吟,靜待花開,流年已亡,夏日未到,種花的人變成了看花的人,觀望的人變成了交易的人,行情就像倒在掌心的水,不論你攤開還是緊握,終究還是會從指縫間流逝,利潤沒有等你,是我,忘了帶你走.
1900/1/1 0:00:00