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

科普 | IPFS中MFS以及GC機制_區塊鏈

Author:

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

概述

IPFS的介紹在《IPFS文件存儲詳解》已經詳細介紹過,本文主要介紹IPFS中的文件系統MFS以及文件的GC機制。

MFS和傳統的文件系統一樣使用目錄對文件進行管理,區別在于MFS中的目錄和文件都有哈希,該哈希由文件內容或者目錄下面所有目錄以及文件的內容唯一確定,如果目錄下面的文件或者目錄有變化則該目錄的哈希也會變化,所以根據哈希可以判斷該文件或者目錄下面的內容是否有修改。

文件的GC機制主要介紹IPFS是如何進行文件刪除的。

本文所述的IPFS的版本為v0.6.0。

MFS

本版塊主要介紹IPFS的文件系統,即文件及目錄結構是如何生成、組織和存儲。

MFS中文件及目錄結構如下圖所示,最上層是root目錄,表示該文件系統的根目錄,所有文件夾以及文件都在該目錄下面,MFS中用Root,Directory,File這三種類型分別表示root目錄,文件夾,文件。root目錄通過link鏈接到文件夾或者文件,文件夾又通過link鏈接到文件夾或者文件。

聲音 | 浪潮集團云南分公司總經理:云南區塊鏈產業發展需從“科普”到“專精”不斷深化:據昆明日報消息,浪潮集團云南分公司總經理鄭昕表示,云南區塊鏈產業發展需從“科普”到“專精”不斷深化。下一步,浪潮將繼續加大云南農業產業高質量發展體系建設力度,重點以普洱茶等云南優勢產業為切入點,打造云南“綠色、有機農產品高地”的品牌形象,并在此基礎上,開展基于區塊鏈的供應鏈金融服務,解決中小企業貸款難、貸款貴問題。[2019/11/11]

其中,root目錄、文件夾都會存儲在IPFS的DAG中進行持久化,另外root目錄的CID存儲在IPFS內置的LevelDB中,當IPFS啟動的時候從LevelDB中取出root目錄的CID,然后在IPFS的DAG中取出根目錄,最后加載出整個目錄結構。

動態 | 幣安科普MimbleWimble算法:幣安官方推特今日發布隱私算法Mimblewimble的科普貼,在下方留言區大量網友留言猜測是否是基于 Mimblewimble算法的隱私幣Grin或者Beam即將登陸幣安交易所,其中猜測Grin的呼聲更高。[2019/9/2]

下面詳細介紹創建文件夾和增加文件的過程:

創建文件夾的過程如下圖所示:

1.新建文件夾;

2.將該文件夾的父文件夾添加一條link,link包含該文件夾的Name、CID和Size;

3.調用該文件夾的update函數,通過parent遞歸更新父級文件夾的狀態,逐級向上層文件夾更新,直到更新root結束遞歸過程。

刪除文件夾和創建文件夾類似,只需要unlink和遞歸update即可。

動態 | 央行官微舊文重發“再科普”:范一飛詳解數字貨幣:據中國經濟網消息,今日,央行官微公眾號頭條重新發布央行副行長范一飛在2018年1月25日題為《關于央行數字貨幣的幾點考慮》的文章,對央行數字貨幣再次進行科普。同時,微信公眾號第二條發布支付司副司長穆長春8月10日在第三屆中國金融四十人伊春論壇上的演講。近年來,各主要國家和地區央行及貨幣當局均在對發行央行數字貨幣開展研究,新加坡央行和瑞典央行等已經開始進行相關試驗,人民銀行也在組織進行積極探索和研究。[2019/8/21]

增加文件的過程如下圖所示:

1.?上傳文件

2.將該文件的父文件夾添加一條link,link包含該文件夾的Name,CID和Size;

動態 | 浙江衛視節目科普支付寶區塊鏈防偽溯源產品:昨日,在浙江衛視播出的科普綜藝欄目《智造將來》現場,支付寶首次展示了支付寶區塊鏈防偽溯源產品,以接地氣的方式公開向大眾展示區塊鏈在生活中的應用。[2019/3/4]

3.調用該文件的flush函數,通過parent遞歸更新父級文件夾的狀態,逐級向上層文件夾更新,直到更新root結束遞歸過程。

刪除文件和增加文件的過程類似,只需要unlink和flush即可。

文件GC機制

IPFS中刪除文件時并不會立即刪除掉該文件,而是將該文件的CIDunpin,下次GC的時候則可以真正的刪除該文件。

下圖是IPFS的配置文件,其中紅色部分是GC相關的配置。

聲音 | 中科院姚建銓:要加快推進區塊鏈與物聯網融合的科普 培訓:據新華網消息,日前,在區塊鏈與物聯網融合發展峰會上,中國科學院院士姚建銓說,關注區塊鏈技術里面的大數據,跟區塊鏈技術結合起來進行測量和檢測,能更好地提升激光清洗技術。姚建銓建議,無錫今后要加快推進區塊鏈與物聯網融合的科普、培訓,正確引導廣大人民群眾對技術的認知;同時,建立專業、權威,但又普適、成套的理論體系和標準,以此切入區塊鏈的實際應用。[2018/9/18]

