Commit Graph

136 Commits

Author SHA1 Message Date
tersec 3f972a2ca5
add some support for electra aggregated attestations () 2024-05-14 06:12:35 +02:00
tersec 6b8061b5d6
automated consensus spec URL updating to v1.5.0-alpha.2 () 2024-05-09 05:03:10 +00:00
tersec 34ba05f4d3
add EF consensus spec test Electra deposits operations fixture () 2024-04-26 07:18:44 +00:00
tersec 867995acd1
some consensus spec v1.4.0 spec URL updates () 2024-04-17 05:51:16 +02:00
tersec 6ce5d5814c
support electra block proposals for internal BN validators () 2024-04-09 12:04:33 +02:00
tersec 0a6d189161
automated consensus spec URL updating to v1.4.0 () 2024-03-14 07:26:36 +01:00
tersec f076502e25
rm Capella builder API bid types and blinded block construction () 2024-03-01 00:02:13 +00:00
Etan Kissling 4e9bc7f570
add EIP-7044 support to keymanager API ()
* add EIP-7044 support to keymanager API

When trying to sign `VoluntaryExit` via keymanager API, the logic is not
yet aware of EIP-7044 (part of Deneb). This patch adds missing EIP-7044
support to the keymanager API as well.

As part of this, the VC needs to become aware about:

- `CAPELLA_FORK_VERSION`: To correctly form the EIP-7044 signing domain.
  The fork schedule does not indicate which of the results, if any,
  corresponds to Capella.
- `CAPELLA_FORK_EPOCH`: To detect whether Capella was scheduled.
  If a BN does not have it in its config while other BNs have it,
  this leads to a log if Capella has not activated yet, or marks the BN
  as incompatible if Capella already activated.
- `DENEB_FORK_EPOCH`: To check whether EIP-7044 logic should be used.

Related PRs:

-  added support for processing EIP-7044 `VoluntaryExit` messages
  as part of the state transition functions (tested by EF spec tests).
-  synced the support from  to gossip validation.
-  added support to the `nimbus_beacon_node deposits exit` command.
-  contains an alternative generic version of `VCForkConfig`.

* address reviewer feedback: letter case, module location, double lookup

---------

Co-authored-by: cheatfate <eugene.kabanov@status.im>

* Update beacon_chain/rpc/rest_constants.nim

* move `VCRuntimeConfig` back to `rest_types`

---------

Co-authored-by: cheatfate <eugene.kabanov@status.im>

* fix `getForkVersion` helper

---------

Co-authored-by: cheatfate <eugene.kabanov@status.im>
2024-02-26 09:48:07 +01:00
Etan Kissling f54fa083b4
fix EIP-7044 implementation when using batch verification ()
In , EIP-7044 support got added to the state transition function to
force `CAPELLA_FORK_VERSION` to be used when validiting `VoluntaryExit`
messages, irrespective of their `epoch`.

In , similar logic was added when batch verifying BLS signatures,
which is used during gossip validation (libp2p gossipsub, and req/resp).
However, that logic did not match the one introduced in , and only
uses `CAPELLA_FORK_VERSION` when a `VoluntaryExit`'s `epoch` was set to
a value `>= CAPELLA_FORK_EPOCH`. Otherwise, `BELLATRIX_FORK_VERSION`
would still be used when validating `VoluntaryExit`, e.g., with `epoch`
set to `0`, as is the case in this Holesky block:

- https://holesky.beaconcha.in/slot/1076985#voluntary-exits

Extracting the correct logic from  into a function, and reusing it
when verifying BLS signatures fixes this issue, and also leverages the
exhaustive EF test suite that covers the (correct)  logic.

This fix only affects networks that have EIP-7044 applied (post-Deneb).

Without the fix, Deneb blocks with a `VoluntaryExit` with `epoch` set to
`< CAPELLA_FORK_EPOCH` incorrectly fail to validate despite being valid.

