Bitcoin-Core-Development

驗證在比特幣核心程式碼庫中在概念上涵蓋什麼?

  • May 24, 2021

驗證(.h.cpp)在比特幣核心程式碼庫中的概念涵蓋什麼?

這個問題是 Larry Ruane 在 2021 年 5 月 12 日的比特幣核心公關評論俱樂部上的 Carl Dong PR上提出的,以去全球化ChainstateManager

John Newbery在比特幣核心公關評論俱樂部會議上回答了這個問題。

從概念上講,驗證儲存並維護我們對區塊鍊和相關 UTXO 集的最佳視圖。它還包括一個向記憶體池送出未確認交易的介面。

此外,James O’Beirne在 Bitcoin Edge Dev++ 上關於比特幣核心架構的展示文稿中的幻燈片指出:

驗證根據某些接受規則處理修改鏈狀態和事務(記憶體池)的記憶體資料結構。

它既定義了其中一些資料結構(CChainStatemapBlockIndex),也定義了驗證它們的過程,例如CheckBlock()

奇怪的是,它還包含一些用於將數據編組到磁碟和從磁碟編組的實用功能,例如ReadBlockFromDisk()FlushStateToDisk(){Dump,Load}Mempool()。這可能是因為validation.{h,cpp}是重構main.{h,cpp}為更小部分的結果。

這是 James 展示文稿中的圖表,顯示了驗證如何與程式碼庫的其他區域相關聯。

詹姆斯驗證圖

引用自:https://bitcoin.stackexchange.com/questions/106276