Expand description

Base data structure of this module is Block.

Blocks can be produced by a local node or they may be received from the network.

To create a block locally, we start with an OpenBlock. This block is mutable and can be appended to with transactions and uncles.

When ready, OpenBlock can be closed and turned into a ClosedBlock. A ClosedBlock can be reopend again by a miner under certain circumstances. On block close, state commit is performed.

LockedBlock is a version of a ClosedBlock that cannot be reopened. It can be sealed using an engine.

ExecutedBlock is an underlaying data structure used by all structs above to store block related info.

Structs

Just like OpenBlock, except that we’ve applied Engine::on_close_block, finished up the non-seal header fields, and collected the uncles.

An internal type for a block’s common elements.

Just like ClosedBlock except that we can’t reopen it and it’s faster.

Block that is ready for transactions to be added.

A block that has a valid seal.

Traits

Trait for an object that owns an ExecutedBlock

Functions

t_nb 8.0 Enact the block given by block_bytes using engine on the database db with given parent block header