以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > USDC > Info

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

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

天津與央企共同出資組建“通用機床”:推動區塊鏈等技術創新與機床產業深度融合:近日,天津市國資委和中國通用技術集團共同出資100億元組建的通用技術集團機床有限公司(簡稱“通用機床”),在天津市完成工商登記注冊,這家央企的機床裝備制造類二級總部正式落戶天津。天津市國資委副主任劉智表示,近期,合作雙方將推動所屬企業部分股權注入通用機床,預計十年左右,通用機床及下屬機床企業將突破一批高端數控機床領域的關鍵技術難題,主導產品總體技術水平和性能指標達到世界先進水平,產品數字化、網絡化、智能化水平將得到顯著提升,實現5G、人工智能、工業互聯網、物聯網、大數據、區塊鏈等技術創新與機床產業的深度融合,構建形成自主可控、安全可靠的國內生產供應體系,為實現“制造強國”和天津市“制造業立市”戰略發展目標提供有力支撐。(今晚報)[2021/7/20 1:04:38]

IPFS組件介紹

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

幣高CtopEX交易所與多米財經達成深度戰略合作:據官方消息,2021年5月12日,幣高CtopEX交易所與多米財經達成深度戰略合作,共同開發數字貨幣市場。

據了解,幣高CtopEX是一家全球化的數字資產金融服務平臺,為全球用戶提供以“現貨、合約、杠桿、抵押借貸、期權”為主的數字資產金融服務,此次雙方的合作將進一步完善幣高CtopEX交易所上下游生態,從而為用戶提供更多優質創新數字資產的投資機會。[2021/5/12 21:50:47]

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

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

幣記Bitget與啟航資本達成深度合作關系:據官方消息,幣記Bitget與啟航資本達成深度合作關系,共同拓展市場。

啟航資本于2019年進入區塊鏈市場,主要專攻ETH合約 ,BTC合約,FIL現貨,數字貨幣量化(現貨、合約)。致力于技術分析,資金分配 ,風險控制管理。自2021年2月份深入合作以來,跟單人數已超千人,日交易量上千萬usdt。管理資金更是超百萬u,實現利潤與風險雙向控制。所有策略都是實時更新,保障合作用戶實時跟上操作。

幣記Bitget總部位于新加坡,是一家擁有四國牌照的專注于衍生品的全球數字資產交易平臺,在日本、韓國、越南、加拿大等地設有辦事處。幣記Bitget的標桿產品為一鍵跟單,累計跟單數超過360萬,全球擁有150多萬注冊用戶,合約交易量位居世界前五。[2021/4/30 21:12:38]

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

海南將區塊鏈等前沿科技與社會治理深度融合:海南加快推進社會管理信息化平臺建設,將5G、大數據、人工智能、區塊鏈等前沿科技與市(縣)域社會治理深度融合。(人民日報)[2020/3/25]

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

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等操作。

現場 | 央行金融穩定局安起雷:區塊鏈已深度改變金融的形態 但金融的本質沒有變:金色財經現場報道,11月22日,2019環球數字經濟創新發展大會在京舉行。中國人民銀行金融穩定局高級會計師安起雷發表主題演講——《四大關鍵數字技術——追求高質量發展的創新思想》。他表示,區塊鏈已經深度改變了金融的形態,但金融的本質沒有變。金融是經營風險的機構,其生命力在于周轉。沒有周轉,沒有高效率的配置,金融則充滿風險。在監管方面,我國還是處于保守狀態的。在金融風險當中,我們看到了很多失敗的案例。如今數字經濟方興未艾,來勢洶涌。從市場操作的角度來看,規則一定是首要的,我們需要補齊短板。[2019/11/22]

文件存儲流程

文件上傳時將文件添加到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:LOCKLOCBLOCBLOCKLucky Blockblockchain錢包是哪個國家的block幣最新消息blockchain是什么軟件

USDC
比特幣:幣圈啟明燈:啟明老師8-13早盤回顧,午盤發展

早盤啟明老師給出了11680的壓力位,11680附件給出空單,行情在接近11650轉而下行,一路走到11500賺取了150個點利潤,開始回調在11550附件來回震蕩,日線級別的圖上看.

1900/1/1 0:00:00
以太坊:墨菲言幣:空頭趨勢明顯 操作以做空為主

大家好,我是你們的朋友墨菲言幣公眾號同步,墨菲bqxy710專注數字貨幣行情分析,爭取為廣大幣友傳遞最有價值的幣市信息,歡迎廣大幣友的關注與點贊.

1900/1/1 0:00:00
LOC:Blockstack 母公司 Blockstack PBC 承諾將 Stacks 代幣儲備等資產轉移給治理基金會

鏈聞消息,根據美國證券交易委員會的文件顯示,分布式計算網絡Blockstack母公司BlockstackPBC承諾將約1億枚、價值2300萬美元的Stacks代幣儲備、知識產權以及950.

1900/1/1 0:00:00
USDC:有道:BTC資金大量出逃,集體性無力震蕩出現,以太坊下行延緩!

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

1900/1/1 0:00:00
BTC:幣安幣長期價格分析:8月12日

在過去的24小時內,受歡迎的交易所Binance的交換令牌BinanceCoin表現良好。該代幣飆升了1%,目前每枚代幣價格為21.83美元.

1900/1/1 0:00:00
JST:BKEX Global關于第二期DeFi挖礦寶8月13日收益率的公告

親愛的BKEXer:? ?? 今日數據:2020年8月13日DeFi挖礦寶日收益率為0.0862%,年化收益率31.46%,收益幣種為YFII.

1900/1/1 0:00:00
ads