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。

在將消息傳遞到鏈同步邏輯之前,還將對其進行驗證。

除了驗證消息的簽名外,沒有對區塊中包含的消息進行語義驗證的方法。如果一個區塊中包含的所有消息在語法上都是有效的,那麼可以執行這些消息並生成一個回執。

鏈同步系統可以分階段進行語法和語義驗證,以減少不必要的資源消耗。

如果以上所有測試都成功,則區塊將被標記爲已驗證。最終,無效區塊不得進一步傳播或驗證爲父節點。

相關文章