Bitcoin-Core-Development
Bitcoin Core 中的 ChainstateManager、CChainState、CChain 和 BlockManager 類有什麼作用?
Bitcoin Core 中的類
ChainstateManager
、、CChainState
和做什麼?CChain``BlockManager
為什麼做
CChainState
和CChain
有一個領先的’C’,但又ChainstateManager
沒有BlockManager
?這些問題是在 2021 年 5 月 12 日由 John Newbery 在 Carl Dong 公關上主持的比特幣核心公關審查俱樂部期間提出的,以使 ChainstateManager 去全球化。
類
ChainstateManager
,CChainState
和CChain
做BlockManager
什麼?來自Doxygen的圖形顯示了類如何互動:
ChainstateManager
:提供一個介面,用於創建一個或兩個鏈狀態並與之互動
CChainState
:儲存並提供 API 來更新我們對目前最佳鏈的本地知識。
CChain
:記憶體索引的塊鏈。它是在PR 3077中引入的。
BlockManager
:維護一個塊樹(儲存在 中m_block_index
),用於確定最常用的提示在哪裡。為什麼做
CChainState
和CChain
有一個領先的’C’,但又ChainstateManager
沒有BlockManager
?C 代表使用匈牙利風格命名的類。
比特幣核心目前的風格是不使用匈牙利符號。Bitcoin Core 用來
m_
表示成員變數,g_
表示全域變數,沒有前綴表示局部變數/參數。CChainState
並CChain
在比特幣核心中實施這些風格指南之前被命名。John Newbery 和 2021 年 5 月 12 日比特幣核心公關評論俱樂部的其他參與者回答了這些問題。