概述
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鏈接到文件夾或者文件。
歐易OKEx將于3月18日推出DeFi系列科普視頻:據歐易OKEx官方消息顯示,歐易OKEx將正式推出DeFi系列科普視頻《歐易DeFi20講》,本系列節目由歐易OKEx亞太區CEO馬克金主講。該視頻首期將于3月18日11:00(HKT)推出,用戶可以在歐易OKEx官方學院、金色財經觀看。
《歐易DeFi20講》主要包含DeFi入門指南、全景解讀DeFi生態及如何參與DeFi三個篇章,可以輕松使用戶了解DeFi原理,洞察DeFi價值,掌握DeFi熱點,更多詳情請關注歐易OKEx官方學院。[2021/3/18 18:55:59]
其中,root目錄、文件夾都會存儲在IPFS的DAG中進行持久化,另外root目錄的CID存儲在IPFS內置的LevelDB中,當IPFS啟動的時候從LevelDB中取出root目錄的CID,然后在IPFS的DAG中取出根目錄,最后加載出整個目錄結構。
人民數字FINTECH推出區塊鏈科普動畫:人民日報數字傳播發布微博稱,人民數字FINTECH出品《趣味科普|區塊鏈動畫》。[2020/3/31]
下面詳細介紹創建文件夾和增加文件的過程:
創建文件夾的過程如下圖所示:
1.新建文件夾;
2.將該文件夾的父文件夾添加一條link,link包含該文件夾的Name、CID和Size;
3.調用該文件夾的update函數,通過parent遞歸更新父級文件夾的狀態,逐級向上層文件夾更新,直到更新root結束遞歸過程。
刪除文件夾和創建文件夾類似,只需要unlink和遞歸update即可。
動態 | 新浪財經:官媒針對區塊鏈的報道從科普宣傳轉向打假監管:據新浪財經今日消息,“1025新政”滿月,一個月間,官媒對區塊鏈的態度風向已轉。據11月初的一項統計,七家黨媒在新政一周內發布了65篇直接相關報道,當時文章中的關鍵詞是數據、產業、安全、創新等,大量文章偏向于科普區塊鏈的概念以及應用介紹,提醒警惕虛擬貨幣炒作的僅有3篇。近期,官媒的批評焦點則紛紛指向借區塊鏈之名進行的虛擬貨幣發行和炒作行為。據統計,新華網、人民網收錄轉載的,以打擊虛擬貨幣或揭露假借區塊鏈行騙為主題的文章,自10月25日到11月25日午間,共28篇;其中,11月19日至11月25日的一周內就高達15篇。這些文章主要圍繞三個觀點展開:厘清區塊鏈和虛擬貨幣的關系,說明二者概念不等;打擊偽“區塊鏈”騙局,或是虛擬貨幣騙局揭露;提醒民眾,區塊鏈不能成為炒作的噱頭,更不是行騙的招牌,需警惕此類活動,理性投資。[2019/11/26]
聲音 | 上海股交所總經理:區塊鏈想要大規模發展要做好社會科普工作:金色財經報道,上海股交所總經理張云峰表示,區塊鏈當前還處于一個“概念”的階段,距離成熟應用,影響到百姓的日常生活還有很長的路要走。對于“區塊鏈”和其會帶來的社會和經濟效果,沈陽應當持審慎的態度。區塊鏈想要大規模發展,一方面要做好這項復雜技術的社會科普工作,加快社會大眾對區塊鏈的了解。另一方面,要充分發揮市場的作用,讓企業用實實在在的技術創新,賦能實體經濟的發展。[2019/11/17]
增加文件的過程如下圖所示:
1.?上傳文件
2.將該文件的父文件夾添加一條link,link包含該文件夾的Name,CID和Size;
3.調用該文件的flush函數,通過parent遞歸更新父級文件夾的狀態,逐級向上層文件夾更新,直到更新root結束遞歸過程。
動態 | 浙江衛視節目科普支付寶區塊鏈防偽溯源產品:昨日,在浙江衛視播出的科普綜藝欄目《智造將來》現場,支付寶首次展示了支付寶區塊鏈防偽溯源產品,以接地氣的方式公開向大眾展示區塊鏈在生活中的應用。[2019/3/4]
刪除文件和增加文件的過程類似,只需要unlink和flush即可。
文件GC機制
IPFS中刪除文件時并不會立即刪除掉該文件,而是將該文件的CIDunpin,下次GC的時候則可以真正的刪除該文件。
下圖是IPFS的配置文件,其中紅色部分是GC相關的配置。
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團隊,數據平臺架構師
原標題:《科技文化和政策認知競爭力》 原文首發于聯合早報 作者: 白士泮:新加坡李白學院院長,原新加坡金管局學院院長李國權:新加坡新躍社科大學金融科技與區塊鏈教授閆黎:南洋理工大學南洋商學院戰略.
1900/1/1 0:00:00據CoinDesk消息,Bakkt前首席執行官KellyLoeffler將不再連任美國參議員。民調顯示,美國參議員KellyLoeffler的支持率正在下降,僅為20%,反對率為47%.
1900/1/1 0:00:00善良,首先是沒有欺騙,當善良被披上虛偽的外衣,我們便難以判斷!正所謂“假作真時真亦假,無到有處有還無”.
1900/1/1 0:00:00來源:人民郵電報 2020年,區塊鏈行業蓬勃發展,尤其是被納入新基建之后,業界對于區塊鏈的認知進一步提升.
1900/1/1 0:00:00來源:澎湃新聞 記者:葉映荷 原標題:《526份問卷調查:大眾對數字人民幣知多少,會有多大接受度》隨著深圳、蘇州等地數萬人參與數字人民幣紅包測試,有關數字人民幣的討論熱度也持續升溫.
1900/1/1 0:00:00DanielLarimer,又稱BM,他是最早的加密貨幣推動者之一,卻也是這個領域最具爭議的人物.
1900/1/1 0:00:00