概述
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鏈接到文件夾或者文件。
徐明星新書《趣說金融史》正式發布 科普金融發展之道:金色財經現場報道,9月23日,歐科云鏈創始人徐明星攜手著名財經作家李霽月、行業觀察者顧澤輝力作《趣說金融史》一書,跨越5000年金融歷史,重讀金錢故事,并預測新的金融時代。該書由中信出版社出版,將于近期正式發售。據了解,本書可以更好地呈現金融的起源與發展,幫助人們理解貨幣、金融與未來經濟。作為區塊鏈行業領軍企業——歐科云鏈的創始人,徐明星深知技術探索對經濟社會的重要推動作用,他曾先后出版過《圖說區塊鏈》、《區塊鏈:重塑經濟與世界》、《通證經濟》、《鏈與未來》等行業權威著作,解讀區塊鏈等新型技術的推動下,金融與社會的升級之道,對經濟社會發展做出了重大貢獻。其中,《區塊鏈:重塑經濟與世界》曾作為新中國70周年重點推薦圖書之一被相關書店推薦。[2021/9/23 17:00:57]
其中,root目錄、文件夾都會存儲在IPFS的DAG中進行持久化,另外root目錄的CID存儲在IPFS內置的LevelDB中,當IPFS啟動的時候從LevelDB中取出root目錄的CID,然后在IPFS的DAG中取出根目錄,最后加載出整個目錄結構。
TRON數字錢包科普資料《波場錢包的現在過去與未來》已上線:據最新消息顯示,由TokenPocket聯合波場TRON官方,以及 TokenPocket 社區志愿者共同撰寫的《波場錢包的現在過去與未來》已正式上線。《波場錢包的現在過去與未來》又稱為波場錢包小白書,詳細介紹了當前TRON錢包與TRON生態密切結合的實例,是目前市面上最為詳細的TRON數字錢包科普資料。波場錢包作為波場公鏈生態中極為重要的入口,是波場生態的重要構成要素。波場錢包從一開始只提供權限管理、轉賬收款、節點投票等基礎功能,到如今不僅可以為用戶提供法幣交易、閃兌和去中心化交易所等方便快捷的交易服務,還能讓用戶直接在錢包上體驗波場上DApp,挖礦、DeFi、Staking等資產增值服務。詳情見原文鏈接。[2020/8/20]
動態 | 人民日報官方微博科普區塊鏈 強調區塊鏈不等于比特幣:人民日報官方微博今早發表9圖科普區塊鏈。其中涉及區塊鏈的特點有:1、安全;2、不可篡改;3、可訪問;4、無第三方。區塊鏈對未來的影響:1、不需繁瑣個人證明;2、看病避免反復檢查;3、旅行消費更加便捷;4、交易無需第三方。同時強調,區塊鏈不等于比特幣。比特幣只是區塊鏈技術的一種應用,區塊鏈還有醫療衛生、食品安全、版權保護等諸多應用領域。[2019/10/28]
下面詳細介紹創建文件夾和增加文件的過程:
創建文件夾的過程如下圖所示:
1.新建文件夾;
2.將該文件夾的父文件夾添加一條link,link包含該文件夾的Name、CID和Size;
3.調用該文件夾的update函數,通過parent遞歸更新父級文件夾的狀態,逐級向上層文件夾更新,直到更新root結束遞歸過程。
聲音 | 中科院姚建銓:要加快推進區塊鏈與物聯網融合的科普 培訓:據新華網消息,日前,在區塊鏈與物聯網融合發展峰會上,中國科學院院士姚建銓說,關注區塊鏈技術里面的大數據,跟區塊鏈技術結合起來進行測量和檢測,能更好地提升激光清洗技術。姚建銓建議,無錫今后要加快推進區塊鏈與物聯網融合的科普、培訓,正確引導廣大人民群眾對技術的認知;同時,建立專業、權威,但又普適、成套的理論體系和標準,以此切入區塊鏈的實際應用。[2018/9/18]
刪除文件夾和創建文件夾類似,只需要unlink和遞歸update即可。
增加文件的過程如下圖所示:
1.?上傳文件
2.將該文件的父文件夾添加一條link,link包含該文件夾的Name,CID和Size;
財政部副部長朱光耀:數字經濟還處在發展的過程中,要以科普、推動的態度來推進數字經濟發展:今日,在中國發展高層論壇2018年會上,財政部副部長朱光耀表示:“數字經濟還處在發展的過程中,要以科普、推動的態度來推進數字經濟發展。也要關注數字經濟的其他影響,包括稅收征管、反洗錢監管措施等要跟上。”[2018/3/25]
3.調用該文件的flush函數,通過parent遞歸更新父級文件夾的狀態,逐級向上層文件夾更新,直到更新root結束遞歸過程。
刪除文件和增加文件的過程類似,只需要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團隊,數據平臺架構師
南非高等法院最近對MirrorTradingInternational下達了臨時清算令,此前兩名投資者未能撤回其比特幣,并提出了救濟申請.
1900/1/1 0:00:00本文來源:葉檀財經 2020年以來,數字人民幣的發行明顯加速了,央行先后在深圳、蘇州、雄安和冬奧會進行了一系列封閉測試.
1900/1/1 0:00:00導讀 首先問大家一個小問題?區塊鏈的賬本數據存儲格式主要是什么類型的?相信聰明的你一定知道是Key-Value類型存儲.
1900/1/1 0:00:002020年是一個特殊年。如果有人日后問,2020年時你在干什么,你可能會開玩笑地回復一句“我在忙著寫史詩”,然后認真地反問對方:“你問的是2020年的哪個階段?"在情緒上,2020年被分成了三個.
1900/1/1 0:00:00Cardano創始人、IOHK首席執行官CharlesHoskinson最近表示,Cardano接下來將增加一系列devnets,以吸引新開發人員.
1900/1/1 0:00:00據CoinGeek報道,初創公司Transmira宣布獲得CalvinAyre的投資,沒有透露具體交易條款.
1900/1/1 0:00:00