ethereum.byzantium.blocks

A Block is a single link in the chain that is Ethereum. Each Block contains a Header and zero or more transactions. Each Header contains associated metadata like the block number, parent block hash, and how much gas was consumed by its transactions.

Together, these blocks form a cryptographically secure journal recording the history of all state transitions that have happened since the genesis of the chain.

Header

Header portion of a block on the chain.

20
@slotted_freezable
21
@dataclass
class Header:

parent_hash

27
    parent_hash: Hash32

ommers_hash

28
    ommers_hash: Hash32

coinbase

29
    coinbase: Address

state_root

30
    state_root: Root

transactions_root

31
    transactions_root: Root

receipt_root

32
    receipt_root: Root

bloom

33
    bloom: Bloom

difficulty

34
    difficulty: Uint

number

35
    number: Uint

gas_limit

36
    gas_limit: Uint

gas_used

37
    gas_used: Uint

timestamp

38
    timestamp: U256

extra_data

39
    extra_data: Bytes

mix_digest

40
    mix_digest: Bytes32

nonce

41
    nonce: Bytes8

Block

A complete block.

44
@slotted_freezable
45
@dataclass
class Block:

header

51
    header: Header

transactions

52
    transactions: Tuple[Transaction, ...]

ommers

53
    ommers: Tuple[Header, ...]

Log

Data record produced during the execution of a transaction.

56
@slotted_freezable
57
@dataclass
class Log:

address

63
    address: Address

topics

64
    topics: Tuple[Hash32, ...]

data

65
    data: bytes

Receipt

Result of a transaction.

68
@slotted_freezable
69
@dataclass
class Receipt:

succeeded

75
    succeeded: bool

cumulative_gas_used

76
    cumulative_gas_used: Uint

bloom

77
    bloom: Bloom

logs

78
    logs: Tuple[Log, ...]