go-ethereum/consensus
rjl493456442 d422ab39d5
Some checks are pending
/ Linux Build (push) Waiting to run
/ Linux Build (arm) (push) Waiting to run
/ Keeper Build (push) Waiting to run
/ Windows Build (push) Waiting to run
/ Docker Image (push) Waiting to run
consensus, core, internal, miner: remove FinalizeAndAssemble (#34726)
This PR removes `FinalizeAndAssemble` from the consensus engine
interface
and relocates block assembly logic outside of the consensus engine.

Block assembly is consensus-agnostic. Most validations can be performed 
by the caller. For example:

- Withdrawals must be nil prior to Shanghai
- After Shanghai upgrade, withdrawals must be non-nil, even if empty.

The only notable consensus-specific validation is related to uncles. In
clique,
the concept of uncles does not exist, and any block containing uncles
should
be considered invalid.

Within the block production package, the policy is to produce blocks
according
to the latest chain specification. As a result, Clique-specific block
production
is no longer supported. This tradeoff is considered acceptable.
2026-04-21 20:58:21 +02:00
..
beacon consensus, core, internal, miner: remove FinalizeAndAssemble (#34726) 2026-04-21 20:58:21 +02:00
clique consensus, core, internal, miner: remove FinalizeAndAssemble (#34726) 2026-04-21 20:58:21 +02:00
ethash consensus, core, internal, miner: remove FinalizeAndAssemble (#34726) 2026-04-21 20:58:21 +02:00
misc consensus/misc: hardening header verification (#33860) 2026-02-17 15:42:48 +01:00
consensus.go consensus, core, internal, miner: remove FinalizeAndAssemble (#34726) 2026-04-21 20:58:21 +02:00
errors.go consensus/beacon: check that only the latest pow block is valid ttd block (#25187) 2022-06-29 15:13:19 +03:00