StorageMax是存儲文件的最大容量,默認是10GB,可以根據項目需要進行修改,當存儲的文件超過該最大容量時會有warning,文件還是可以繼續存儲的。

StorageGCWatermark是GC的閾值,默認是90,即90%,觸發GC的閾值容量為10GB*90%=9GB。

另外,GCPeriod是GC的間隔,默認是1h。GC觸發的機制是每一個GC間隔時間,觸發GC的檢查,當存儲容量超過閾值時則開始GC,將需要刪除的文件或者塊進行刪除。

文件或者塊的Pin模式如下圖所示,文件的Pin模式是recursive,即遞歸Pin文件的所有的塊。

如下圖所示,pinner是塊的GC管理器,其中recursePin是遞歸的pin的集合,里面存儲所有文件的根CID:

每次觸發GC時會進行ColoredSet,如下面兩張圖所示,將所有recursePin中的CID依次遍歷,深度遍歷該CID所有的links,這些links的CID都會存儲到gcs這個集合中:

然后通過bs.AllKeysChan(ctx)可以獲得所有的塊的CID集合,最后遍歷這些CID集合,判斷gcs中沒有的該CID的塊都需要刪除掉,具體見下圖,從而實現了所有unpin的塊GC觸發的時候都會刪除的效果。

注意:GC的時候會lock,此時上傳文件和刪除文件都會阻塞,GC需要占用的時間和文件存儲量以及刪除的文件大小有關系,可以將GC時間固定在每天用戶操作最少的時間點,例如每天的凌晨3點,減少用戶操作和GC的沖突。

總結

IPFS中MFS提供了一套基于CID的文件系統,目錄結構也存儲在IPFS的DAG中,目錄的樹狀結構和DAG的結構本身是很類似的,所以將目錄結構存儲在DAG中巧妙地解決了文件系統目錄結構地存儲問題,最后只需要存儲文件系統的根目錄的CID從而可以方便地加載整個文件系統的目錄。

IPFS中的文件GC機制目前不是很高效,通常文件存儲10GB容量左右時,觸發GC可能就需要幾分鐘到十幾分鐘的時間,由于IPFS是一個面向公網的一個用戶一個IPFS節點的模式,所以該問題對于IPFS項目本身并不明顯,但是如果將IPFS的存儲以及GC機制作為投產項目使用,則需要對GC機制進行優化,減少GC占用的時間間隔。

另外IPFS本身每隔一段時間觸發GC也不是很合理,針對項目的用戶使用情況可以將GC觸發時間固定在每天的凌晨某個時間,然后每24小時的GC觸發間隔也是一種比較簡單的解決IPFS的GC沖突問題的辦法。

作者簡介

姚文豪

來自數據網格實驗室BitXMesh團隊,數據平臺架構師

Tags:區塊鏈INKLINKPIN區塊鏈域名誰在管理SLINK幣tronlink波寶錢包官網PING價格

FTT
Chain Hill Capital :加密貨幣指數研究:波動率加權_HAI

撰文:ChainHillCapital管理合伙人Carrie波動率加權是實現風險分散化的指數構建方法,它可以提升加密貨幣組合的風險調整績效,并獲得主動回報.

1900/1/1 0:00:00
產業 | 打造“鏈上海南”生態 海南開展區塊鏈應用示范揭榜工程_AIN

本文來源:南海網 記者:任桐 1月5日,記者從海南省工業和信息化廳獲悉,為加快推動海南省區塊鏈技術和產業創新發展,培育打造“鏈上海南”區塊鏈產業生態,即日起海南組織開展區塊鏈應用示范揭榜工程.

1900/1/1 0:00:00
歐洲主權財富基金SRIW參投,區塊鏈風險投資公司Tioga Capital融資1700萬美元_AET

據TheBlockCrypto12月17日報道,管理著價值約40億美元資產的比利時主權財富基金SRIWGroup剛剛投資了區塊鏈風險投資公司TiogaCapital.

1900/1/1 0:00:00
法律分析 | ??中國境內,虛擬貨幣可以支付勞動報酬嗎?_區塊鏈

|合規聯盟原創出品?| 自比特幣于2009年1月1日正式面世以來,公眾對于虛擬貨幣與區塊鏈技術不再陌生。國內一些企業已經將區塊鏈技術運用到生產經營中.

1900/1/1 0:00:00
中國物流與采購聯合會會長:做寬做廣數字經濟與區塊鏈應用基礎性和普及性工作_區塊鏈

據《中國物流與采購》雜志消息,12月16日,在第二屆全球供應鏈數字經濟峰會暨2020中國雙鏈年會上,中國物流與采購聯合會會長何黎明表示,為貫徹落實五中全會精神及習近平總書記重要指示.

1900/1/1 0:00:00
DFINITY主網Mercury里程碑上線_FIN

DFINITY主網Mercury里程碑上線。互聯網計算機主網Alpha階段正式發布。Mercury是互聯網計算機五個里程碑中的最后一個,代表著互聯網計算機將成為公共互聯網的一部分,將ICP作為T.

1900/1/1 0:00:00
ads