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
tersec
db6f4e8090
update some consensus-spec URLs to v1.4.0-beta.1 ( #5357 )
2023-08-25 15:58:44 +00:00
tersec
d171303133
update some consensus spec URLs to v1.4.0-beta.1 ( #5287 )
2023-08-12 10:38:06 +00:00
tersec
85e1976ac3
automated consensus spec URL updating to v1.4.0-beta.1 ( #5280 )
2023-08-09 03:58:47 +00:00
henridf
28194468c9
Rename "data gas" to "blob gas" ( #5216 )
...
* Rename data gas to blob gas
* Update vendor/nim-eth and vendor/nim-web3
2023-08-02 22:07:57 +00:00
tersec
1e2d3b12c4
update some consensus-specs ref URLs to v1.4.0-beta.0 ( #5163 )
2023-07-05 16:02:55 +00:00
tersec
0be95571a7
update some consensus spec URLs to v1.4.0-beta.0 ( #5150 )
2023-06-30 16:12:54 +00:00
tersec
614202e30d
automated consensus spec URL updating to v1.4.0-beta.0 ( #5121 )
2023-06-24 15:43:30 +00:00
tersec
9dbf63d8ca
use v1.4.0-beta.0 consensus spec test vectors ( #5120 )
2023-06-24 12:27:15 +00:00
Etan Kissling
3a6b50cf21
require sync committee supermajority in CI ( #5085 )
...
* require sync committee supermajority in CI
To better catch problems with sync committee messages in CI, extend
local testnet simulation to also verify that each block is signed
by a supermajority of the sync committee.
Requires #5083 and #5084
* lint
2023-06-17 06:00:01 +00:00
tersec
591c2246d5
update consensus spec URLs to v1.4.0-alpha.3 ( #5088 )
2023-06-16 16:45:09 +00:00
tersec
788cdb7133
automated v1.4.0-alpha.2 to v1.4.0-alpha.3 consensus spec URL updates ( #5065 )
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 ( #5056 )
2023-06-10 09:56:54 +00:00
tersec
9e14d904ac
https://github.com/ethereum/consensus-specs/pull/3359 ( #5047 )
2023-06-10 05:39:10 +00:00
tersec
30c859e8a4
update some consensus-spec URLs to v1.4.0-alpha.1 ( #5035 )
2023-06-06 17:09:48 +00:00
tersec
f86febc111
update consensus spec URLs to v1.4.0-alpha.1 ( #5027 )
2023-06-04 10:32:50 +00:00
tersec
b25ca0833b
use v1.4.0-alpha.1 consensus spec test vectors ( #5026 )
2023-06-03 21:55:08 +00:00
tersec
ee71b6cc36
update consensus spec URLs to v1.4.0-alpha.0 ( #5022 )
2023-06-02 12:59:38 +00:00
tersec
1f535336da
automated v1.3.0 to v1.4.0-alpha.0 consensus spec URL updates ( #4996 )
...
* 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
10569ff2e9
use v1.4.0-alpha.0 consensus spec test vectors ( #4990 )
2023-05-25 07:55:00 +00:00
henridf
01549f6aa4
Wire in blob validation ( #4864 )
...
* Wire in blob validation
* Remove unused "is_data_available"
* Log blobs when blob validation fails
2023-05-17 13:55:50 +00:00
tersec
d3929cbb45
update some beacon API spec URLs; fix some Name and DuplicateModuleImport hints ( #4929 )
2023-05-10 10:20:55 +00:00
Etan Kissling
34e7181b0d
`KZG(Commitment(s)?|Proof)` > `Kzg$1` ( #4917 )
...
Fix style-check by using matching capitalization for `nim-kzg` types.
2023-05-09 19:51:36 +00:00
Etan Kissling
93899b2e2a
consensus-specs v1.3.0 bumps with cleanup ( #4918 )
...
Some more consensus-specs v1.3.0 bumps. No semantic logic changes,
but also contains cleanup, so separate PR to reduce noise.
2023-05-09 20:16:49 +02:00
Etan Kissling
e9319a5947
`bls_to_execution_changes` check alternative ( #4916 )
...
Make intent clearer about when to expect `bls_to_execution_changes`,
and replace test-time errors with compile-time errors if the field
is renamed or goes away in the future.
2023-05-09 17:24:02 +00:00
tersec
b390911e93
automatic update of v1.3.0-rc.5 consensus spec URLs to v1.3.0 ( #4848 )
2023-04-21 18:52:43 +00:00
tersec
4643a357ef
consensus spec ref URL update to v1.3.0-rc.5 ( #4837 )
2023-04-18 22:00:06 +00:00
tersec
b4508b853a
assorted consensus spec URL updates ( #4776 )
2023-03-30 23:08:52 +00:00
tersec
9d2fdc2e26
assorted consensus spec URL updates to v1.3.0-rc.5 ( #4768 )
2023-03-27 14:41:22 +00:00
henridf
635a924e8c
Add nim-kzg4844 and use it in validate_blobs ( #4732 )
2023-03-23 09:47:04 +00:00
tersec
2f634c10a4
automated consensus spec URL updating from v1.3.0-rc.4 to rc.5 ( #4756 )
2023-03-21 00:42:22 +00:00
tersec
0c62950de6
more consensus spec v1.3.0-rc.4 URL updates ( #4744 )
2023-03-17 12:14:08 +00:00
tersec
ec77116414
automated consensus spec URL updating from v1.3.0-rc.3 to rc.4 ( #4742 )
2023-03-17 01:10:31 +00:00
Etan Kissling
969c6f73ae
misc local `EIP4844` > `Deneb` bumps ( #4717 )
...
* misc local `EIP4844` > `Deneb` bumps
* fix
2023-03-11 00:28:19 +00:00
tersec
ea060de6d4
more eip4844 -> deneb module references ( #4690 )
2023-03-02 21:09:24 +01:00
tersec
8f269c92d7
rename eip48844ImplementationMissing to denebImplementationMissing ( #4654 )
2023-02-23 10:37:45 +00:00
tersec
1dd07d5def
switch 3 modules in beacon_chain/spec/ from eip4844 to deneb ( #4651 )
2023-02-22 14:10:00 +01:00
tersec
29fb65a9db
automated update of v1.3.0-rc.2 to v1.3.0-rc.3 consensus spec URLs ( #4647 )
2023-02-21 16:43:21 +00:00
tersec
b19f7001aa
log expected_withdrawals discrepancy ( #4595 )
...
* log expected_withdrawals discrepancy
* capella-only rather than not-bellatrix
* add one more (in theory unnecessary, but) guard against get(none)
2023-02-20 09:46:37 +01:00
tersec
a382498cfe
batch-verify BLS to execution change messages ( #4637 )
2023-02-17 13:35:12 +00:00
tersec
b7c3037f01
consensus spec ref URL updates to v1.3.0-rc.2 ( #4626 )
2023-02-15 14:43:51 +00:00
tersec
bca781b1b0
prioritize REST API-provided BLS to execution changes over gossip-received changes ( #4580 )
2023-02-03 16:28:28 +01:00
tersec
58ed9308d2
automated v1.3.0-rc.1 to v1.3.0-rc.2 consensus spec URL updates ( #4568 )
2023-01-31 00:26:57 +01:00
tersec
8c2e01da24
consensus spec ref URL updates to v1.3.0-rc.1 ( #4534 )
2023-01-20 22:33:05 +00:00
tersec
aacc8d702d
remove Nim 1.2-compatible `push raise`s and update copyright notice years ( #4528 )
2023-01-20 14:14:37 +00:00
tersec
819e007689
exit/validatorchange pool includes BLS to execution messages; REST support for new pool ( #4519 )
...
* exit/validatorchange pool includes BLS to execution messages; REST
support for new pool
* catch failed individual futures
* increase BLS changes bound and keep BLS seen consistent with subpool
* deque capacities should be powers of 2
2023-01-19 22:00:40 +00:00
tersec
073c544f0c
automated update from v1.3.0-rc.0 to v1.3.0-rc.1 consensus spec URLs ( #4517 )
2023-01-17 16:10:52 +00:00
Etan Kissling
609227559f
LC data fork cleanup ( #4506 )
...
Distinguish between those code locations that need to be updated on each
light client data format change, and those others that should generally
be fine, as long as a valid light client object is processed.
The former are tagged with static assert for `LightClientDataFork.high`.
The latter are changed to `lcDataFork > LightClientDataFork.None` to
indicate that they depend only on presence of any valid object.
Also bundled a few minor cleanups and fixes.
Also add `Forky` type for `LightClientStore` and minor fixes / cleanups.
2023-01-14 22:19:50 +01:00
tersec
68e08c6f15
use v1.3.0-rc.1 consensus spec test vectors ( #4505 )
2023-01-14 04:20:51 +00:00
tersec
4f9064a153
consensus spec ref URL updates ( #4496 )
2023-01-12 13:33:14 +00:00
Jacek Sieka
ba3db7aa5a
spec: Option -> Opt ( #4488 )
2023-01-11 12:29:21 +00:00
tersec
e28e1aeec8
a few consensus spec ref URL updates ( #4483 )
2023-01-10 16:14:17 +00:00
tersec
2dd3cd786f
consensus spec ref URL update v1.3.0-{alpha.2,rc.0}; copyright year update ( #4477 )
2023-01-09 22:44:44 +00:00
tersec
787703bd0c
use v1.3.0-rc.0 consensus spec test vectors ( #4472 )
2023-01-09 15:15:43 +01:00
tersec
47cb0f7991
capella forkchoiceUpdated support ( #4462 )
...
* capella forkchoiceUpdated support
* match V2 fcU with V2 getPayload
2023-01-06 22:01:10 +01:00
tersec
c5d1683f19
spec ref URL & copyright year updates ( #4467 )
2023-01-06 16:28:46 +00:00
henridf
8251cc223d
eip4844 gossip ( #4444 )
...
* eip4844 gossip
* Check BLSFieldElement range validity in gossip validation
* lint/nits cleanup
* Use template to avoid an assignment with copy.
* More review feedback
* lint
* lint
* processSignedBeaconBlockAndBlobsSidecar: clean up error handling flow
* Undo factoring-out of beacon blocks validator installation
2023-01-04 12:34:15 +00:00
Jacek Sieka
bd8f08204e
Implement skip_randao_verification for blinded blocks ( #4435 )
...
* Implement skip_randao_verification for blinded blocks
* fix redundant randao verification on block replay (5% faster)
* check randao in REST instead of internally
* avoid redundant copies when making blocks
* cleanup leftover randao skipping code
* fix test summary
2022-12-19 15:11:12 +02:00
tersec
110401394b
consolidate consensus spec transition test fixtures ( #4428 )
...
* consolidate consensus spec transition test fixtures
* include capella
* consoliate fork test fixtures
* note change in EIP-4844 process_block in alpha.2
2022-12-15 22:51:04 +00:00
tersec
bb4ea37baa
update EF consensus spec URLs from v1.3.0-alpha.1 to v1.3.0-alpha.2 ( #4432 )
2022-12-15 12:15:12 +00:00
tersec
d269d82b71
use v1.3.0-alpha.2 EF consensus spec test vectors ( #4430 )
2022-12-15 01:51:06 +00:00
tersec
bc996623e0
add EIP4844 block database read/write test ( #4416 )
2022-12-13 00:56:50 +00:00
tersec
dee5af58d6
eip4844 light client tests; avoid case object out-of-bound array reads ( #4404 )
2022-12-08 17:21:53 +01:00
tersec
50bcc48e17
eip4844 block/slot sanity and transition tests ( #4399 )
2022-12-08 02:07:41 +00:00
tersec
7cf432b155
eip4844 fork and epoch transition tests; some eip4844 gossip ( #4393 )
2022-12-06 16:43:11 +00:00
tersec
031780b612
eip4844 operations tests ( #4392 )
2022-12-06 12:40:13 +00:00
tersec
415b11aa67
EIP4844 tweaks to pass SSZ consensus object tests ( #4390 )
2022-12-05 21:36:53 +00:00
tersec
5c16062de9
remove all but truly stub support for `SHARDING_FORK_{EPOCH,VERSION}` ( #4385 )
2022-12-02 13:33:18 +01:00
tersec
474b0d8502
`withUpdatedState` injects `updatedState` rather than `state` template ( #4375 )
2022-11-30 16:37:23 +02:00
tersec
df54470b13
verify `CAPELLA_FORK_EPOCH == FAR_FUTURE_EPOCH` for supported networks ( #4369 )
2022-11-29 09:12:25 +01:00
tersec
898684c175
REST server shouldn't create validation objects when optimistically synced ( #4361 )
2022-11-25 22:49:31 +00:00
tersec
61c5ac32d8
automated consensus spec ref URL update to v1.3.0-alpha.1 ( #4354 )
2022-11-24 19:07:02 +00:00
tersec
1146470f7d
use v1.3.0-alpha.1 consensus spec test vectors ( #4338 )
2022-11-21 08:44:49 +01:00
tersec
909c095e64
initial automated v1.2.0 -> v1.3.0-alpha.0 consensus spec URL update ( #4296 )
2022-11-08 02:37:28 +00:00
tersec
0a43c89cd2
run capella block sanity tests in CI ( #4292 )
2022-11-07 18:37:48 +00:00
tersec
5b46f0b723
add Capella support to Forked* ( #4276 )
...
* add Capella support to Forked*
* remove cruft
* add `OnForkyBlockAdded`
2022-11-02 16:23:30 +00:00
tersec
0cfc1b776e
add all missing epoch transition tests ( #4269 )
2022-10-28 08:02:33 +00:00