mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-01-09 13:56:23 +00:00
1a8b7469e3
* move quarantine outside of chaindag The quarantine has been part of the ChainDAG for the longest time, but this design has a few issues: * the function in which blocks are verified and added to the dag becomes reentrant and therefore difficult to reason about - we're currently using a stateful flag to work around it * quarantined blocks bypass the processing queue leading to a processing stampede * the quarantine flow is unsuitable for orphaned attestations - these should also should be quarantined eventually Instead of processing the quarantine inside ChainDAG, this PR moves re-queueing to `block_processor` which already is responsible for dealing with follow-up work when a block is added to the dag This sets the stage for keeping attestations in the quarantine as well. Also: * make `BlockError` `{.pure.}` * avoid use of `ValidationResult` in block clearance (that's for gossip)
52 lines
1.6 KiB
Nim
52 lines
1.6 KiB
Nim
# beacon_chain
|
|
# Copyright (c) 2018-2021 Status Research & Development GmbH
|
|
# Licensed and distributed under either of
|
|
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
|
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
|
# at your option. This file may not be copied, modified, or distributed except according to those terms.
|
|
|
|
# All tests except scenarios, which as compiled separately for mainnet and minimal
|
|
|
|
import
|
|
chronicles,
|
|
./testutil
|
|
|
|
import # Unit test
|
|
./test_action_tracker,
|
|
./test_attestation_pool,
|
|
./test_beacon_chain_db,
|
|
./test_block_processor,
|
|
./test_blockchain_dag,
|
|
./test_datatypes,
|
|
./test_discovery,
|
|
./test_eth1_monitor,
|
|
./test_eth2_ssz_serialization,
|
|
./test_exit_pool,
|
|
./test_forks,
|
|
./test_gossip_validation,
|
|
./test_helpers,
|
|
./test_honest_validator,
|
|
./test_interop,
|
|
./test_keystore,
|
|
./test_message_signatures,
|
|
./test_peer_pool,
|
|
./test_spec,
|
|
./test_statediff,
|
|
./test_sync_committee_pool,
|
|
./test_sync_manager,
|
|
./test_zero_signature,
|
|
./fork_choice/tests_fork_choice,
|
|
./consensus_spec/all_tests as consensus_all_tests,
|
|
./slashing_protection/test_fixtures,
|
|
./slashing_protection/test_slashing_interchange,
|
|
./slashing_protection/test_slashing_protection_db,
|
|
./slashing_protection/test_migration
|
|
|
|
import # Refactor state transition unit tests
|
|
# In mainnet these take 2 minutes and are empty TODOs
|
|
./spec_block_processing/test_process_deposits,
|
|
./spec_block_processing/test_process_attestation,
|
|
./spec_epoch_processing/test_process_justification_and_finalization
|
|
|
|
summarizeLongTests("AllTests")
|