tersec
e3d4ad5d39
properly (re)factor consolidation signature checking ( #6334 )
2024-06-09 19:37:41 +02:00
tersec
b56a671122
fix most ConvFromXtoItselfNotNeeded hints and unhide remaining ones ( #6307 )
2024-05-22 13:56:37 +02:00
tersec
dd452f71d3
rm outdated/semi-duplicate execution layer withdrawal request processing ( #6301 )
2024-05-22 01:59:11 +02:00
tersec
1c3aaa7be2
add (Signed)AggregateAndProof SSZ tests ( #6285 )
2024-05-14 13:51:06 +02:00
tersec
9c669cf57a
some debugRaiseAssert to debugComment; unblock some spec tests ( #6284 )
2024-05-14 12:19:24 +03:00
tersec
6b8061b5d6
automated consensus spec URL updating to v1.5.0-alpha.2 ( #6279 )
2024-05-09 05:03:10 +00:00
tersec
e70fa6d6de
rename ElectraIndexedAttestation/ElectraAttesterSlashing for consistency ( #6252 )
2024-04-29 04:19:10 +02:00
tersec
a66876c8e5
add EF consensus spec test Electra block sanity fixtures ( #6250 )
...
* add EF consensus spec test Electra block sanity fixtures
* move process_consolidation/process_deposit_receipt before usage
2024-04-28 09:15:03 +00:00
tersec
302f645a01
use EF consensus spec v1.5.0-alpha.1 test vectors ( #6249 )
2024-04-28 03:33:44 +00:00
tersec
8f0a61b964
add EF consensus spec test Electra execution payload operations fixture ( #6246 )
2024-04-26 16:02:15 +00:00
tersec
63d00931a3
add EF consensus spec test Electra deposit receipt operations fixture ( #6245 )
2024-04-26 12:39:09 +00:00
tersec
34ba05f4d3
add EF consensus spec test Electra deposits operations fixture ( #6243 )
2024-04-26 07:18:44 +00:00
tersec
b0f58a58b6
add EF consensus spec test Electra consolidation operations fixture ( #6235 )
2024-04-25 18:50:54 +00:00
tersec
8c4ddd64c0
add EF consensus spec test attester slashing, proposer slashing, voluntary exit, and execution layer withdrawal request tests ( #6234 )
2024-04-25 08:41:17 +00:00
tersec
87452374e4
add Electra SSZ object test fixture ( #6225 )
2024-04-22 09:00:38 +00:00
tersec
645e627b03
add new Electra beacon chain containers and presets ( #6216 )
...
* add new Electra beacon chain containers and presets
* re-enable attestations in electra state transition
2024-04-18 07:30:01 +00:00
tersec
0132f5d689
some consensus spec v1.4.0 spec URL updates ( #6215 )
2024-04-18 03:00:04 +02:00
tersec
867995acd1
some consensus spec v1.4.0 spec URL updates ( #6208 )
2024-04-17 05:51:16 +02:00
tersec
bd3c9af0f8
implement EIP-7002 ( #6206 )
...
* implement EIP-7002
* fix linting
2024-04-16 18:09:39 +00:00
tersec
6ce5d5814c
support electra block proposals for internal BN validators ( #6187 )
2024-04-09 12:04:33 +02:00
tersec
27921406e9
remove some debugRaiseAsserts and fill in Electra functionality ( #6179 )
2024-04-06 15:11:47 +02:00
tersec
27ec2893ff
rm unused parameters of get_state_exit_queue_info() ( #6167 )
2024-04-03 01:45:57 +00:00
tersec
109007dc93
avoid quadratic behavior exiting validators ( #6161 )
...
* avoid quadratic behavior exiting validators
* fix libnfuzz callers
2024-04-02 12:18:40 +00:00
Etan Kissling
5d42859176
make `Gwei` `distinct` ( #6090 )
...
#6087 introduced a subtle change to `nim-web3` resulting in `Gwei` to be
serialized differently than before. Using a `distinct` type for `Gwei`
improves type safety and avoids such problems in the future.
2024-03-19 14:22:07 +01:00
tersec
0a6d189161
automated consensus spec URL updating to v1.4.0 ( #6074 )
2024-03-14 07:26:36 +01:00
tersec
816361ed8c
Bloom filter acceleration for deposit processing ( #5982 )
2024-03-07 23:38:24 +00:00
tersec
2a13c09615
add proposer reward accounting to block transitions ( #6022 )
...
* add proposer reward accounting to block transitions
* Update beacon_chain/spec/state_transition_block.nim
Co-authored-by: Etan Kissling <etan@status.im>
---------
Co-authored-by: Etan Kissling <etan@status.im>
2024-03-04 17:00:46 +00:00
tersec
f65c1121d2
add Electra overloads for spec functions; add Electra block processing ( #5963 )
2024-02-26 02:38:21 +00:00
tersec
a4f4a35845
Revert "initial Electra support skeleton" ( #5955 )
...
* Revert "initial Electra support skeleton (#5946 )"
This reverts commit d09bf3b587
.
* Update test_signing_node.nim
2024-02-25 19:42:44 +00:00
Etan Kissling
f54fa083b4
fix EIP-7044 implementation when using batch verification ( #5953 )
...
In #5120 , 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 #5637 , 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 #5120 , 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 #5120 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) #5120 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
d09bf3b587
initial Electra support skeleton ( #5946 )
2024-02-24 13:44:15 +00:00
tersec
0f155ebf95
some consensus spec v1.4.0-beta.7 spec URL updates ( #5945 )
2024-02-22 02:42:57 +00:00
tersec
c73d7c6f6f
automated consensus spec URL updating to v1.4.0-beta.7 ( #5942 )
2024-02-21 19:44:48 +00:00
tersec
87ae60f780
search for validator indices backwards while processing deposits ( #5914 )
2024-02-20 06:34:57 +02:00
Etan Kissling
4fc1550d0f
add `{.push raises: [].}` to recently modified files ( #5908 )
...
Status Nim style mandates `{.push raises: []}.` at start of modules.
Ensure that's the case so that exceptions are properly tracked.
- https://status-im.github.io/nim-style-guide/errors.exceptions.html
- https://github.com/status-im/nim-eth/pull/614#discussion_r1220906149
2024-02-18 01:16:49 +00:00
tersec
6c53dc1e11
automated consensus spec URL updating to v1.4.0-beta.6 ( #5804 )
2024-01-20 11:19:47 +00:00
tersec
3541cfe020
remove extraneous length checks in KZG batch proofs ( #5744 )
...
* remove extraneous length checks in KZG batch proofs
* re-add winservice import but only for Windows, to avoid UnusedImport warning
* also uses establishWindowsService
2024-01-15 16:53:34 +01: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
9c6ba7d142
consensus spec v1.4.0-beta.5 URL updates ( #5672 )
2023-12-16 03:27:06 +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
Etan Kissling
c95f9feec4
remove unused Deneb code ( #5556 )
...
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
tersec
62d59daaa7
consensus-spec URL updates to v1.4.0-beta.3 ( #5541 )
2023-10-30 06:44:43 +00:00
tersec
4ddd771127
automated consensus spec URL updating to v1.4.0-beta.3 ( #5514 )
2023-10-19 10:26:38 +00:00
Etan Kissling
7c45b8f98d
convert remaining `toFork` -> `kind` for consistency ( #5462 )
...
We currently have multiple ways to obtain `ConsensusFork` or
`LcDataFork` from a forky type. Rename `toFork` to `kind`
for a consistent API naming.
2023-09-27 15:10:28 +00: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
1640c45a95
reject invalid proofs when validating blobs ( #5445 )
...
Currently, passing `0xc00000...` proof seems to pass `verifyProofs`.
Unsure why such a check is not necessary in spec, and also unsure
whether it is correct to reject proof at infinity, or if it could
occur, e.g., for a blob containing all 0 bytes. Weird overall...
* proper fix
2023-09-19 22:13:58 +00:00
tersec
5a29ad7e4f
update some consensus-spec URLs to v1.4.0-beta.1 ( #5429 )
2023-09-14 18:23:59 +00:00
tersec
a8c56b1660
update some consensus-spec URLs to v1.4.0-beta.1 ( #5379 )
2023-09-01 09:31:52 +00:00