nimbus-eth2/beacon_chain
Etan Kissling 3a92bf3914
use dependent root as `execution_optimistic` basis for duties (#4955)
The validator beacon APIs `getAttesterDuties`, `getProposerDuties`, and
`getSyncCommitteeDuties`, have reported the `execution_optimistic`
state for the current head block. This can lead to a race if duties are
requested around the slot start, if a new head block is currently being
processed by the EL, during which the BN head may be briefly optimistic.

`execution_optimistic` is documented in beacon APIs as:

> True if the response references an unverified execution payload.
> Optimistic information may be invalidated at a later time.
> If the field is not present, assume the False value.

As the duty endpoints reference the shuffling dependent root instead of
the currently selected head block, `execution_optimistic` is now fetched
based on that shuffling dependent block root. As this dependent block is
in the past it doesn't usually become optimistic when adding new blocks.

Note that the endpoints requested 4/8 seconds into the slot that perform
the actual duties instead of just querying for duty schedule, still
report `execution_optimistic` based on the BN head block.
2023-05-15 23:42:42 +03:00
..
consensus_object_pools Revert "accelerate `getShufflingRef` (#4911)" (#4958) 2023-05-15 15:25:51 +00:00
el Don't report very brief EL connection interruptions on user-visible log levels (#4960) 2023-05-15 23:40:47 +03:00
fork_choice simplify FC weight computation (#4892) 2023-05-09 10:16:13 +00:00
gossip_processing Rename eth1/ -> el/ and eth1_monitor.nim -> el_monitor.nim (#4944) 2023-05-15 05:05:12 +00:00
networking fix linking / compile warnings on pie/etc (#4939) 2023-05-12 07:57:49 +00:00
rpc use dependent root as `execution_optimistic` basis for duties (#4955) 2023-05-15 23:42:42 +03:00
spec Revert "accelerate `getShufflingRef` (#4911)" (#4958) 2023-05-15 15:25:51 +00:00
sync final portion of trivial v1.3.0 bumps (#4926) 2023-05-11 09:54:29 +00:00
validator_client update some beacon API spec URLs; fix some Name and DuplicateModuleImport hints (#4929) 2023-05-10 10:20:55 +00:00
validators Rename eth1/ -> el/ and eth1_monitor.nim -> el_monitor.nim (#4944) 2023-05-15 05:05:12 +00:00
.editorconfig Add .editorconfig file and remove trailing newlines 2021-09-14 12:12:49 +03:00
.gitignore Rename binaries; Mimic the original repo layout in the distribution 2020-11-09 11:38:52 +02:00
beacon_chain_db.nim rename Deneb database tables (not in testnets atm) (#4720) 2023-03-11 02:26:03 +01:00
beacon_chain_db_immutable.nim align `BeaconState` docs with latest spec (#4884) 2023-05-03 13:05:46 +02:00
beacon_chain_db_light_client.nim rename `EIP4844` > `Deneb` for light client (#4713) 2023-03-10 17:16:26 +00:00
beacon_clock.nim automatic update of v1.3.0-rc.5 consensus spec URLs to v1.3.0 (#4848) 2023-04-21 18:52:43 +00:00
beacon_node.nim Rename eth1/ -> el/ and eth1_monitor.nim -> el_monitor.nim (#4944) 2023-05-15 05:05:12 +00:00
beacon_node_light_client.nim use non-nil head corresponding to execution head (#4835) 2023-04-18 14:17:56 +00:00
beacon_node_status.nim remove Nim 1.2-compatible `push raise`s and update copyright notice years (#4528) 2023-01-20 14:14:37 +00:00
conf.nim Rename eth1/ -> el/ and eth1_monitor.nim -> el_monitor.nim (#4944) 2023-05-15 05:05:12 +00:00
conf_light_client.nim Support for driving multiple EL nodes from a single Nimbus BN (#4465) 2023-03-05 01:40:21 +00:00
db_limits.nim remove Nim 1.2-compatible `push raise`s and update copyright notice years (#4528) 2023-01-20 14:14:37 +00:00
deposits.nim Allow exiting multiple validators at once (#4855) 2023-04-25 09:44:01 +03:00
era_db.nim era: Capella+ support (fixes #4752) (#4853) 2023-04-24 15:26:28 +02:00
extras.nim clean up redundant tests and config (#4836) 2023-04-18 21:26:36 +02:00
filepath.nim remove Nim 1.2-compatible `push raise`s and update copyright notice years (#4528) 2023-01-20 14:14:37 +00:00
future_combinators.nim Support for driving multiple EL nodes from a single Nimbus BN (#4465) 2023-03-05 01:40:21 +00:00
light_client.nim harden gossip `strictVerification` in local testnets (#4880) 2023-05-02 13:06:02 +02:00
light_client_db.nim disable BareExcept warnings (#4662) 2023-02-24 19:50:46 +00:00
nim.cfg enable `styleCheck:usages` (#3573) 2022-04-08 16:22:49 +00:00
nimbus_beacon_node.nim Incremental pruning (#4887) 2023-05-12 13:37:15 +03:00
nimbus_beacon_node.nim.cfg remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00
nimbus_binary_common.nim Keystore cache implementation. (#4372) 2023-02-16 19:25:48 +02:00
nimbus_light_client.nim Rename eth1/ -> el/ and eth1_monitor.nim -> el_monitor.nim (#4944) 2023-05-15 05:05:12 +00:00
nimbus_light_client.nim.cfg remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00
nimbus_signing_node.nim update some beacon API spec URLs; fix some Name and DuplicateModuleImport hints (#4929) 2023-05-10 10:20:55 +00:00
nimbus_signing_node.nim.cfg Revert writing backfill root to database (#3215) 2021-12-21 11:40:14 +01:00
nimbus_validator_client.nim update some beacon API spec URLs; fix some Name and DuplicateModuleImport hints (#4929) 2023-05-10 10:20:55 +00:00
nimbus_validator_client.nim.cfg remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00
sszdump.nim remove Nim 1.2-compatible `push raise`s and update copyright notice years (#4528) 2023-01-20 14:14:37 +00:00
statediff.nim update statediffs to support capella (#4852) 2023-04-23 22:15:14 +03:00
statusbar.nim remove Nim 1.2-compatible `push raise`s and update copyright notice years (#4528) 2023-01-20 14:14:37 +00:00
trusted_node_sync.nim more consensus-specs v1.3.0 bumps (#4898) 2023-05-05 20:38:51 +00:00
version.nim use compile-time year in `--version` copyright (#4946) 2023-05-13 04:30:49 +00:00
wallets.nim remove Nim 1.2-compatible `push raise`s and update copyright notice years (#4528) 2023-01-20 14:14:37 +00:00