Filecoin區塊鏈是一個分散式虛擬機器,在Filecoin協議中實現共識、處理訊息、核算儲存並維護安全。它是連線Filecoin系統中各個參與者的主介面。
Filecoin區塊鏈系統包括:
1)一個訊息池子系統,節點用於跟蹤和傳播礦工宣告要包含在區塊鏈中的訊息。
2)用於解釋和執行訊息以更新系統狀態的虛擬機器子系統。
3)狀態樹子系統,管理其建立和維護的虛擬機器從給定子鏈中確定生成的狀態樹(系統狀態)。
4)一種鏈同步(ChainSync)susbystem,它跟蹤和傳播經過驗證的訊息塊,維護一組候選鏈,礦工可以在這些候選鏈上進行挖掘,並對傳入的區塊進行語法驗證。
5)一種儲存能力共識子系統,它跟蹤給定鏈的儲存狀態(即儲存子系統),並幫助區塊鏈系統選擇要擴充套件的子鏈和包含在其中的區塊。
區塊鏈系統還包括:
1)一種鏈管理器,它維護給定鏈的狀態,為其他區塊鏈子系統提供設施,這些子系統將查詢有關最新鏈的狀態以便執行,並確保入鏈的區塊在包含到鏈中之前經過語義驗證。
2)一種區塊生成器,在成功地進行領導人選舉時被呼叫,以便生成一個新的區塊,在將當前最重的鏈轉發給同步器進行傳播之前,該區塊將擴充套件當前最重的鏈。
從高層次來看,Filecoin區塊鏈透過連續幾輪的領導人選舉而發展壯大,在選舉中,許多礦工被選舉產生一個區塊,加入區塊鏈將為他們贏得區塊獎勵。Filecoin的區塊鏈依靠儲存能力執行。也就是說,礦工透過其共識演算法來確定要開採的子鏈取決於該子鏈的儲存量。在高層,“儲存功率共識”子系統維護一個功率表,跟蹤儲存礦工參與者透過扇區承諾和時空證明為網路貢獻的儲存量。
區塊:
區塊是Filecoin區塊鏈的主要單元,大多數其他區塊鏈也是如此。區塊訊息直接與Tipsets連結,Tipsets是區塊訊息的組。下面我們將討論區塊訊息的主要結構以及在Filecoin區塊鏈中驗證塊訊息的過程。
Filecoin區塊鏈中的區塊結構包括:i)區塊頭,ii)區塊內的訊息列表,以及iii)簽名訊息。
注意:區塊在功能上與Filecoin協議中的區塊頭相同。雖然區塊標題包含指向完整系統狀態,訊息和訊息回執的Merkle連結,但可以將區塊視為該資訊的完整集合(不僅是Merkle根,還包括狀態樹的完整資料、訊息樹、收據樹等)。由於完整區塊的大小很大,因此Filecoin區塊鏈由區塊頭而不是完整區塊組成。
區塊頭是區塊的規範表示。區塊頭在礦工節點之間傳播,從區塊頭訊息中,礦工擁有應用關聯的FullBlock狀態和更新鏈所需的所有資訊。為了能夠做到這一點,需要包含在區塊頭中的最小資訊項集包括:礦工地址、票證、時空證明、IPLD DAG中此塊的父級CID,以及訊息自身的CID。
訊息結構必須包括源(From)和目的地(to)地址、Nonce和GasPrice。
在將訊息傳遞到鏈同步邏輯之前,還將對其進行驗證。
除了驗證訊息的簽名外,沒有對區塊中包含的訊息進行語義驗證的方法。如果一個區塊中包含的所有訊息在語法上都是有效的,那麼可以執行這些訊息並生成一個回執。
鏈同步系統可以分階段進行語法和語義驗證,以減少不必要的資源消耗。
如果以上所有測試都成功,則區塊將被標記為已驗證。最終,無效區塊不得進一步傳播或驗證為父節點。
END作者:IPFS官方,來源:IPFS l Filecoin社羣學習吧