Bitcoin-Core-Development

cs_main 是什麼?為什麼叫cs_main?

  • November 3, 2021

是什麼cs_main?為什麼叫它cs_main

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

cs_main此 StackExchange 問題中討論了鎖定問題。)

是什麼cs_main

cs_main是一個遞歸互斥體,用於確保以原子方式執行驗證。它保護對驗證特定變數(例如CChainStateand CNode)或 mempool 變數(in net_processing)的訪問。的鎖cs_mainvalidation.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 日比特幣核心公關評論俱樂部的其他參與者回答了這些問題。

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