Bitcoin-Core-Development
在比特幣核心程式碼庫中,net_processing 在概念上涵蓋了哪些內容?
在比特幣核心程式碼庫中,net_processing(.h和.cpp )在概念上涵蓋了哪些內容?
James O’Beirne 在Bitcoin Edge Dev++(2018 年)關於比特幣核心架構的演講中回答了這個問題。
net_processing 將 P2P 消息路由到驗證呼叫和響應 P2P 消息中。它使網路層適應鏈狀態層,並將網路消息轉換為對本地狀態更改的呼叫。
大部分 net_processing 是
ProcessMessage()
渲染特定網路消息類型以呼叫更深入比特幣的巨大條件。對等點也會因 net_processing 中的不良行為(例如發送我們的節點無效塊)而受到懲罰。(
git grep Misbehaving
查看 Core 跟踪不良行為的各種情況)。net 位於比特幣核心堆棧的底部,處理與 P2P 網路的網路通信。
CConMan
在 net 中,通過 . 將消息轉發到 net_processingCConMan::ThreadMessageHandler
。
ProcessNewBlock()
網路處理使用像和這樣的函式呼叫AcceptToMemoryPool()
來呼叫驗證,它負責我們對區塊鍊和 UTXO 集的看法。net_processing 被各種比特幣核心公關評論俱樂部報導,例如2021 年 2 月 3 日PR 20721上的這個。