pos機eth接口

 新聞資訊2  |   2023-07-12 09:42  |  投稿人:pos機之家

網上有很多關于pos機eth接口,以太坊源碼分析的知識,也有很多人為大家解答關于pos機eth接口的問題,今天pos機之家(www.www690aa.com)為大家整理了關于這方面的知識,讓我們一起來看下吧!

本文目錄一覽:

1、pos機eth接口

pos機eth接口

Go語言中文網,致力于每日分享編碼、開源等知識,歡迎關注我,會有意想不到的收獲!前言

engine是以太坊封定義的一個接口,它的功能可以分為3類:

驗證區塊類,主要用在將區塊加入到區塊鏈前,對區塊進行共識驗證。產生區塊類,主要用在挖礦時。輔助類。

接下來我們看一下engine具體定義了哪些功能,還有各功能的使用場景。

engine定義的具體功能

engine有3類功能,驗證區塊類、產生區塊類、輔助類。因為產生區塊在前,驗證區塊在后,接下來采用產生區塊類、驗證區塊類、輔助類,分別介紹它們的功能和使用場景。

驗證區塊類Prepare:初始化區塊頭信息,不同的共識算法初始化不同。使用場景是,worker創建work的時候調用。Finalize:根據數據生成“基本定型”的區塊,但區塊頭中還缺少部分數據。使用場景是,1)模擬區塊鏈的時候,被GenerateChain調用,用來生成區塊鏈。2)交易狀態管理時,被StateProcessor.Process調用用來執行交易。3)worker創建work的時候調用。Seal:根據傳入的塊,進行的是挖礦工作,使用挖礦的結果,修改區塊頭,然后生成新的區塊。使用場景是,被agent.mine調用。驗證區塊類VerifyHeader:驗證區塊頭。使用在fetcher中,當fetcher要插入區塊的時候,需要先對區塊頭進行校驗。VerifyHeaders:驗證一批區塊頭。有2種使用場景,1)區塊鏈中,insertChain當把一批區塊插入到區塊鏈這個鏈條的時候,需要進行檢查;2)LightChain中,把一批區塊頭插入到本地鏈。VerifyUncles:驗證區塊中的叔塊。insertChain當區塊插入區塊鏈的時候,需要對叔塊進行驗證,調用在VerifyHeaders之后。VerifySeal:針對Seal函數做的功能進行驗證。驗證Seal()所修改的區塊頭中的數據。對外的使用場景是,把Work發送給遠端Agent的時候調用。對內的使用場景是,驗證區塊頭的時候會被調用。輔助類APIs:生成以太坊共識相關的API。在以太坊啟動RPC服務時,生成API。Author:讀取區塊頭中的coinbase。被ethstats使用,ethstats是以太坊狀態管理服務,當報告數據的時候,需要獲取區塊的Author信息。

最后關注一下藍色的線條,它們代表insertChain所調用的范圍,先關的有VerifyHeaders、VerifyUncles、Finalize,涉及到塊頭的驗證、叔塊的驗證,以及執行區塊中的交易,一個區塊加入到區塊鏈中,不僅要驗證,還要執行各種交易,改變各種狀態,所有節點執行確定性的行為之后,達成一致性。

FAQQ:誰實現engineA:以太坊中的Ethash和Clique實現了engine,Ethash是基于PoW的共識,Clique是基于PoA的共識。Q:為什么insertChain沒有調用VerifySeal?A:因為Seal()修改的是header中的部分數據,在驗證區塊頭的時候,會被調用。只是調用流程在Ethash和Clique中的實現略有不同,后續講解。如果這篇文章對你有幫助,不妨關注下我的Github,有文章會收到通知。本文作者:大彬,原創授權發布如果喜歡本文,隨意轉載,但請保留此原文鏈接:http://lessisbetter.site/2018/06/22/ethereum-code-consensus-2/

以上就是關于pos機eth接口,以太坊源碼分析的知識,后面我們會繼續為大家整理關于pos機eth接口的知識,希望能夠幫助到大家!

轉發請帶上網址:http://www.www690aa.com/newsone/83405.html
上一篇:pos機使用技術 下一篇:pos機在哪充值

你可能會喜歡:

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 babsan@163.com 舉報,一經查實,本站將立刻刪除。