nimbus-eth2/tests
zah 8771e91d53
Support for driving multiple EL nodes from a single Nimbus BN (#4465)
* Support for driving multiple EL nodes from a single Nimbus BN

Full list of changes:

* Eth1Monitor has been renamed to ELManager to match its current
  responsibilities better.

* The ELManager is no longer optional in the code (it won't have
  a nil value under any circumstances).

* The support for subscribing for headers was removed as it only
  worked with WebSockets and contributed significant complexity
  while bringing only a very minor advantage.

* The `--web3-url` parameter has been deprecated in favor of a
  new `--el` parameter. The new parameter has a reasonable default
  value and supports specifying a different JWT for each connection.
  Each connection can also be configured with a different set of
  responsibilities (e.g. download deposits, validate blocks and/or
  produce blocks). On the command-line, these properties can be
  configured through URL properties stored in the #anchor part of
  the URL. In TOML files, they come with a very natural syntax
  (althrough the URL scheme is also supported).

* The previously scattered EL-related state and logic is now moved
  to `eth1_monitor.nim` (this module will be renamed to `el_manager.nim`
  in a follow-up commit). State is assigned properly either to the
  `ELManager` or the to individual `ELConnection` objects where
  appropriate.

  The ELManager executes all Engine API requests against all attached
  EL nodes, in parallel. It compares their results and if there is a
  disagreement regarding the validity of a certain payload, this is
  detected and the beacon node is protected from publishing a block
  with a potential execution layer consensus bug in it.

  The BN provides metrics per EL node for the number of successful or
  failed requests for each type Engine API requests. If an EL node
  goes offline and connectivity is resoted later, we report the
  problem and the remedy in edge-triggered fashion.

* More progress towards implementing Deneb block production in the VC
  and comparing the value of blocks produced by the EL and the builder
  API.

* Adds a Makefile target for the zhejiang testnet
2023-03-05 01:40:21 +00:00
..
consensus_spec rename most eip4844Data to denebData (#4693) 2023-03-04 22:23:52 +00:00
fork_choice track slot as part of fork choice debug API (#4565) 2023-01-31 12:35:01 +00:00
fuzzing test fixture cleanups (#2976) 2021-10-12 13:36:52 +02:00
helpers fix ExecutionPayload(Header) JSON serialization (#3679) 2022-06-01 14:57:28 +02:00
mocking rm obsolete interop module (#4570) 2023-02-01 16:29:55 +01:00
simulation Support for driving multiple EL nodes from a single Nimbus BN (#4465) 2023-03-05 01:40:21 +00:00
slashing_protection use ZERO_HASH for default(Eth2Digest)/Eth2Digest() in func calls (#3770) 2022-06-18 04:57:37 +00:00
all_tests.nim rm obsolete interop module (#4570) 2023-02-01 16:29:55 +01:00
nim.cfg Local sim impovements (#4551) 2023-02-23 02:10:07 +00:00
test_action_tracker.nim Fix VC-based sync subnet subscriptions (#4293) 2022-11-08 12:43:38 +01:00
test_attestation_pool.nim more withdrowls (#4674) 2023-03-02 17:13:35 +01:00
test_beacon_chain_db.nim rename most eip4844Data to denebData (#4693) 2023-03-04 22:23:52 +00:00
test_beacon_time.nim fix countdown over time period (#4449) 2022-12-30 21:36:31 +01:00
test_block_dag.nim remove unused imports in tests/ (#3713) 2022-06-07 17:05:06 +00:00
test_block_processor.nim Support for driving multiple EL nodes from a single Nimbus BN (#4465) 2023-03-05 01:40:21 +00:00
test_block_quarantine.nim Remove blobsSidecar from orphans table (#4670) 2023-02-27 06:10:22 +00:00
test_blockchain_dag.nim more withdrowls (#4674) 2023-03-02 17:13:35 +01:00
test_conf.nim remove Nim 1.2-compatible `push raise`s and update copyright notice years (#4528) 2023-01-20 14:14:37 +00:00
test_datatypes.nim remove false OnBlockAdded dependency on phase0 HashedBeaconState (#2661) 2021-06-21 08:35:24 +00:00
test_deposit_snapshots.nim Support for obtaining deposit snapshots during trustedNodeSync (#4303) 2022-12-07 12:24:51 +02:00
test_discovery.nim detect mismatch of config and binary (#4132) 2022-09-19 12:07:46 +03:00
test_engine_authentication.nim remove unused imports in tests/ (#3713) 2022-06-07 17:05:06 +00:00
test_eth1_monitor.nim Support for driving multiple EL nodes from a single Nimbus BN (#4465) 2023-03-05 01:40:21 +00:00
test_eth2_ssz_serialization.nim use isZeroMemory for Eth2Digest comparisons (#3386) 2022-02-14 05:26:19 +00:00
test_exit_pool.nim prioritize REST API-provided BLS to execution changes over gossip-received changes (#4580) 2023-02-03 16:28:28 +01:00
test_forks.nim `BeaconStateFork/BeaconBlockFork` -> `ConsensusFork` (#4560) 2023-01-28 19:53:41 +00:00
test_gossip_transition.nim rename ConsensusFork.EIP4844 to ConsensusFork.Deneb (#4692) 2023-03-04 13:35:39 +00:00
test_gossip_validation.nim rename most eip4844Data to denebData (#4693) 2023-03-04 22:23:52 +00:00
test_helpers.nim Support for driving multiple EL nodes from a single Nimbus BN (#4465) 2023-03-05 01:40:21 +00:00
test_honest_validator.nim Remove uses of beacon_block_and_blobs_sidecar topic (#4682) 2023-03-01 21:30:20 +01:00
test_key_splitting.nim bearssl: split abi (#3755) 2022-06-21 10:29:16 +02:00
test_keymanager_api.nim Support for driving multiple EL nodes from a single Nimbus BN (#4465) 2023-03-05 01:40:21 +00:00
test_keystore.nim Keymanager API for the validator client (#3976) 2022-08-19 13:30:07 +03:00
test_keystore_management.nim Exclusive keystore locking (#3907) 2022-08-08 00:53:20 +03:00
test_light_client.nim rename most eip4844Data to denebData (#4693) 2023-03-04 22:23:52 +00:00
test_light_client_processor.nim rename most eip4844Data to denebData (#4693) 2023-03-04 22:23:52 +00:00
test_message_signatures.nim Implement all sync committee duties in the validator client (#3583) 2022-05-10 10:03:40 +00:00
test_peer_pool.nim proc -> func in ncli/, research/, and test/ (#2818) 2021-08-25 14:51:52 +00:00
test_remote_keystore.nim Keymanager API for the validator client (#3976) 2022-08-19 13:30:07 +03:00
test_serialization.nim nicer error message for failed backfill (#4188) 2022-09-29 23:55:18 +03:00
test_spec.nim `BeaconStateFork/BeaconBlockFork` -> `ConsensusFork` (#4560) 2023-01-28 19:53:41 +00:00
test_statediff.nim `BeaconStateFork/BeaconBlockFork` -> `ConsensusFork` (#4560) 2023-01-28 19:53:41 +00:00
test_sync_committee_pool.nim drop subset sync contributions in gossip (#4490) 2023-01-12 15:08:08 +01:00
test_sync_manager.nim EIP4844 sync (#4581) 2023-02-11 20:48:35 +00:00
test_validator_pool.nim restore doppelganger check on connectivity loss (#4616) 2023-02-20 13:28:56 +02:00
test_zero_signature.nim update spec references from eth2.0-specs to consensus-specs and to v1.1.0-beta.2 (#2822) 2021-08-26 10:21:52 +02:00
testblockutil.nim Support for driving multiple EL nodes from a single Nimbus BN (#4465) 2023-03-05 01:40:21 +00:00
testdbutil.nim `BeaconStateFork/BeaconBlockFork` -> `ConsensusFork` (#4560) 2023-01-28 19:53:41 +00:00
teststateutil.nim rename ConsensusFork.EIP4844 to ConsensusFork.Deneb (#4692) 2023-03-04 13:35:39 +00:00
testutil.nim remove Nim 1.2-compatible `push raise`s and update copyright notice years (#4528) 2023-01-20 14:14:37 +00:00