nimbus-eth1/nimbus
Jordan Hrycaj fbff3aea68
Feature/goerli replay clique poa (#743)
* extract unused clique/mining support into separate file

why:
  mining is currently unsupported by nimbus

* Replay first 51840 transactions from Goerli block chain

why:
  Currently Goerli is loaded but the block headers are not verified.
  Replaying allows real data PoA development.

details:
  Simple stupid gzipped dump/undump layer for debugging based on
  the zlib module (no nim-faststream support.)

  This is a replay running against p2p/chain.persistBlocks() where
  the data were captured from.

* prepare stubs for PoA engine

* split executor source into sup-modules

why:
  make room for updates, clique integration should go into
  executor/update_poastate.nim

* Simplify p2p/executor.processBlock() function prototype

why:
  vmState argument always wraps basicChainDB

* split processBlock() into sub-functions

why:
  isolate the part where it will support clique/poa

* provided additional processTransaction() function prototype without _fork_ argument

why:
  with the exception of some tests, the _fork_ argument is always derived
  from the other prototype argument _vmState_

details:
  similar situation with makeReceipt()

* provide new processBlock() version explicitly supporting PoA

details:
  The new processBlock() version supporting PoA is the general one also
  supporting non-PoA networks, it needs an additional _Clique_ descriptor
  function argument for PoA state (if any.)
  The old processBlock() function without the _Clique_ descriptor argument
  retorns an error on PoA networgs (e.g. Goerli.)

* re-implemented Clique descriptor as _ref object_

why:
  gives more flexibility when moving around the descriptor object

details:
  also cleaned up a bit the clique sources

* comments for clarifying handling of Clique/PoA state descriptor
2021-07-06 14:14:45 +01:00
..
db Eip225 clique/PoA consensus protocol 2021-06-17 08:03:57 +01:00
graphql preparation for EIP-1559 implementation 2021-06-29 07:33:48 +07:00
p2p Feature/goerli replay clique poa (#743) 2021-07-06 14:14:45 +01:00
rpc preparation for EIP-1559 implementation 2021-06-29 07:33:48 +07:00
transaction EIP-3529: Replace SSTORE_CLEARS_SCHEDULE in evmc host_service 2021-06-30 20:35:10 +07:00
utils EIP-1559: Fee market change for ETH 1.0 chain 2021-06-30 20:30:39 +07:00
vm EIP-3541: Fixes typo, 0xFE -> 0xEF 2021-06-30 20:44:34 +07:00
vm2 EIP-3541: Fixes typo, 0xFE -> 0xEF 2021-06-30 20:44:34 +07:00
block_types.nim reduce compiler warnings 2019-11-13 21:49:39 +07:00
chain_config.nim EIP-1559: Fee market change for ETH 1.0 chain 2021-06-30 20:30:39 +07:00
conf_utils.nim Jordan/fix some failing nohive tests (#727) 2021-06-24 16:29:21 +01:00
config.nim preparation for London hard fork 2021-06-29 07:34:45 +07:00
constants.nim Clear up meaning of `ZERO_ADDRESS`, delete `CREATE_CONTRACT_ADDRESS` 2021-05-27 12:14:51 +01:00
errors.nim remove unused eraseReturnData 2020-01-20 18:36:58 +02:00
forks.nim preparation for London hard fork 2021-06-29 07:34:45 +07:00
genesis.nim EIP-1559: Fee market change for ETH 1.0 chain 2021-06-30 20:30:39 +07:00
genesis_alloc.nim add goerli testnet genesis data[skip ci] 2020-04-09 19:13:17 +03:00
launcher.nim Premix-related changes 2019-01-28 12:38:23 +02:00
lightchain_shell.nim Some renames 2018-05-28 13:22:28 +03:00
makefile Basic tests for Clique PoA/Consensus engine 2021-06-17 08:03:57 +01:00
nim.cfg NAT port mapping 2019-04-17 03:56:28 +02:00
nimbus.nim Whisper: Remove all the main Whisper code (config, startup, RPC etc) 2021-06-01 18:12:48 +01:00
random_keys.nim move rng to configuration 2020-07-21 00:16:59 +07:00
tracer.nim Feature/goerli replay clique poa (#743) 2021-07-06 14:14:45 +01:00
transaction.nim EIP-3529: Reduce the max gas refunded after a transaction 2021-06-29 07:37:17 +07:00
utils.nim implement more eth rpc and keystore management 2020-07-23 14:54:32 +07:00
validation.nim reduce compiler warnings 2019-11-13 21:49:39 +07:00
vm_compile_info.nim print compiler warning about the VM used 2021-04-28 15:24:14 +03:00
vm_computation.nim EVM: Apply EIP-6 in the code (affects both vm and vm2) 2021-06-08 15:36:30 +01:00
vm_gas_costs.nim EIP-3529: Replace SSTORE_CLEARS_SCHEDULE 2021-06-29 07:37:17 +07:00
vm_internals.nim vm2: Remove vm2 `forks_list` everywhere, use common forks list 2021-06-08 15:36:31 +01:00
vm_precompiles.nim re-named some v2*.nim sources to its original name *.nim (without the v2) 2021-04-28 15:24:14 +03:00
vm_state.nim EIP-1559: Fee market change for ETH 1.0 chain 2021-06-30 20:30:39 +07:00
vm_state_transactions.nim Transaction: Prepare txRefundGas to support txCallEvm 2021-05-03 19:51:20 +01:00
vm_types.nim re-named some v2*.nim sources to its original name *.nim (without the v2) 2021-04-28 15:24:14 +03:00