Filecoin封裝流程介紹
本文作者:ZKLink 原創作品,轉載請注明出處
lotus-worker 密封一個扇區,通常需要經歷以下幾個過程:
AddPiece (簡稱 AP) :主要填充一個扇區,不耗時
PreCommitPhase1 (簡稱 PC1) : 進行大量的、不可並行的哈希計算(使用 SHA256 哈希算法),非常耗時
PreCommitPhase2 (簡稱 PC2) : 進行大量的、可並行的哈希計算(使用 Poseidon 哈希算法),比較耗時
CommitPhase1 (簡稱 C1) : 做一些檢查和配置,沒有實際計算,不耗時
CommitPhase2 (簡稱 C2) : 做存儲證明(PoRep)過程,比較耗時
有關密封流程的詳細信息,可參考官方的 【Specification說明文檔】。
1. AP 計算過程
Worker接收到任務後,AddPiece任務會在unsealed目錄中創建原始數據
2. PC1 計算過程
對於 32GB 的扇區,P1 計算過程是生成 11 層數據,每層數據都是 32GB 大小,並且除了第一層之外,剩下的 10 層數據的生成過程是完全一樣的。 這裏涉及到一個節點的概念,其實就是把一個 32 字節的數據當做一個節點,一層 Layer 由 1G(1G=1024*1024*1024) 個連續的節點組成,僅此而已。
3. PC2 計算過程
P2 的運算過程其實也很簡單,只是使用的哈希算法是 Poseidon 哈希算法而已,本質上還是進行哈希運算。 P2 分為兩個階段,一個是 Building column hash(也叫做 Building tree c),另一個叫做 Building tree r last。 只不過,在 Building column hash 的時候,會把每層的 1G 個節點的劃分為大小相等的 8 份,每一份都是 128M 個節點,最後生成一個 8 個 tree-c(tree-c-0 ~ tree-c-7)(下圖為了簡潔,沒有體現劃分 8 份的操作)。 Building tree r last 和 Building column hash 基本一樣,只是使用的數據不一樣罷了,最後生成 tree-r-last-0 ~ tree-r-last-7。
PC2 的過程可以進行大規模的並行運算,前後沒有依賴關系,因此,更適合使用顯卡進行計算,唯一需要克服的一點就是:從磁盤讀取大量數據並傳輸到顯存的過程。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC
7月23:Mt. Gox 比特幣錢包在市場緊縮的情況下轉移了價值 28.2 億美元的 BTC一個引...
悅盈:比特幣68000的空完美落地反彈繼續看跌 以太坊破前高看回撤
一個人的自律中,藏着無限的可能性,你自律的程度,決定着你人生的高度。 人生沒有近路可走,但你走的每...