Commit Graph

6256 Commits

Author SHA1 Message Date
Etan Kissling beb915e308
remove emoji from function names (#5633)
Some editors seem to have issues with those. The ones in strings seem to
be alright, though. Rename the affected symbols.
2023-11-29 00:30:44 +00:00
Eugene Kabanov e2e4912645
REST API produceBlockV3 implementation (#5474)
Co-authored-by: Etan Kissling <etan@status.im>
Co-authored-by: Jacek Sieka <jacek@status.im>
2023-11-29 00:30:14 +01:00
Zahary Karadjov 3a527d622d
Version 23.11.0 2023-11-28 23:54:05 +02:00
Zahary Karadjov d387b6cb26
Correct error message when the required mdbook version is not available 2023-11-28 23:49:44 +02:00
tersec ab5343d1bc
update some consensus spec URLs to v1.4.0-beta.4 (#5631) 2023-11-27 19:56:34 +01:00
Miran b92a0d631d
fix #4065, explicitly mention trusted node sync (#5611)
* fix #4065, explicitly mention trusted node sync

* Update docs/the_nimbus_book/src/migration.md

Co-authored-by: tersec <tersec@users.noreply.github.com>

---------

Co-authored-by: tersec <tersec@users.noreply.github.com>
2023-11-27 17:48:48 +00:00
tersec 6dee4d59fe
switch engine authentication from `Option` to `Opt` (#5624)
* switch engine authentication from Option to Opt

* el_conf updates

* LC and el_conf tests
2023-11-27 14:48:29 +00:00
tersec efb094b521
bump holesky to rm spurious MAX_BLOBS_PER_BLOCK in config (#5630) 2023-11-27 15:28:53 +01:00
tersec 23983c34ac
rm debugRaiseAssert (#5629) 2023-11-26 19:40:10 +01:00
tersec 925d531884
test deneb in Jenkins finalization CI (#5627)
* Revert "Revert "test deneb in Jenkins finalization CI (#5625)" (#5626)"

This reverts commit bbf4551ff9.

* always use current Geth stable
2023-11-26 14:38:19 +00:00
tersec af0b36f2e7
respond even in not-yet-supported Deneb beacon+builder API case in REST server (#5628) 2023-11-26 10:00:04 +00:00
tersec bbf4551ff9
Revert "test deneb in Jenkins finalization CI (#5625)" (#5626)
This reverts commit af08c0f47d.
2023-11-26 05:17:46 +00:00
tersec af08c0f47d
test deneb in Jenkins finalization CI (#5625) 2023-11-26 03:37:36 +00:00
tersec 115ffa70eb
rm unused code (#5623) 2023-11-25 12:09:18 +00:00
tersec 5aa595fbc6
Option[deneb.SignedBeaconBlock] -> Opt[deneb.SignedBeaconBlock] (#5620) 2023-11-24 17:34:45 +01:00
tersec 0e5234efcc
avoid potentially subtle template/function symbol name interactions (#5622)
* avoid potentially subtle template/function symbol name interactions

* use warn instead of error in getExecutionPayload codepath to ensure lack of ambiguity
2023-11-24 16:34:25 +00:00
Etan Kissling 8cea8af620
fix startup after BN exited between head and finalized blocks updates (#5617)
When the BN exits after writing new `head` to database, but before
completing the `updateFinalizedBlocks` call, the database is slightly
inconsistent due to the partial write. We currently fail to start up
after that. Fix that by catching up on partial `updateFinalizedBlocks`
tasks on start up, and add a test for this edge case.
2023-11-23 00:44:20 +01:00
Etan Kissling d5fbbd9b88
increase `GENESIS_OFFSET` for local testnet simulation (#5619)
The 40s allotted for setting up a local testnet can sometime be exceeded
when CI is busy. Bumping it by 20s should reduce that risk.

Example, where the entire slots 0 and 1 were missed:

```
{"lvl":"INF","ts":"2023-11-22 18:33:32.000+00:00","msg":"Scheduling first slot action","topics":"beacnde","startTime":"8s999ms800us826ns","nextSlot":2,"timeToNextSlot":"3s199us174ns"}
```
2023-11-22 23:19:54 +00:00
Etan Kissling c81e3a556e
bump `geth` to `1.13.5` in CI (#5618)
Use stable Geth version in CI, the previous unstable one is no longer
available and fails CI builds.
2023-11-22 22:01:40 +01:00
Etan Kissling b0b8f21223
fix LC data import `--only-new` regression (#5616)
Corrects LC server startup logic for `LightClientDataImportMode.OnlyNew`
after regression in #5607.
2023-11-22 14:05:31 +01:00
Etan Kissling 7554ca2583
retry sync request when receiving invalid response range (#5615)
Inform `sync_queue` about inconsistent responses to sync requests
so that the affected requests are retried with a different peer.
2023-11-22 09:01:51 +01:00
Etan Kissling c33dd2c170
restrict best LC update collection to canonical blocks (#5613)
Simplify best `LightClientUpdate` collection by tracking only canonical
data instead of tracking the best update across all branches within the
sync committee period.

- https://github.com/ethereum/consensus-specs/pull/3553
2023-11-21 23:51:05 +01:00
Etan Kissling 946ebe54cf
simplify `chunkMaxSize[T]` helper implementation (#5614)
There is no longer a `MAX_CHUNK_SIZE_BELLATRIX` since #5284, and we have
not used separate limits since #4558. Clean up to reflect that.
2023-11-21 23:08:31 +01:00
Etan Kissling 375f276f31
reorder gossip validation checks (#5610)
* reorder gossip validation checks

Doing the coverage check only after the corresponding committee index is
known allows optimization by early rejecting invalid data.

* use same helper for individual attestations as well
2023-11-20 16:42:29 +02:00
Jacek Sieka e1e809eeb7
Batch slashing protection registration (#5604)
This PR brings down the time to send 100 attestations from ~1s to
~100ms, making it feasible to run 10k validators on a single node (which
regularly send 300 attestations / slot).

This is done by batching the slashing protection database write in a
single transaction thus avoiding a slow fsync for every signature -
effects will be more pronounced on slow drives.

The benefit applies both to beacon and client validators.
2023-11-19 14:08:07 +01:00
Etan Kissling d8144c6de1
cache new LC data after creating new LC updates (#5607)
When creating new LC updates, information about the parent block's post
state must be available (cached), but information about current block's
post state is not yet required. Caching information about the current
block's post state can be delayed, simplifying the LC data collection
logic a bit and allowing more future flexibility with the cache design.
2023-11-18 01:17:26 +00:00
Etan Kissling b179cb71a0
clean up `XDeclaredButNotUsed` for light client (#5606)
Handle remaining `XDeclaredButNotUsed` warnings for light client.
2023-11-18 00:03:27 +01:00
stephanep dfd7b9bc61
Fix handling of VC validators by per payload-builder payload builder validator registration (issue #5599). (#5603)
The proposed change ensures that VC validators are registered with the builder specified by the `--payload-builder-url` argument even if the beacon node has no attached validators. It also prevent such validators from being unintentionally registered with builders configured for specific attached validators by the keymanager api.
Per the current specs, the VC have no way to specify which builders the BN should use on a per-node basis, so for the time being we have to resort to using the BN fallback default builder URL for VC validators.
2023-11-17 17:42:00 +03:00
Jacek Sieka f8ad57e0e5
bumps: chronos v4 compat (#5605)
these bumps help maintain compatibility with the latest chronos v4
branch without requiring it

* switch back to chronicles master
2023-11-17 13:08:50 +01:00
Etan Kissling b9a693d5fe
send LC finality update on event stream on supermajority (#5602)
When new finality is reached without supermajority sync committee
support, trigger another event push on beacon-API and libp2p once
the finality gains supermajority support.

- https://github.com/ethereum/consensus-specs/pull/3549
2023-11-16 19:57:15 -08:00
Etan Kissling 98e969084d
update Deneb for latest builder-specs flow (#5598)
The `BlobSidecar` construction has been moved to the relay and is no
longer done by the BN / VC in blinded flow. Builder bid contents have
been shrinked from full `BlindedBlobBundle` to `blob_kzg_commitments`.

- https://github.com/ethereum/builder-specs/pull/90
- https://github.com/ethereum/beacon-APIs/pull/369
2023-11-15 16:20:13 -08:00
Jacek Sieka ec6780ed6f
bump stew/unittest2 (#5600)
better `toBytes`
2023-11-15 13:17:50 +01:00
Etan Kissling 0919ff05c9
reduce code duplication when collecting LC data (#5601)
Replace sections that need to be maintained with every `ConsensusFork`
related to LC data collection with a generic logic that keeps working
when unrelated parts of Ethereum change.
2023-11-15 03:21:03 +01:00
Eugene Kabanov 9889b840ce
VC: new scoring functions. (#5447)
* Initial commit.

* Fix issues and tests.

* Fix test compilation issue.

* Update AllTests.

* Change the most poor score name from <lowest> to <bad>.
Split sync committee message score in range, so lexicographic scores will not intersect with normal one.
Lexicographic scores should be below to normal scores.

* Address review comments.
Fix aggregated attestation scoring to use MAX_VALIDATORS_PER_COMMITTEE.
Fix sync committee contributions to use SYNC_SUBCOMMITTEE_SIZE.
Add getUniqueVotes test vectors.

* Post-rebase fixes.

* Address review comments.

* Return back score calculation based on actual bits length.

* AllTests modification.
2023-11-14 12:13:26 +01:00
Etan Kissling 5f4bbd0a23
bump `gnosis-chain-configs` to `c5dcc824687f23f4a2f219ca60754719f17e7e42` (#5597)
- Remove prerelease keys
2023-11-13 21:11:40 +01:00
diegomrsantos 2f0bb61f27
Update nim-libp2p version (#5482) 2023-11-12 16:48:40 +03:00
tersec 54bdda13b4
rm unused code (#5596) 2023-11-11 11:49:34 +03:00
tersec 14c68ea285
stop calling engine_exchangeTransitionConfigurationV1 with Dencun-ready ELs (#5585) 2023-11-11 11:47:03 +03:00
tersec b669f23c25
remove `XDeclaredButNotUsed` exclusion from Nim configurations (#5595)
* remove XDeclaredButNotUsed exclusion from Nim configurations

* copyright year linting
2023-11-11 07:54:52 +00:00
tersec 1ceac20ea6
disallow htr on Opt[Foo] (#5593) 2023-11-11 05:33:54 +00:00
tersec c96163dbca
update some consensus spec URLs to v1.4.0-beta.4 (#5594) 2023-11-11 06:27:53 +01:00
Etan Kissling 9ec7b700a8
bump `gnosis-chain-configs` to `b3fc927da3e790d989edb71bec99c1db00529307` (#5589)
- Ensure all config vars are present
- Remove preset files
- ensure config is synced
2023-11-10 18:04:41 +01:00
Jacek Sieka a784998c5a
unittest2: bump (#5591) 2023-11-10 16:36:00 +00:00
tersec c7952ff778
bump nim-eth to remove ValidIpAddress and replace with IpAddress (#5587) 2023-11-10 16:58:48 +01:00
Etan Kissling eb35039704
allow higher `MIN_EPOCHS_FOR_BLOCK_REQUESTS` than safe minimum (#5590)
Gnosis uses `MIN_EPOCHS_FOR_BLOCK_REQUESTS` = 33024, but the computed
safe minimum (that Nimbus was using) is 2304. Relax the compatibility
check to allow `MIN_EPOCHS_FOR_BLOCK_REQUESTS` above the safe minimum
and honor `config.yaml` preferences for `MIN_EPOCHS_FOR_BLOCK_REQUESTS`.
2023-11-10 15:04:55 +00:00
Jacek Sieka f48ce6c0c7
Merge remote-tracking branch 'origin/stable' into unstable 2023-11-10 14:25:00 +01:00
Miran 1bbd6283a6
add dark theme for nimbus.guide (#5564) 2023-11-10 13:53:32 +01:00
Etan Kissling f388d76e49
bump `gnosis-chain-configs` to `b8ae3091439131949a994d638d730b5a5cb60f7a` (#5581)
- fix(ci): specify enr-cli version
- Update deneb config vars
2023-11-10 10:16:30 +01:00
Jacek Sieka 2db2442580
update mdbook versions 2023-11-10 08:40:04 +01:00
Etan Kissling 101b723f52
make `MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS` configurable (#5582)
* make `MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS` configurable

Gnosis uses custom `MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS` to account
for the faster slot timing, so that blobs still remain available for
roughly the same amount of real time.

Also extend REST config endpoint with full config form `v1.4.0-beta.4`,
and extend compatibility checks when loading configs to reduce warnings.
2023-11-09 23:41:17 +03:00