來源:金色財經Filecoin的存儲單元稱為扇區。對傳統硬盤結構理解的小伙伴,對這個術語應該比較親切,傳統硬盤的最小存儲單元就叫Sector。為了證明Sector的存儲,Filecoin進行了一系列的處理,傳說中的P1/P2/C1/C2。在處理過程中,一個Sector的計算會生成若干文件,最終會生成replica。相關文件是如何組織的?Cache都是由哪些文件組成,分別是多大?本文就從存儲的角度看看這些過程和邏輯。
Filecoin的存儲管理的邏輯主要實現在sector-storage項目中。在深入理解Sector存儲邏輯之前,先講講Worker和Manager。
01相關術語
Worker-處理P1/P2/C1/C2的服務,Worker又分為兩種:localworker和remoteworker。localworker處理本地服務處理,remoteworker支持遠程服務處理
加密交易所Gemini宣布推出Wrapped Filecoin (EFIL),幫助用戶參與以太坊DeFi生態:9月3日消息,加密交易所Gemini宣布推出Wrapped Filecoin (EFIL),Gemini用戶通過將FIL轉換為EFIL并將其無縫轉移到以太坊網絡上,可參與DeFi生態并創造價值。[2021/9/3 22:57:02]
Manager-管理多個Worker
Scheduler-調度器,調度多個Worker,一個Manager通常有一個Scheduler
Store-Sector存儲系統
02Sector存儲
Sector處理相關的文件存儲在Store中。Store通過sectorstore.json進行配置:
CanSeal表明Store可以用來Seal,CanStore表面Store可以持久存儲Seal的結果(replica)。Weight是權重,在多個Store選擇時使用。ID是Store的UUID編號。
BiKi平臺火幣生態鏈FILDA,24h漲幅119.18%:據BiKi行情數據顯示,截止今日14:43( GMT+8),平臺內火幣生態鏈FILDA,24h漲幅119.18%,現價1.25USDT。行情波動較大,請注意風險控制。[2021/4/6 19:50:08]
一個Store中存在三種存儲,分別對應三種目錄:unsealed(未封存的文件),cache,sealed。
03Worker&Store
sector-storage項目的README中的這張圖很好的解釋了sectorstorage的各個模塊以及相互的關系:
整幅圖分為上下兩個部分:上部分是Manager,下部分是RemoteWorker。Manager中包括一個LocalWorker。stores.Index是所有Sector存儲的索引。Scheduler,上部分的中間,管理所有的Worker,并且調度Sector相關的存儲。
Filecoin官方推出Filecoin Security網站,包括安全審計、漏洞賞金計劃等:分布式儲存網絡Filecoin官方發文稱,其已推出新的Filecoin Security網站(security.filecoin.io)。該網站將作為Filecoin安全程序的中心樞紐,用戶可找到包括安全審計、漏洞賞金計劃、負責的信息披露政策,以及以往報告的發現和防護措施。[2020/10/20]
workermanagementAPIs通過/rpc/v0的jsonRPC接口實現remoteworker的管理。通過/remote的HTTPAPI實現存儲的Fetch操作,簡單的說,傳輸文件。specs-storage.Prover/Sealer/Storage是Manager暴露出來的接口,實現Sector的證明,封存和存儲。
每個連接到Manager的Worker會和Manager同步它的內存/CPU以及顯存的信息。Scheduler在接受到新的請求時,會針對請求(Task)的類型以及資源的需求,從當前Worker中挑選最合適的Worker進行請求的處理。如何選擇Worker,感興趣的小伙伴,可以查看selector的相關邏輯。
FIL即將上線ZG.COM:據官方公告,ZG.COM將于近期上線FIL。
據悉,FIL(Filecoin)是IPFS網絡的激勵代幣,是主網幣,通過區塊鏈的Token激勵模型構建了一個去中心化存儲網絡。Filecoin代幣名稱為FIL。在Filecoin的激勵模型下,構建了存儲市場和檢索市場。礦工通過提供存儲服務和檢索服務以獲取用戶支付的FIL代幣。[2020/10/15]
從存儲的角度,重新整理一下,這些關系:
以一個Manager連接兩個Worker為例。Worker只能Seal,但是不能Store。為了更清楚展示Worker之間的數據傳輸,第一個Worker只做Precommit1,第二個Worker做Precommit2和Commit。
04SealTask
理解SealTask,最好對照了Sector的狀態管理一起看。對Sector狀態管理還不熟悉的小伙伴,可以查看之前的文章:
聲音 | Filb Filb:比特幣2023年或超過332733美元:據newbtc報道,加密分析師Filb Filb近日在推特上發布了一張圖表,描述了比特幣作為流動資產的整個歷史,突顯了該資產的多年周期,這是由比特幣發行(減半)的周期創造的。Filb表示,BTC明年可能會在2500美元到3100美元之間。一旦在約500天內發生減半,比特幣的價格可能會開始再次超過10000美元。一旦加密市場的供需受到影響,到2023年,BTC可能會超過332733美元。[2018/12/28]
Filecoin-Sector狀態管理邏輯
接下來,看看每個SealTask對應的存儲數據的變化。
AddPiece
如果其中左邊的Worker接收到任務,AddPiece任務會在unsealed目錄中創建原始數據。
PreCommit1
PreCommit1階段,簡稱P1,針對SDR算法,計算若干層數據。如果Sector是32G,需要計算11層。對SDR算法不熟悉的小伙伴,可以看看之前的文章:
經過PreCommit1,生成的數據存儲在Cache中:
PreCommit2
PreCommit2的階段,簡稱P2,生成Replica,計算ColumnHash,并生成Merkle樹(tree_d,tree_c,tree_r_last)。因為P2,不在同一個Worker處理,在進行處理之前,需要先傳輸給合適的Worker,處理的結果同樣存儲在Cache中:
Commit和Finalize
在Commit生成證明后,進入Finalize狀態,Finalize可以理解成“歸檔”。因為在Worker上沒有Store能力,刪除不需要持久化的數據,需要持久化存儲的數據,將傳輸回Manager。
05數據存儲量
以32G的Sector為例,在處理過程中需要存儲的數據如下:
原始數據-32G
原始數據Merkle-32G
P1layer-32*11G
P2-ColumnHash&tree_c-32*2G
P2-Replica&tree_r_last-32G+9.2M*8
總共:512G多一點。
06持久化數據
Sector經過P1/P2/C1/C2處理后,也就是說,經過PoREP處理后,需要持久化存儲Replica的數據和tree_r_last的數據。tree_r_last的數據需要存儲的原因是PoSt要用到。特別注意的是,tree_r_last的數據并不是完整的Merkle樹數據,刪除了其中一些層的數據。
32G的Sector,對應的tree_r_last分成了8棵子樹,每棵子樹是8叉樹,默認存儲的時候,忽略了最低的兩層。也就是,去除最低兩層的存儲量為:
所以每棵子樹的存儲數據為4G*0.00223=9.13M。
也就是說,Sector持久化存儲比例在1.0022左右。
總結:
Filecoin存儲管理的邏輯主要在sector-storage中。Sector的處理任務,可以通過多個Worker完成。每個Worker的存儲目錄結構一致,Sector數據可以在多個Worker之間通過Http服務傳輸。Sector處理過程中,最大的存儲需求量在512G左右。持久化存儲比例為1.0022。
IPFS、Filecoin?交流群
備注ipfs,添加菠蘿v號:q359361480
千里之行始于足下,只給主流幣最穩健的分析及策略!言靜慮者是依體立名,其禪那之體,以幣會友,大家好,我是你們的老朋友禪幣!8/6比特幣分析及操作策略大餅自從上個星期天插針之后再次站穩11000.
1900/1/1 0:00:00親愛的BithumbGlobal用戶:BithumbGlobal將在創新板上線ELAMA數字資產服務.
1900/1/1 0:00:00啟明老師8.6早間BTC/ETH行情分析前期壓力已經強勢破位后市必然再創新高 BTC: 昨日日間行情低迷震蕩,而到了晚間時分,逐漸挨個的突破各層壓力位.
1900/1/1 0:00:00十年磨一劍,漲跌皆有因,多空不戀戰,入袋方為安。大家好,我是老潘,以下為大家提供實時分析!從四小時線看,布林帶開口運行,目前幣價在布林帶中軌下方運行,MACD快慢線形成死叉在零軸上方運行,綠色能.
1900/1/1 0:00:008月6日,Bituan公告稱已經完成第三季度平臺幣BT的銷毀,公告一發布便吸引了眾多投資者的關注。公告發布后半小時,BT上漲幅度超過10%,市場熱度持續高漲.
1900/1/1 0:00:00慧子預言:8.6比特幣前期壓力已破,會重回12000大關?一個人的不幸,是從羨慕別人開始,一個人的所幸,是從愛惜自己開始,過度的仰望只會迷失自我,提升自己才能吸引別人.
1900/1/1 0:00:00