Description
Following the block building discussion, we now have two things to do: verifying the block building correctness / benchmarking the block building performance. This issue is for the former topic.
We want to add correctness checks for the block building path. Currently we only validate block consumption (client receives a block and verifies it). This would add the reverse direction, given a set of transactions and block properties, verify that the client assembles the correct block.
Approach
- Introduce a new consumer (e.g.
consume build) alongside the existing consume engine
- Use the
testing_ endpoint, which guarantees transaction ordering (unlike mempool-based block building)
- Reuse existing test fixtures where possible
Question:
- How much logic does the
testing_ endpoint share with actual network block building? We should track cases where devnet block building breaks but this consumer passes, as that shows a gap.
Description
Following the block building discussion, we now have two things to do: verifying the block building correctness / benchmarking the block building performance. This issue is for the former topic.
We want to add correctness checks for the block building path. Currently we only validate block consumption (client receives a block and verifies it). This would add the reverse direction, given a set of transactions and block properties, verify that the client assembles the correct block.
Approach
consume build) alongside the existingconsume enginetesting_endpoint, which guarantees transaction ordering (unlike mempool-based block building)Question:
testing_endpoint share with actual network block building? We should track cases where devnet block building breaks but this consumer passes, as that shows a gap.