Are blocks validated just before they are stored to memory, upon receipt from an RPC submit call, or at some other time? Can you point to the place in code where this validation process begins? Is this process starting point the same for transactions?


I think you are talking about the consensus rules and when they are enforced...

To get the whole picture I would suggest to read about this topic in the book "Mastering Bitcoin" by Andreas Antonopoulos.



Transactions are validated before they enter the mempool (see AcceptToMemoryPoolWorker(), and when they are submitted as a block.

Blocks are validated when a new one is received from a miner (see ProcessNewBlock(), and when they are synced from other peers (see ProcessMessage(), including on startup of a new full node.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.