Incorrect blocks that contain a malicious `VoluntaryExit` with `epoch`
set to `< CAPELLA_FORK_EPOCH` and signed using `BELLATRIX_FORK_VERSION`
_would_ pass the BLS verification stage, but subsequently fail the state
transition logic. Such blocks would still correctly be labeled invalid.
2024-02-25 15:25:26 +01:00
tersec c73d7c6f6f
automated consensus spec URL updating to v1.4.0-beta.7 () 2024-02-21 19:44:48 +00:00
tersec d8a2690a92
update builder API spec reference URLs to v0.4.0 () 2024-01-22 08:36:46 +01:00
tersec 6c53dc1e11
automated consensus spec URL updating to v1.4.0-beta.6 () 2024-01-20 11:19:47 +00:00
Jacek Sieka 62cbdeefc5
verify `genesis_time` more strictly (fixes ) ()
Bogus values lead to crashes down the line when timers overflow
2024-01-06 15:26:56 +01:00
tersec 9c6ba7d142
consensus spec v1.4.0-beta.5 URL updates () 2023-12-16 03:27:06 +01:00
tersec 4776fecc33
consensus spec v1.4.0-beta.5 URL updates () 2023-12-06 22:16:55 +00:00
tersec 9efb2958ec
automated consensus spec URL updating to v1.4.0-beta.5 () 2023-12-05 03:34:45 +01:00
tersec ab5343d1bc
update some consensus spec URLs to v1.4.0-beta.4 () 2023-11-27 19:56:34 +01:00
tersec c96163dbca
update some consensus spec URLs to v1.4.0-beta.4 () 2023-11-11 06:27:53 +01:00
tersec 7e3aeaea09
automated consensus spec URL updating to v1.4.0-beta.4 () 2023-11-08 05:28:03 +00: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
tersec 62d59daaa7
consensus-spec URL updates to v1.4.0-beta.3 () 2023-10-30 06:44:43 +00:00
tersec 34eade3a99
sign blinded blob sidecars during builder API proposals () 2023-10-28 05:10:23 +00:00
tersec 4ddd771127
automated consensus spec URL updating to v1.4.0-beta.3 () 2023-10-19 10:26:38 +00:00
tersec 40616b6243
update some consensus spec URLs to v1.4.0-beta.2 () 2023-10-12 05:07:41 +00:00
tersec 2895a9a05c
automated consensus spec URL updating to v1.4.0-beta.2 () 2023-09-21 18:06:51 +00:00
tersec d171303133
update some consensus spec URLs to v1.4.0-beta.1 () 2023-08-12 10:38:06 +00:00
tersec 85e1976ac3
automated consensus spec URL updating to v1.4.0-beta.1 () 2023-08-09 03:58:47 +00:00
tersec 18061f7991
Remove most remaining portions of Bellatrix Builder API () 2023-08-08 00:05:17 +00:00
tersec 2ae2d0a042
remove Bellatrix Builder API (Signed)BuilderBid ()
* remove Bellatrix Builder API (Signed)BuilderBid

* stub out BlindedBeaconBlock
2023-08-06 09:20:43 +00:00
henridf 99264d7507
Local validator proposals ()
* Implement local validator block proposals

* Address review feedback

* Fix rebase issue
2023-06-30 07:39:41 +00:00
tersec 614202e30d
automated consensus spec URL updating to v1.4.0-beta.0 () 2023-06-24 15:43:30 +00:00
henridf ae29babd9f
Implement blob sidecar signatures ()
* Implement blob sidecar signatures

* Update allTests
2023-06-16 15:47:18 +00:00
tersec 54cc7bb7a1
update some consensus-spec URLs to v1.4.0-alpha.3 () 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 () 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 () 2023-06-10 09:56:54 +00:00
tersec 30c859e8a4
update some consensus-spec URLs to v1.4.0-alpha.1 () 2023-06-06 17:09:48 +00:00
tersec f86febc111
update consensus spec URLs to v1.4.0-alpha.1 () 2023-06-04 10:32:50 +00:00
tersec 1f535336da
automated v1.3.0 to v1.4.0-alpha.0 consensus spec URL updates ()
* 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
tersec 6024b3e508
rm unused function and unexport some others () 2023-05-14 22:56:14 +00:00
Etan Kissling b04970189b
more v1.3.0 consensus-specs bumps ()
More spec references for unchanged logic bumped to v1.3.0.
2023-05-09 17:20:37 +00:00
tersec b390911e93
automatic update of v1.3.0-rc.5 consensus spec URLs to v1.3.0 () 2023-04-21 18:52:43 +00:00
tersec 4643a357ef
consensus spec ref URL update to v1.3.0-rc.5 () 2023-04-18 22:00:06 +00:00
henridf 04302081b4
Add blob sidecar gossip validation ()
* Add blob gossip validation

* lint

* Add test for getBlobSidecarTopic

* Fix closure variable capture issue

* Update beacon_chain/nimbus_beacon_node.nim

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

---------

Co-authored-by: tersec <tersec@users.noreply.github.com>
2023-04-04 15:12:34 +00:00
tersec 2f634c10a4
automated consensus spec URL updating from v1.3.0-rc.4 to rc.5 () 2023-03-21 00:42:22 +00:00
tersec 0c62950de6
more consensus spec v1.3.0-rc.4 URL updates () 2023-03-17 12:14:08 +00:00
tersec ec77116414
automated consensus spec URL updating from v1.3.0-rc.3 to rc.4 () 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 () 2023-02-21 16:43:21 +00:00
tersec 79eddcde40
capella builder API support ()
* capella builder API support

* use capella EPH when appropriate

* fill in ExecutionPayload.withdrawals and sanity-check builder API withdrawals root
2023-02-21 14:21:38 +01:00
tersec 0cc0c7e6b7
builder spec v0.3.0 URL updates ()
* builder spec v0.3.0 URL updates

* remove stray non-URL/comment change
2023-02-18 01:54:30 +01:00
tersec a382498cfe
batch-verify BLS to execution change messages () 2023-02-17 13:35:12 +00:00