2
0
mirror of https://github.com/status-im/nimbus-eth2.git synced 2025-02-26 13:15:16 +00:00

6038 Commits

Author SHA1 Message Date
Etan Kissling
eb05bbce20
Merge commit 'f48ce6c0c73537009853e0c7e0782820ee69713e' into dev/etan/lc-wasm4 2024-01-25 22:05:04 +01:00
Etan Kissling
87b2ea9de3
Merge commit 'd19ffcaa0d9505d81a83d7be0049154cae871c7b' into dev/etan/lc-wasm4 2024-01-25 22:03:43 +01:00
Etan Kissling
61c14262b9
Merge commit 'a0e00637556b133e60c1cd0cf165e101e0c3dc81' into dev/etan/lc-wasm4 2024-01-25 22:00:13 +01: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 () 2023-11-10 13:53:32 +01:00
Etan Kissling
f388d76e49
bump gnosis-chain-configs to b8ae3091439131949a994d638d730b5a5cb60f7a ()
- 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 ()
* 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
tersec
68a77926e8
rm ropsten and rinkleby chain IDs from EL manager () 2023-11-09 23:35:40 +03:00
tersec
06e2ca5286
don't explicitly filter removed file parsedBeaconState.json from holesky () 2023-11-09 17:45:07 +03:00
Etan Kissling
d9031d97dc
rename _INDEX generalized index constants to _GINDEX ()
Rename constants for consistency with upcoming spec adjustment:

- https://github.com/ethereum/consensus-specs/pull/3537
2023-11-09 12:54:44 +00:00
Etan Kissling
4399361bc7
bump gnosis-chain-configs to c8b24c87e4cbea8a35b1be6ed5398b519a600928 ()
- fix: remove enr padding
- Sync Deneb preset with Ethereum L1
2023-11-08 15:08:13 +00:00
Eugene Kabanov
c279bd4474
Fix issue when peers was not disconnected on low score. () 2023-11-08 13:42:50 +00:00
Eugene Kabanov
6bc038e8d5
VC: Obol middleware support () 2023-11-08 14:03:51 +02:00
tersec
1c03ea80f8
bump nim-stew () 2023-11-08 06:13:02 +00:00
tersec
7e3aeaea09
automated consensus spec URL updating to v1.4.0-beta.4 () 2023-11-08 05:28:03 +00:00
tersec
aa6c13cd67
use newer geth testnet binary directory names ()
* use newer geth testnet binary directory names

* linting; Geth requires merged genesis
2023-11-07 16:52:30 +01:00
tersec
8a98de6bd0
bump holesky to remove large, extraneous JSON file () 2023-11-07 05:12:16 +01:00
Eugene Kabanov
49c851109e
VC: Add pruning slashing database. ()
* Add slashing database pruning to VC.
Fix GetBlockHeaderResponse object declaration (spec has been changed).

* Switch to getFinalizedBlockHeader instead.

* Fix proper sign.
Add statements.
Show pruning log statement only when pruning happens.

* Optimize and remove debugging helpers.
2023-11-06 16:40:44 +02:00
Zahary Karadjov
d19ffcaa0d
Version 23.10.1 v23.10.1 2023-11-06 16:27:05 +02:00
Etan Kissling
eb7c8b7db2
do not download Holesky genesis on git clone ()
Holesky genesis.ssz file may be unavailable due to quota limits on
`eth-clients/holesky`; do not download it by default during checkout.
Nimbus will download it on first startup from a mirror instead.
2023-11-06 12:10:36 +01:00
Etan Kissling
d8a7f0df81
update Deneb for blob sidecar inclusion proofs ()
`BlobSidecar` is no longer signed, instead use Merkle proof to link
blobs with block.

- https://github.com/ethereum/consensus-specs/pull/3531

Associated beacon-API / builder-specs still TBD; minimal changes done
to compile in similar style to previous spec, but not standardized yet.

- https://github.com/ethereum/beacon-APIs/pull/369
- https://github.com/ethereum/builder-specs/pull/90
2023-11-06 07:48:43 +01:00
xiaolou86
40196b75d0
docs: fix typos () 2023-11-06 03:56:07 +00:00
Etan Kissling
e4dacc30c4
fix validation of blob index against gossip topic ()
In `v1.4.0-alpha.0`, the blob index validation on gossip was changed to
use `compute_subnet_for_blob_sidecar` instead of having a separate topic
for each individual blob. We updated the spec reference in  without
updating the code accordingly. Fixing this now, and also adding the new
`MAX_BLOBS_PER_BLOCK` check from `v1.4.0-beta.3` as it shares the theme.
2023-11-05 09:14:47 +01:00
Etan Kissling
28b84ff93b
extend hasBlob to all blocks from same proposer and slot ()
`v1.4.0-beta.4` made the Gossip rules more strict and now requires to
ignore blobs from other branches if there are equivocating blocks.
Those blobs are only requestable via Req/Resp.
2023-11-05 09:13:57 +01:00
Etan Kissling
f14389bb84
avoid perpetually sending blobs to peers ()
Fix regression from  where blobs that are already known are issued
ACCEPT verdict, propagating them to peers over and over again.

