tersec
cf1bec7670
update some deprecated stew/results to results imports ( #5743 )
2024-01-16 22:37:14 +00:00
Jacek Sieka
62cbdeefc5
verify `genesis_time` more strictly ( fixes #1667 ) ( #5694 )
...
Bogus values lead to crashes down the line when timers overflow
2024-01-06 15:26:56 +01:00
tersec
9efb2958ec
automated consensus spec URL updating to v1.4.0-beta.5 ( #5647 )
2023-12-05 03:34:45 +01:00
tersec
c96163dbca
update some consensus spec URLs to v1.4.0-beta.4 ( #5594 )
2023-11-11 06:27:53 +01:00
tersec
7e3aeaea09
automated consensus spec URL updating to v1.4.0-beta.4 ( #5577 )
2023-11-08 05:28:03 +00:00
tersec
4ddd771127
automated consensus spec URL updating to v1.4.0-beta.3 ( #5514 )
2023-10-19 10:26:38 +00:00
tersec
40616b6243
update some consensus spec URLs to v1.4.0-beta.2 ( #5497 )
2023-10-12 05:07:41 +00:00
Etan Kissling
bfe76be4d7
debug log duration for processing attestation queue ( #5473 )
...
Depending on the load, processing of queued attestations may take a
while. Log processing duration at debug level.
2023-10-03 22:17:42 +02:00
tersec
2895a9a05c
automated consensus spec URL updating to v1.4.0-beta.2 ( #5453 )
2023-09-21 18:06:51 +00:00
Etan Kissling
ee57a07411
implement Confirmation rule prerequisite - fork choice filter change ( #5450 )
...
To support confirmation rule via beacon-APIs as described in spec PR,
add `--debug-fork-choice-version=pr3431` option and enable when Deneb
fork is scheduled. To opt-out, `--debug-fork-choice-version=stable`,
or don't schedule Deneb.
- https://github.com/ethereum/consensus-specs/pull/3431
- https://github.com/ethereum/consensus-specs/issues/3466
"will bundle this with deneb release":
- https://github.com/ethereum/pm/issues/844#issuecomment-1673359012
2023-09-20 18:27:55 +02:00
Etan Kissling
273f1d34cd
implement EIP-7514 for Deneb: Add Max Epoch Churn Limit ( #5442 )
...
* implement EIP-7514 for Deneb: Add Max Epoch Churn Limit
Cap activations per epoch according to EIP-7514:
- https://eips.ethereum.org/EIPS/eip-7514
- https://github.com/ethereum/consensus-specs/pull/3499
* apply proposer boost to first block in case of equivocation
Implement spec changes to fork choice; this only affects equivocation
when multiple blocks are signed for the same slot. Regular operation
is not changed.
- https://github.com/ethereum/consensus-specs/pull/3352
* bump test vectors to v1.4.0-beta.2-hotfix
---------
Co-authored-by: tersec <tersec@users.noreply.github.com>
2023-09-20 13:39:56 +02:00
Etan Kissling
c1b43d166b
avoid repeated total active balance computation in fork choice ( #5437 )
...
We currently compute `justified_total_active_balance` inside
`calculateProposerBoost`, despite that sum already being known
in the `EpochRef` cache. Tracking `justified_total_active_balance`
whenever the justified checkpoint updates allows replacing the
repeated computation with a lookup, at minimal memory cost.
2023-09-19 22:04:55 +02:00
tersec
5a29ad7e4f
update some consensus-spec URLs to v1.4.0-beta.1 ( #5429 )
2023-09-14 18:23:59 +00:00
Etan Kissling
8fa5580c50
add infrastructure to select fork choice version ( #5387 )
...
To allow testing https://github.com/ethereum/consensus-specs/issues/3466
add support for selecting fork choice version at launch. This means we
can deploy a different logic when `DENEB_FORK_EPOCH != FAR_FUTURE_EPOCH`
that won't be used on Mainnet.
2023-09-12 09:52:51 +02:00
Jacek Sieka
f77548310f
avoid quadratic attestation queue iteration ( #5288 )
...
every attestation is processed with a new wall time so we end up
iterating over all attestations for every attestation we queue - this is
4% of cpu time on a subscribe-all-subnets node
* remove redundant zero checks - block root must be an existing block
and therefore cannot be zero
* simplify "hasn't-voted" check to root only (isZeroMemory is dubiously
implemented for objects)
2023-08-14 16:48:30 +03:00
tersec
85e1976ac3
automated consensus spec URL updating to v1.4.0-beta.1 ( #5280 )
2023-08-09 03:58:47 +00:00
tersec
614202e30d
automated consensus spec URL updating to v1.4.0-beta.0 ( #5121 )
2023-06-24 15:43:30 +00:00
tersec
591c2246d5
update consensus spec URLs to v1.4.0-alpha.3 ( #5088 )
2023-06-16 16:45:09 +00:00
tersec
54cc7bb7a1
update some consensus-spec URLs to v1.4.0-alpha.3 ( #5074 )
2023-06-13 21:07:39 +00:00
tersec
788cdb7133
automated v1.4.0-alpha.2 to v1.4.0-alpha.3 consensus spec URL updates ( #5065 )
2023-06-13 14:03:49 +00:00
tersec
22208836b1
automated v1.4.0-alpha.1 to v1.4.0-alpha.2 consensus spec URL updates ( #5056 )
2023-06-10 09:56:54 +00:00
tersec
30c859e8a4
update some consensus-spec URLs to v1.4.0-alpha.1 ( #5035 )
2023-06-06 17:09:48 +00:00
tersec
f86febc111
update consensus spec URLs to v1.4.0-alpha.1 ( #5027 )
2023-06-04 10:32:50 +00:00
Etan Kissling
750722dd75
advance FC time if block/attestation is early ( #4992 )
...
When processing blocks/attestations that are slightly early, within the
spec allowed `MAXIMUM_GOSSIP_CLOCK_DISPARITY`, bump FC time accordingly.
2023-05-26 08:03:49 +00:00
tersec
1f535336da
automated v1.3.0 to v1.4.0-alpha.0 consensus spec URL updates ( #4996 )
...
* automated v1.3.0 to v1.4.0-alpha.0 consensus spec URL updates
* add copyright year headers
2023-05-26 00:14:28 +02:00
Etan Kissling
5c5fbc088f
simplify FC weight computation ( #4892 )
...
Optimizations from https://github.com/ethereum/consensus-specs/pull/3246
avoid a couple unnecessary divisions when calculating proposer boost.
2023-05-09 10:16:13 +00:00
Etan Kissling
0ad9ab446d
cleanup FC spec refs and align closer ( #4893 )
...
Bump FC spec references to v1.3.0, and visually align closer with
specs where trivial to do so without structural changes.
2023-05-05 17:03:54 +00:00
Etan Kissling
e6e4ba9de6
clean up redundant tests and config ( #4836 )
...
The consensus-spec-tests already cover the scenarios of our custom test
runner, so the custom tests can be removed. Also cleans up unused config
flags and related unreachable logic.
2023-04-18 21:26:36 +02:00
tersec
2f634c10a4
automated consensus spec URL updating from v1.3.0-rc.4 to rc.5 ( #4756 )
2023-03-21 00:42:22 +00:00
tersec
ec77116414
automated consensus spec URL updating from v1.3.0-rc.3 to rc.4 ( #4742 )
2023-03-17 01:10:31 +00:00
tersec
29fb65a9db
automated update of v1.3.0-rc.2 to v1.3.0-rc.3 consensus spec URLs ( #4647 )
2023-02-21 16:43:21 +00:00
Etan Kissling
1ac7f1a47a
rm unused `lowParticipation` flag ( #4624 )
...
Remove an unused flag and associated (unreachable) logic, as the flag
wasn't even passed to that module.
2023-02-15 00:25:22 +01:00
tersec
cdf69b9360
more automated v1.3.0-rc.1 to v1.3.0-rc.2 consensus spec URL updates ( #4572 )
2023-01-31 22:49:17 +00:00
Etan Kissling
ea6a6b1acd
track slot as part of fork choice debug API ( #4565 )
...
Extends fork choice state to also track slot numbers to improve accuracy
of `/eth/v1/debug/fork_choice` endpoint. Autoenable this API on devnet,
and disable some extra checks on devnet to aid focused testing efforts.
Align fork choice pruning logic with API based on checkpoints vs root.
2023-01-31 12:35:01 +00:00
tersec
aacc8d702d
remove Nim 1.2-compatible `push raise`s and update copyright notice years ( #4528 )
2023-01-20 14:14:37 +00:00
tersec
073c544f0c
automated update from v1.3.0-rc.0 to v1.3.0-rc.1 consensus spec URLs ( #4517 )
2023-01-17 16:10:52 +00:00
tersec
4f9064a153
consensus spec ref URL updates ( #4496 )
2023-01-12 13:33:14 +00:00
tersec
2dd3cd786f
consensus spec ref URL update v1.3.0-{alpha.2,rc.0}; copyright year update ( #4477 )
2023-01-09 22:44:44 +00:00
tersec
bb4ea37baa
update EF consensus spec URLs from v1.3.0-alpha.1 to v1.3.0-alpha.2 ( #4432 )
2022-12-15 12:15:12 +00:00
tersec
61c5ac32d8
automated consensus spec ref URL update to v1.3.0-alpha.1 ( #4354 )
2022-11-24 19:07:02 +00:00
tersec
909c095e64
initial automated v1.2.0 -> v1.3.0-alpha.0 consensus spec URL update ( #4296 )
2022-11-08 02:37:28 +00:00
Jacek Sieka
b1bc830a92
Harden EpochRef loading against bogus block root at tail ( #4178 )
...
* add more error information when things go wrong with database
* lower log level when reloading attestations from no-block epoch start
slot
2022-09-27 18:56:08 +02:00
tersec
0f6d19b4b3
implement v1.2.0 optimistic sync tests ( #4174 )
...
* implement v1.2.0 optimistic sync tests
* Update beacon_chain/consensus_object_pools/blockchain_dag.nim
Co-authored-by: Etan Kissling <etan@status.im>
* `lvh` -> `latestValidHash` and only invalidate one specific block"
* `getEarliestInvalidRoot` -> `getEarliestInvalidBlockRoot`; `defaultEarliestInvalidRoot` -> `defaultEarliestInvalidBlockRoot`
Co-authored-by: Etan Kissling <etan@status.im>
2022-09-27 15:11:47 +03:00
tersec
3c03ba86c1
update consensus spec ref URLs to v1.2.0 ( #4164 )
2022-09-23 07:56:06 +00:00
Etan Kissling
9999362b11
detect mismatch of config and binary ( #4132 )
...
* detect mismatch of config and binary
When loading configuration that sets keys that Nimbus bakes into the
binary at compile-time, raise an error if the config is incompatible
instead of ignoring the conflicting value.
2022-09-19 12:07:46 +03:00
Etan Kissling
5ab57369f7
testnet optimizations for low participation ( #4100 )
...
Update finality check to improve performance in testnets.
2022-09-09 02:31:33 +02:00
tersec
11ebf60ab8
fork choice: support marking roots/nodes invalid ( #4071 )
...
* fork choice: support marking roots/nodes invalid
* check for invalid first
2022-09-06 16:58:54 +00:00
tersec
e183dccc7f
blockchain DAG and fork choice comment cleanup ( #4070 )
2022-09-05 23:25:28 +00:00
tersec
ad0d30093f
state/forkyState cleanup; spec URL updates; rm unused imports ( #4052 )
2022-08-31 13:29:34 +02:00
Etan Kissling
574b84f96f
add REST endpoint for fork choice context ( #4042 )
...
Implements a proposed REST endpoint for analyzing fork choice behaviour.
See https://github.com/ethereum/beacon-APIs/pull/232
2022-08-29 22:02:29 +00:00