比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > Uniswap > Info

深度解析IPFS怎樣實現文件存儲_LOC

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表示根據哈希算法確定長度。

投資策略師:比特幣處于某種深度價值區:金色財經報道,股票研究分析師和投資策略師 Lyn Alden 與艾美獎記者Natalie Brunell就比特幣進行了交談。奧爾登對比特幣價格有這樣的看法:

當比特幣交易價格在 30,000 美元左右時,有一些跡象表明可能已經觸底。但就宏觀環境而言,目前還沒有很多看漲催化劑,因此我不排除價格明顯進一步下跌的可能性,但我確實認為,基于大多數對比特幣或回顧比特幣的歷史,我們在這里處于某種深度價值區。 只要宏觀形勢如此不確定,我認為投資者永遠不應該排除更多下跌的可能性。(cryptonewmedia)[2022/7/11 2:04:03]

IPFS組件介紹

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

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

韓國Summony Asset資產管理集團 與TrueChain達成深度戰略投資及合作協議:據韓國政經新聞消息,近日, 韓國Summony Asset資產管理集團與第三代公鏈的代表TrueChain達成深度戰略投資及合作協議。據悉,Summony Asset將投資TrueChain,并將聯合其合作銀行針對TRUE發行新的金融產品。自2020年成立以來,Summony Asset一直在運營和咨詢價值數百億韓元的數字資產,并在韓國金融業和數字投資中擁有不同尋常的影響力。[2021/3/29 19:26:52]

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

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

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

動態 | 最高法:積極推進區塊鏈現代科技在司法領域深度應用:最高法:積極推進互聯網、人工智能、大數據、云計算、區塊鏈、5G等現代科技在司法領域深度應用,努力把智慧法院建設提升到新水平。[2019/11/1]

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

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

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

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

WECC和混沌工作室達成深度合作:WECC和混沌工作室就版權保護和IP商業化開發達成了深度合作。混沌工作室為國內知名動漫工作室,旗下出品了《混沌白書》、《惡魔大樓》、《帝國的絕兇虎》等作品。其中,《惡魔大樓》在小紅書上點擊2.2億,人氣8883.7萬;《帝國的絕兇虎》點擊1.1億,人氣5074.1萬。后續,WECC將和混沌工作室旗下系列作品將在授權合作及版權保護等方面展開合作。[2018/6/9]

文件存儲流程

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

上海保交所與中國信通院簽署合作協議 雙方將在區塊鏈領域展開深度合作:近日,上海保險交易所與中國信息通信研究院在北京簽署合作協議。據了解,雙方將集中優勢資源,依托可信區塊鏈計劃,在區塊鏈技術與標準研究、企業區塊鏈應用、行業推廣方面展開深入合作,共同推動區塊鏈、大數據、云計算技術與保險行業深度融合。[2018/4/11]

如下圖所示,超過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:LOCLOCKBLOCBLOBlockMedal TokenGreen BlocksBlockearthblockchainBusiness官網

Uniswap
NKN雙周報 2020年7月16日-31日_OBI

●本周看點 ●nMobile1.0現已全面上線●nMobile功能演示小視頻發布●NKNCTO張逸倫博士中文采訪文章 主網技術開發更新 主網最新數據 ●遍布40個國家和地區 ●覆蓋164個電信運.

1900/1/1 0:00:00
慧子預言:8.13以太坊沖高400有望?_以太坊

慧子預言:8.13以太坊沖高400有望?貪婪可以說是我們人類的一種本性,也是影響我們心理平衡的另一個重要因素。它是由過分自信和試圖在短時期內獲取大利的欲望構成的混和物.

1900/1/1 0:00:00
Gate.io 關于YAM調倉處理情況和重新開啟交易充提公告_GAT

Gate.io已經為YAM提案完成投票支持,感謝每一位用戶的支持。根據最新YAM官方進展,YAM修復提案已經初步滿足通過調節,但是仍需要保持投票狀態等待3天時間.

1900/1/1 0:00:00
Sandbox(SAND)將開啟搖號抽簽_SAN

親愛的用戶: 根據TheSandbox的搖號中簽規則,幣安將于2020年08月13日14:00開啟簽號申購,用戶可于網頁申購頁面或APP客戶端中查看申購資格并進行申購.

1900/1/1 0:00:00
DXD(DXDao)_DXD

Hotbit不為任何區塊鏈資產做信用背書,所有相關介紹均來自第三方并有可能存在錯誤與遺漏。區塊鏈資產投資是高風險行為,您必須自行承擔價格有可能歸零的風險,請根據您自身能力謹慎投資.

1900/1/1 0:00:00
霍比特交易所關于杠桿ETF交易區上線ETH3L/USDT、ETH3S/USDT的公告_HBTC

尊敬的社區用戶: 為滿足廣大用戶交易需求,霍比特交易所將于2020年8月14日16:00在杠桿ETF交易區上線ETH3L/USDT、ETH3S/USDT.

1900/1/1 0:00:00
ads