`validateBlobSidecar` contains the correct IGNORE logic. Moved it above
the expensive checks to retain the performance of the check.
2023-11-04 20:36:12 +01:00
Etan Kissling
8d46809a5c
skip upcoming FC tests for intentional block reorgs until implemented ()
v1.4.0-beta.4 adds tests for intentional block reorgs. To reflect the
implementation status, skip those tests for now and mark them as such.
2023-11-04 20:36:01 +01:00
Etan Kissling
6958f67af3
add test runner for v1.4.0-beta.4 Merkle proof tests ()
Create a test runner for validating the new `Merkle proof` Deneb tests
that are added with `v1.4.0-beta.4` specs.
2023-11-04 20:35:41 +01:00
Etan Kissling
87a37a32e3
introduce BlobId type for tracking blob subnets ()
Instead of mixing up `SubnetId` (attestation subnet type) for blobs,
introduce dedicated `BlobId` type.
2023-11-04 14:20:34 +00:00
Etan Kissling
a05278e263
wrap kzgs/proofs/blobs fields as BlobsBundle ()
Less type conversion / copying by keeping the `BlobsBundle` together.
2023-11-04 13:49:58 +00:00
Etan Kissling
fb18f09e55
align Blobs limit for SSZ transport ()
Capacity should be set to theoretical limit to ensure correct hash root.
Actual length may be shorter. Only use is `ExecutionPayloadForSigning`
so it doesn't matter yet in practice, but still worth fixing.
2023-11-04 10:25:06 +01:00
Jacek Sieka
5d8a4b3ac5
libp2p: revert scoring ()
* Use libp2p b2eac7e-and-revert-c6aa085

* Fix libp2p branch reference

---------

Co-authored-by: Diego <diego@status.im>
Co-authored-by: Zahary Karadjov <zahary@status.im>
2023-11-04 10:02:32 +02:00
Jacek Sieka
3e9b3a50d0
libp2p: revert scoring ()
* Use libp2p b2eac7e-and-revert-c6aa085

* Fix libp2p branch reference

---------

Co-authored-by: Diego <diego@status.im>
Co-authored-by: Zahary Karadjov <zahary@status.im>
2023-11-04 10:01:31 +02:00
Eugene Kabanov
8cec3af61c
VC: Obtain randao signature before slot proposal. ()
* Randao calculation caching for VC implementation.

* Add time monitoring for randao signatures process.

* Add delay calculation.

* Address review comments.

* Address review comments.
2023-11-04 08:14:14 +01:00
Etan Kissling
29fe958908
allow to pass trusted node sync options during BN startup ()
Using trusted node sync currently requires to run two commands -
first the `trustedNodeSync` command to initialize the database,
followed by the regular startup command to continue syncing.

The `trustedNodeSync` options are now also available during regular
startup, and are used when the database is empty to simplify setting up
a new Nimbus beacon node. This also aligns behaviour closer with other
Ethereum consensus implementations.

The new logic only applies if the database has not yet been initialized;
same as before. Also, the database needs to be removed under the same
conditions as before when a fresh sync is desired.
2023-11-03 16:07:49 +01:00
Etan Kissling
c95f9feec4
remove unused Deneb code ()
The `process_blob_kzg_commitments` step was removed in `v1.4.0-alpha.1`,
but we haven't deleted the now unused functions. Do that now.
2023-11-03 14:37:44 +00:00
Etan Kissling
baf81595a7
add KZG_COMMITMENT_INCLUSION_PROOF_DEPTH preset constant ()
`v1.4.0-beta.4` added `KZG_COMMITMENT_INCLUSION_PROOF_DEPTH` to preset:

- Spec PR: https://github.com/ethereum/consensus-specs/pull/3531
- Gnosis PR: https://github.com/gnosischain/configs/pull/17
2023-11-03 13:54:21 +00:00
tersec
ab89e96265
fill in transactions root and KZG commitments from deneb.BlindedBeaconBlock in state transition () 2023-11-02 04:56:04 +01:00
tersec
657de2721a
fill blindedblockbody KZG commitments from deneb blinded header () 2023-11-01 14:00:21 +01:00
tersec
ed446b1d5a
replace ValidIpAddress with IpAddress in configurations () 2023-11-01 08:33:00 +01:00
Eugene Kabanov
e1f47bb27a
Address . () 2023-11-01 08:32:41 +01:00
Eugene Kabanov
1a5bcb479e
Fix broadcast_validation handling in publishBlockV2 (fixes ) ()
* Address issue .

* Add more tests.

* Add to resttest ability to check values.
Fix tests.
2023-11-01 08:31:18 +01:00
Eugene Kabanov
70aaeee704
Enable comprehensive reasons when REST server faults to create server. ()
Bump chronos & presto.
2023-11-01 08:27:43 +01:00
tersec
556d5e7114
rm unused code () 2023-11-01 05:53:09 +01:00
Etan Kissling
173582ad70
initialize KZG crypto before starting network ()
Move KZG trusted setup initialization before `BeaconNode.init` to avoid
edge case where network message is received and processed before crypto
library has been properly initialized. Followup from .
2023-10-31 13:43:46 +01:00
Jacek Sieka
8c81515bf6
log slashing protection database error on failure to load ()
* log slashing protection database error on failure to load

...and fix noreturn warning

* fix the copied one too

* oops

* oops 2
2023-10-31 11:15:38 +01:00
Etan Kissling
d289da8cd4
extract trusted node sync trigger into separate function ()
To prepare for calling trusted node sync from the main Nimbus startup
logic, extract the trusted node sync trigger into a separate function.
Further allow passing a pre-opened database, as that will be needed to
check whether trusted node sync needs to be called during regular start.
2023-10-31 01:56:52 +01:00
tersec
62d59daaa7
consensus-spec URL updates to v1.4.0-beta.3 () 2023-10-30 06:44:43 +00:00
tersec
b0d5001571
implement getBlobSidecars Beacon API endpoint () 2023-10-29 00:06:13 +00:00
tersec
34eade3a99
sign blinded blob sidecars during builder API proposals () 2023-10-28 05:10:23 +00:00