015ab7d0a7
## Issue Addressed Closes #2052 ## Proposed Changes - Refactor the attester/proposer duties endpoints in the BN - Performance improvements - Fixes some potential inconsistencies with the dependent root fields. - Removes `http_api::beacon_proposer_cache` and just uses the one on the `BeaconChain` instead. - Move the code for the proposer/attester duties endpoints into separate files, for readability. - Refactor the `DutiesService` in the VC - Required to reduce the delay on broadcasting new blocks. - Gets rid of the `ValidatorDuty` shim struct that came about when we adopted the standard API. - Separate block/attestation duty tasks so that they don't block each other when one is slow. - In the VC, use `PublicKeyBytes` to represent validators instead of `PublicKey`. `PublicKey` is a legit crypto object whilst `PublicKeyBytes` is just a byte-array, it's much faster to clone/hash `PublicKeyBytes` and this change has had a significant impact on runtimes. - Unfortunately this has created lots of dust changes. - In the BN, store `PublicKeyBytes` in the `beacon_proposer_cache` and allow access to them. The HTTP API always sends `PublicKeyBytes` over the wire and the conversion from `PublicKey` -> `PublickeyBytes` is non-trivial, especially when queries have 100s/1000s of validators (like Pyrmont). - Add the `state_processing::state_advance` mod which dedups a lot of the "apply `n` skip slots to the state" code. - This also fixes a bug with some functions which were failing to include a state root as per [this comment]( |
||
---|---|---|
.. | ||
attestation_verification.rs | ||
beacon_chain.rs | ||
beacon_fork_choice_store.rs | ||
beacon_proposer_cache.rs | ||
beacon_snapshot.rs | ||
block_verification.rs | ||
builder.rs | ||
chain_config.rs | ||
errors.rs | ||
eth1_chain.rs | ||
events.rs | ||
head_tracker.rs | ||
lib.rs | ||
metrics.rs | ||
migrate.rs | ||
naive_aggregation_pool.rs | ||
observed_attestations.rs | ||
observed_attesters.rs | ||
observed_block_producers.rs | ||
observed_operations.rs | ||
persisted_beacon_chain.rs | ||
persisted_fork_choice.rs | ||
schema_change.rs | ||
shuffling_cache.rs | ||
snapshot_cache.rs | ||
state_advance_timer.rs | ||
test_utils.rs | ||
timeout_rw_lock.rs | ||
validator_monitor.rs | ||
validator_pubkey_cache.rs |