Block
何時驗證區塊?
塊是在儲存到記憶體之前、從 RPC 送出呼叫接收時還是在其他時間驗證的?你能指出這個驗證過程開始的程式碼位置嗎?交易的這個流程起點是否相同?
交易在進入記憶體池之前被驗證(參見AcceptToMemoryPoolWorker(),以及當它們作為塊送出時。
當從礦工那裡收到一個新的塊時(參見ProcessNewBlock(),以及當它們從其他對等點同步時(參見ProcessMessage(),包括在啟動一個新的完整節點時),塊就會被驗證。
我認為您正在談論共識規則以及何時執行它們…
為了了解全貌,我建議閱讀 Andreas Antonopoulos 的《掌握比特幣》一書中有關此主題的內容。
<https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch10.asciidoc#decentralized-consensus>