Add genesis settings section
This commit is contained in:
parent
5d5a9e392b
commit
d58ffc7dfc
|
@ -12,6 +12,8 @@
|
||||||
- [Custom types](#custom-types)
|
- [Custom types](#custom-types)
|
||||||
- [Constants](#constants)
|
- [Constants](#constants)
|
||||||
- [Execution](#execution)
|
- [Execution](#execution)
|
||||||
|
- [Configuration](#configuration)
|
||||||
|
- [Genesis settings](#genesis-settings)
|
||||||
- [Containers](#containers)
|
- [Containers](#containers)
|
||||||
- [Extended containers](#extended-containers)
|
- [Extended containers](#extended-containers)
|
||||||
- [`BeaconBlockBody`](#beaconblockbody)
|
- [`BeaconBlockBody`](#beaconblockbody)
|
||||||
|
@ -66,6 +68,17 @@ This patch adds transaction execution to the beacon chain as part of the Merge f
|
||||||
| `BASE_FEE_MAX_CHANGE_DENOMINATOR` | `uint64(2**3)` (= 8) |
|
| `BASE_FEE_MAX_CHANGE_DENOMINATOR` | `uint64(2**3)` (= 8) |
|
||||||
| `ELASTICITY_MULTIPLIER` | `uint64(2**1)` (= 2) |
|
| `ELASTICITY_MULTIPLIER` | `uint64(2**1)` (= 2) |
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
### Genesis settings
|
||||||
|
|
||||||
|
*Note*: These configuration settings do not apply to the mainnet and are utilized only by pure Merge testing.
|
||||||
|
|
||||||
|
| Name | Value |
|
||||||
|
| - | - |
|
||||||
|
| `GENESIS_GAS_LIMIT` | `uint64(30000000)` (= 30,000,000) |
|
||||||
|
| `GENESIS_BASE_FEE_PER_GAS` | `uint64(1000000000)` (= 1,000,000,000) |
|
||||||
|
|
||||||
## Containers
|
## Containers
|
||||||
|
|
||||||
### Extended containers
|
### Extended containers
|
||||||
|
@ -380,7 +393,8 @@ def initialize_beacon_state_from_eth1(eth1_block_hash: Bytes32,
|
||||||
state.latest_execution_payload_header.block_hash = eth1_block_hash
|
state.latest_execution_payload_header.block_hash = eth1_block_hash
|
||||||
state.latest_execution_payload_header.timestamp = eth1_timestamp
|
state.latest_execution_payload_header.timestamp = eth1_timestamp
|
||||||
state.latest_execution_payload_header.random = eth1_block_hash
|
state.latest_execution_payload_header.random = eth1_block_hash
|
||||||
state.latest_execution_payload_header.gas_limit = MIN_GAS_LIMIT
|
state.latest_execution_payload_header.gas_limit = GENESIS_GAS_LIMIT
|
||||||
|
state.latest_execution_payload_header.base_fee_per_gas = GENESIS_BASE_FEE_PER_GAS
|
||||||
|
|
||||||
return state
|
return state
|
||||||
```
|
```
|
||||||
|
|
|
@ -17,14 +17,14 @@ def build_empty_execution_payload(spec, state, randao_mix=None):
|
||||||
logs_bloom=spec.ByteVector[spec.BYTES_PER_LOGS_BLOOM](), # TODO: zeroed logs bloom for empty logs ok?
|
logs_bloom=spec.ByteVector[spec.BYTES_PER_LOGS_BLOOM](), # TODO: zeroed logs bloom for empty logs ok?
|
||||||
block_number=latest.block_number + 1,
|
block_number=latest.block_number + 1,
|
||||||
random=randao_mix,
|
random=randao_mix,
|
||||||
gas_limit=max(latest.gas_limit, spec.MIN_GAS_LIMIT),
|
gas_limit=latest.gas_limit, # retain same limit
|
||||||
gas_used=0, # empty block, 0 gas
|
gas_used=0, # empty block, 0 gas
|
||||||
timestamp=timestamp,
|
timestamp=timestamp,
|
||||||
base_fee_per_gas=spec.uint64(0),
|
base_fee_per_gas=spec.uint64(0),
|
||||||
block_hash=spec.Hash32(),
|
block_hash=spec.Hash32(),
|
||||||
transactions=empty_txs,
|
transactions=empty_txs,
|
||||||
)
|
)
|
||||||
payload.base_fee_per_gas = spec.compute_base_fee_per_gas(latest, payload)
|
payload.base_fee_per_gas = spec.compute_base_fee_per_gas(payload, latest)
|
||||||
# TODO: real RLP + block hash logic would be nice, requires RLP and keccak256 dependency however.
|
# TODO: real RLP + block hash logic would be nice, requires RLP and keccak256 dependency however.
|
||||||
payload.block_hash = spec.Hash32(spec.hash(payload.hash_tree_root() + b"FAKE RLP HASH"))
|
payload.block_hash = spec.Hash32(spec.hash(payload.hash_tree_root() + b"FAKE RLP HASH"))
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,7 @@ def create_genesis_state(spec, validator_balances, activation_threshold):
|
||||||
# Initialize the execution payload header (with block number and genesis time set to 0)
|
# Initialize the execution payload header (with block number and genesis time set to 0)
|
||||||
state.latest_execution_payload_header.block_hash = eth1_block_hash
|
state.latest_execution_payload_header.block_hash = eth1_block_hash
|
||||||
state.latest_execution_payload_header.random = eth1_block_hash
|
state.latest_execution_payload_header.random = eth1_block_hash
|
||||||
state.latest_execution_payload_header.gas_limit = spec.MIN_GAS_LIMIT
|
state.latest_execution_payload_header.gas_limit = spec.GENESIS_GAS_LIMIT
|
||||||
|
state.latest_execution_payload_header.base_fee_per_gas = spec.GENESIS_BASE_FEE_PER_GAS
|
||||||
|
|
||||||
return state
|
return state
|
||||||
|
|
Loading…
Reference in New Issue