Bitcoin-Core-Development

Bitcoin Core 中的 ChainstateManager、CChainState、CChain 和 BlockManager 類有什麼作用?

  • May 26, 2021

Bitcoin Core 中的類ChainstateManager、、CChainState和做什麼?CChain``BlockManager

為什麼做CChainStateCChain有一個領先的’C’,但又ChainstateManager沒有BlockManager

這些問題是在 2021 年 5 月 12 日由 John Newbery 在 Carl Dong 公關上主持的比特幣核心公關審查俱樂部期間提出的,以使 ChainstateManager 去全球化。

ChainstateManager,CChainStateCChainBlockManager什麼?

來自Doxygen的圖形顯示了類如何互動:

Doxygen 圖形

ChainstateManager:提供一個介面,用於創建一個或兩個鏈狀態並與之互動

CChainState:儲存並提供 API 來更新我們對目前最佳鏈的本地知識。

CChain:記憶體索引的塊鏈。它是在PR 3077中引入的。

BlockManager:維護一個塊樹(儲存在 中m_block_index),用於確定最常用的提示在哪裡。

為什麼做CChainStateCChain有一個領先的’C’,但又ChainstateManager沒有BlockManager

C 代表使用匈牙利風格命名的類。

比特幣核心目前的風格是不使用匈牙利符號。Bitcoin Core 用來m_表示成員變數,g_表示全域變數,沒有前綴表示局部變數/參數。CChainStateCChain在比特幣核心中實施這些風格指南之前被命名。

John Newbery 和 2021 年 5 月 12 日比特幣核心公關評論俱樂部的其他參與者回答了這些問題。

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