Bitcoin-Core-Development
cs_main 是什麼?為什麼叫cs_main?
是什麼
cs_main
?為什麼叫它cs_main
?這個問題是在 2021 年 5 月 12 日由 John Newbery 主持的關於去全球化的 Carl Dong 公關上的比特幣核心公關審查俱樂部
ChainstateManager
期間提出的。(
cs_main
此 StackExchange 問題中討論了鎖定問題。)
是什麼
cs_main
?
cs_main
是一個遞歸互斥體,用於確保以原子方式執行驗證。它保護對驗證特定變數(例如CChainState
andCNode
)或 mempool 變數(innet_processing
)的訪問。的鎖cs_main
在validation.cpp中。為什麼叫它
cs_main
?
cs_main
是保護 Satoshi 原始 main.cpp 文件中數據的互斥體(“臨界區”)。(main.cpp 在 2016 年 12 月的PR 9260中被完全刪除。)理論上cs_main
可以在今天重命名,因為 main.cpp 已被重構為更小的文件,但每次重命名標頭檔中的某些內容時,每個人都需要重新編譯任何文件包括該標題。一個長期目標是分離出受 保護的不同數據位
cs_main
,以便最終cs_main
只保護驗證內的數據。John Newbery 和 2021 年 5 月 12 日比特幣核心公關評論俱樂部的其他參與者回答了這些問題。