Commit Graph

6997 Commits

Author SHA1 Message Date
Etan Kissling bbe41a250f
fix gindex computation in docs 2024-07-25 21:19:06 +02:00
Etan Kissling 2abfee3488
Merge branch 'dev/etan/df-forkedblobs' into feat_eip-7688 2024-07-25 21:01:33 +02:00
Etan Kissling 5fe9e93ee7
fix `ncli_db` 2024-07-25 19:30:25 +02:00
Etan Kissling d028baea2a
introduce `ForkedBlobSidecar` for EIP-7688 Electra period before PeerDAS
On `ELECTRA_FORK_EPOCH`, PeerDAS is not yet activated, hence the current
mechanism based on `BlobSidecar` is still in use. With EIP-7688, the
generalized indices of `BeaconBlockBody` get reindexed, changing the
length of the inclusion proof within the `BlobSidecar`. Because network
Req/Resp operations allow responses across fork boundaries, this creates
the need for a `ForkedBlobSidecar` in that layer, same as already done
for `ForkedSignedBeaconBock` for similar reasons.

Note: This PR is only needed if PeerDAS is adopted _after_ EIP-7688.
If PeerDAS is adopted _before_ EIP-7688, a similar PR may be needed for
forked columns. Coincidental `Forked` jank can only be fully avoided if
both features activate at the same epoch, actual changes to blobs aside.
Delaying EIP-7688 for sole purpose of epoch alignemnt is not worth it.
2024-07-25 18:54:38 +02:00
Etan Kissling 09f3882672
remove unsued `lcDataForkAtEpoch` helper (#6449)
`lcDataForkAtEpoch(.)` is not used anywhere and can be removed.
`lcDataForkAtConsensusFork(consensusForkAtEpoch(.))` saves same purpose.
2024-07-25 16:27:19 +02:00
Jakub Sokołowski 8c621b9ae6
ci: bump status-jenkins-lib version, don't use a branch (#6446)
* ci: bump status-jenkins-lib version, don't use a branch

Also renamed `Jenkinsfile.nix` to `nix.Jenkinsfile` because the filename makes no sense.

But left a symlink temporarily to not break things.

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* nix: fix hash for Nim compiler checksums repo

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* nix: do not create variable name conflicts

Signed-off-by: Jakub Sokołowski <jakub@status.im>

---------

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2024-07-25 11:07:02 +02:00
tersec 949758ed74
fix some UnusedImport warnings (#6448) 2024-07-25 08:49:26 +00:00
tersec 15cca5f93e
hypergeometric distribution CDF for PeerDAS (#6447) 2024-07-25 01:59:24 +00:00
Eugene Kabanov fd4398d4c5
Fix EL requests should do some sleep before repeating request again. (#6441) 2024-07-23 22:49:52 +00:00
Etan Kissling 20ede0ab35
use correct fork digest when broadcasting blob sidecars and sync msgs (#6440)
The fork digest determines the underlying data type on libp2p gossip,
so it's important to use the matching fork digest instead of picking
whatever wall epoch happens to be.
2024-07-23 20:30:44 +00:00
Etan Kissling 9f21182646
construct info object for `BlobSidecar` earlier (#6445)
To avoid "forked" types creeping into `BlobSidecar`, move the reduction
to `BlobSidecarInfoObject` to the sole caller. The info object is fork
agnostic, so does not need "forked" if `BlobSidecar` ever updates.
2024-07-23 20:22:29 +00:00
Etan Kissling a769550db5
rename LC gindex constants to match spec (#6444)
Use `_ELECTRA` suffix for gindex constants to match consensus-specs.
2024-07-23 20:20:15 +00:00
Etan Kissling ae0a1488b5
Fix blob syncing for Electra (#6438)
* Fix blob syncing for Electra

`BlobSidecar` requests on libp2p have a context prefix based on:

> The `<context-bytes>` field is calculated as context =
>     `compute_fork_digest(fork_version, genesis_validators_root)`

We currently only process blobs if that indicates Deneb, meaning that
on Electra we incorrectly report `InvalidContextBytes` and refuse to
process the blob response data.

Fix this, and also ensure that the code no longer needs maintenance
with every fork unrelated to blobs.

* fix
2024-07-23 03:10:41 +00:00
haurog 5762ebc249
Enable RISC-V (rv64gc) compilation (#6439) 2024-07-23 02:03:53 +00:00
Etan Kissling d8df178a85
LC execution payload gindex 2024-07-22 14:15:53 +02:00
Etan Kissling 159f57f27e
LC constant rename 2024-07-22 14:13:56 +02:00
Etan Kissling b5c0b479fb
bump nimcrypto to `71bca15508e2c0548f32b42a69bcfb1ccd9ab9ff` (#6430)
- double keccak speed
2024-07-22 03:36:54 +00:00
tersec 6fa852400d
pause deployment of long-range sync option default (#6436) 2024-07-21 07:10:26 +02:00
Etan Kissling 377698d65a
bump nim-libbacktrace to `55780313446b618cd226025cd0383c4c9da4a18a` (#6435)
- Pass length explicitly instead of relying on NULL terminators
2024-07-18 19:59:49 +02:00
Etan Kissling f36fb8e757
bump gnosis-chain-configs to `0e085cb606e78a495ce8014f9350931bc360e663` (#6432)
- Bump spec
2024-07-17 21:51:14 +02:00
Kim De Mey cd008ba7ef
Bump NimYAML + bump related changes (#6431) 2024-07-17 21:50:29 +02:00
Etan Kissling 8aab04404e
bump nim-libbacktrace to `da32d6efe6804b021c0943f2dd22924052345e6d` (#6429)
- bump libbacktrace to `1dd5c408fe6f5d9bccf870ec4e0e4bcabeb0664e`
2024-07-17 21:21:27 +02:00
tersec ebd0217a10
fix is_eligible_for_activation_queue for electra (#6427) 2024-07-15 21:08:20 +02:00
Eugene Kabanov 7853bd2878
BN: User agent recognition and error codes decoding. (#6414)
* Initial commit.

* Force update remote agent right before disconnect.

* Add handling errors from unknown remote agents.

* Address review comments.
2024-07-15 16:53:41 +02:00
Eugene Kabanov f751fde417
Use Nimbus specific agent string instead of nim-presto defaults. (#6424)
* Use Nimbus specific agent string instead of nim-presto defaults.
Use response(code) overload.

* Fix REST API test.
2024-07-15 02:27:23 +00:00
Etan Kissling baa085e8b1
bump geth to `v1.14.7` (#6423)
- https://github.com/ethereum/go-ethereum/releases/tag/v1.14.7
2024-07-15 02:26:14 +00:00
Kim De Mey ca15c4e433
Replace deprecated ENR functions (#6419) 2024-07-12 17:18:24 +02:00
dependabot[bot] 738bc0e98f
Bump zipp from 3.8.1 to 3.19.1 in /docs (#6418)
Bumps [zipp](https://github.com/jaraco/zipp) from 3.8.1 to 3.19.1.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.8.1...v3.19.1)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-12 03:05:55 +00:00
Eugene Kabanov 031033a6f9
Fix REST /eth/v1/node/identity should return proper MultiAddresses (version 2). (#6422)
* Initial commit.

* Bump nim-libp2p with dualstack fixes.

* Pass announcedAddresses to the `p2p_addresses` list.
2024-07-11 17:39:38 +02:00
tersec befcf3f56a
bump sepolia for new bootnodes (#6421) 2024-07-11 07:13:37 +02:00
Etan Kissling dc007e3977
nullability annotations for `libnimbus_lc.h` (#6417)
Annotate functions that may return `NULL` with `_Nullable` to properly
bridge into Swift.
2024-07-09 12:38:16 +02:00
tersec 3db571d182
allow individual calculation of validator balances across epoch boundaries (#6416) 2024-07-07 00:32:50 +02:00
Jhett Black 3f051e9ab0
Add beacon node count metrics. (#6371) 2024-07-06 21:07:56 +00:00
andri lim 0b276315d2
Bump nim-eth: Convert GasInt to uint64 (#6415)
* Bump nim-eth: Convert GasInt to uint64

* Fixes

* Fix libnimbus_lc
2024-07-06 20:25:31 +00:00
Etan Kissling 7f59e80aaa
validate EL block hash in Electra when no EL is connected (#6407)
When no EL is connected, it is still required to validate the block hash
of `ExecutionPayload` to prevent attacks that trick us into attesting to
a circular chain with invalid in-between block hashes. This is already
done through Deneb but was still missing in Electra to be rectified now.
2024-07-05 10:18:50 +02:00
Eugene Kabanov c59bb71916
Add implementation of publishBlindedBlockV2() REST API endpoint. (#6413) 2024-07-04 19:48:12 +00:00
Etan Kissling abf818a9f3
bump nim-eth to `d8fda55c79dd48ba564f3cb540b968f4a1c1aae6` (#6405)
* bump nim-eth to `d8fda55c79dd48ba564f3cb540b968f4a1c1aae6`

- Overhaul of ENR implementation - part I
- Rework of ENR decoding code
- Update discv5 to use non deprecated ENR calls and simplify code
- simplify .nimble file
- avoid warnings when processing `GasInt` for RLP
- define Electra types and RLP encoding

* explicitly indicate consensus types over nim-eth types in EL manager
2024-07-04 18:40:11 +00:00
tersec 9f654690b8
update builder API registrations after keymanager API fee recipient change (#6412) 2024-07-04 14:08:07 +02:00
Eugene Kabanov 85c2850971
Fix publishBlockV1() and publishBlockV2() SSZ decoding process. (#6408) 2024-07-04 01:08:07 +00:00
tersec 0dc2447a58
omit frame pointer for secp256k1 (#6402) 2024-07-03 22:06:10 +00:00
kevaundray 814dcf595c
update copyright year (#6404) 2024-07-03 21:49:23 +00:00
Etan Kissling 858c66b4ba
bump nim-json-rpc to `8e1cdb18230f7e7172b4b4aa503b0d66fe530942` (#6411)
- Add redefine pragma to inner template
- update ci.yml and be more explicit in .nimble
2024-07-03 21:49:03 +00:00
Etan Kissling a725da20b8
bump nim-confutils to `cb640db2cd66d7f4a1810a7df51b55f6f59cf3c5` (#6410)
- update ci.yml and be more explicit in .nimble
2024-07-03 21:48:55 +00:00
Etan Kissling 14edccc962
bump nim-json-serialization to `89f7be1783b2f828a95dea1496fdac3510532997` (#6409)
- update ci.yml and be more explicit in .nimble
- extend automatic serialization support for `distinct` in Nim 2
2024-07-03 21:48:47 +00:00
Etan Kissling cac63a3a82
use `pull_request_target` to run PR block action (#6376)
To avoid requiring authorization to run the PR block action for new
contributors, use `pull_request_target`. Running the workflow file from
the destination branch does not require approval.

- https://stackoverflow.com/questions/74957218/what-is-the-difference-between-pull-request-and-pull-request-target-event-in-git
2024-07-03 13:00:39 +02:00
Eugene Kabanov 84a35c85c5
Fix for gcc-14 issues in kzg-4844. (#6403)
* Bump nim-kzg4844.

* Fix code to use proper KZG types.

* Add missing coma.

* Fix compilation issue.

* Bump nim-kzg4844.

* Add debugging output.

* Remove debugging output.

* Restore groupBlobs function.
2024-07-03 10:01:33 +00:00
tersec e54b3e8fda
bump nimbus-build-system for Nim v2.0.8 (#6401) 2024-07-03 04:29:43 +00:00
Etan Kissling 515bd486e6
ensure passing unsigned integer to `rlp.encode` (#6397)
RLP encoding is not defined for signed integers. Make sure to use
unsigned integers when encoding RLP for EL block hash computation.
2024-07-03 01:43:16 +00:00
Etan Kissling fba8cc3ee5
fix EIP reference in Electra type definition (#6398)
The field `withdrawal_requests` is from EIP-7002 instead of EIP-6110.
2024-07-03 01:41:01 +00:00
Etan Kissling 1fd246b23e
explicitly refer to attestation fork in SSZ consensus object tests (#6399)
Use fully qualified types when referring to attestation related types
in tests. We should also consider to merge these to a single runner.
2024-07-03 01:40:47 +00:00