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
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
tersec
13e766d4df
add database electra block tests ( #6394 )
2024-07-01 04:18:41 +00:00
Etan Kissling
9924aec1e3
extend light client protocol for Electra ( #6375 )
...
* extend light client protocol for Electra
Add missing Electra support for light client protocol:
- https://github.com/ethereum/consensus-specs/pull/3811
Tested against PR consensus-spec-tests, the test runner automatically
picks up the new tests once available.
* workaround `version-2-0`: `Error: cannot instantiate: 'SomeUnsignedInt'`
* fix initialization when Electra not scheduled
* try reduce stack size in test
* put correct sync committee branch version into DB
* adjust fork schedule in light client data tests
* further reduce stack size
* split function into multiple parts
* rename variable
* regenerate test reports to cover new Electra tests
* add Nim bug reference
2024-06-26 19:02:03 +00:00
Etan Kissling
e4efe9ed75
ensure that rarely ran files are compiled on PR ( #6379 )
...
* ensure that rarely ran files are compiled on PR
Add some missing files to `isMainModule` developer internal builds CI.
* fix fork choice compilation
* fix `rest_api_benchmark` compilation
* skip linking
* fix loop
* fix `mock_genesis`
* fix signedness
2024-06-23 23:35:56 +00:00
Etan Kissling
6d0c9d37fa
produce Elctra attestations when running tests ( #6383 )
...
Test blocks don't include Electra attestations currently so finality
breaks and tests fail if prolonged. Fix that.
2024-06-23 13:06:58 +00:00
Kim De Mey
7a8c1d818a
Bump nim-eth for Opt changes and make Opt related adjustments ( #6369 )
2024-06-18 23:46:51 +02:00
tersec
bfd1a36fcf
add engine API consolidation requests support for getPayloadV4/newPayloadV4 ( #6368 )
2024-06-18 07:35:36 +02:00
tersec
88fa8b17ea
automated consensus spec URL updating to v1.5.0-alpha.3 ( #6364 )
2024-06-16 02:59:25 +02:00
tersec
0fab9682a6
use EF consensus-specs v1.5.0-alpha.3 test vectors ( #6362 )
2024-06-16 00:15:27 +02:00
tersec
a93ab7cf3b
Revert "bump nim-kzg4844 for gcc-14 compatibility ( #6342 )" ( #6360 )
...
This reverts commit c5326619a4
.
2024-06-14 23:23:19 +00:00
tersec
05d2271a9f
Revert "Revert "bump nim-bearssl for gcc-14 compatibility ( #6337 )" ( #6346 )" ( #6359 )
...
This reverts commit 3d65bdcb09
.
2024-06-14 19:06:58 +02:00
Eugene Kabanov
c5326619a4
bump nim-kzg4844 for gcc-14 compatibility ( #6342 )
...
* Bump nim-kzg4844.
* Fix code to use proper KZG types.
* Add missing coma.
* Fix compilation issue.
* Bump nim-kzg4844.
2024-06-14 00:46:03 +00:00
andri lim
fb0494e739
Bump nim-eth for revert GasInt back to int64 ( #6347 )
...
* Bump nim-eth for revert GasInt back to int64
* Fix libnimbus_lc
2024-06-13 15:25:59 +02:00
tersec
3d65bdcb09
Revert "bump nim-bearssl for gcc-14 compatibility ( #6337 )" ( #6346 )
...
This reverts commit 45d50f041a
.
2024-06-12 14:30:17 +02:00
andri lim
238589868c
Bump nim-web3 and nim-eth ( #6345 )
...
In nim-web3 all std.Option are replaced by results.Opt. The same goes in nim-eth, with additional fields name changes and GasInt changed from int64 to uint64.
2024-06-12 08:46:39 +07:00
Eugene Kabanov
27664291c4
VC/NIMBUS-BN validators protection. ( #6329 )
...
* Beacon node side implementation.
* Validator client side implementation.
* Address review comments and fix the test.
* Only 400 errors could be IndexedErrorMessage, 500 errors are always ErrorMessage.
* Remove VC shutdown functionality.
* Remove magic constants.
* Make arguments more visible and disable default values.
* Address review comments.
2024-06-11 19:38:16 +00:00
tersec
77d926525f
stop using deprecated stew/results ( #6343 )
...
* stop using deprecated stew/results
* exception tracking linting
2024-06-11 02:34:56 +00:00
tersec
45d50f041a
bump nim-bearssl for gcc-14 compatibility ( #6337 )
...
* bump nim-bearssl for gcc-14 compatibility
* Bump chronos.
* Fix flaky test.
---------
Co-authored-by: cheatfate <eugene.kabanov@status.im>
2024-06-10 19:13:15 +00:00
tersec
598485ee1a
add consolidations block body packing plumbing and correct electra MEV block body htr override ( #6335 )
2024-06-10 05:05:51 +02:00
tersec
e3d4ad5d39
properly (re)factor consolidation signature checking ( #6334 )
2024-06-09 19:37:41 +02:00
Etan Kissling
ab892c1a04
bump `mainnet` to `f6b7882618a5ad2c1d2731ae35e5d16a660d5bb7` ( #6310 )
...
* bump `mainnet` to `f6b7882618a5ad2c1d2731ae35e5d16a660d5bb7`
- Initial commit
* fix soft links
2024-05-30 09:28:16 +00:00
Eugene Kabanov
1cdb32222b
VC: Add block scoring ( #6303 )
...
* Add scoring for blocks.
* Update Alltests.
2024-05-29 10:07:39 +00:00
tersec
c7bf6fb542
rm debugRaiseAssert; clean up several debugComments ( #6308 )
...
* rm debugRaiseAssert; clean up several debugComments
* exception linting
2024-05-23 23:51:09 +02:00
tersec
b56a671122
fix most ConvFromXtoItselfNotNeeded hints and unhide remaining ones ( #6307 )
2024-05-22 13:56:37 +02:00
tersec
3e6990ccc4
rm unused ProduceBlockResponseV2 type ( #6302 )
2024-05-22 04:52:35 +02:00
tersec
dd452f71d3
rm outdated/semi-duplicate execution layer withdrawal request processing ( #6301 )
2024-05-22 01:59:11 +02:00
Eugene Kabanov
d7c5bc0397
[VC] Add builderBoostFactor support. ( #6294 )
...
* Initial commit.
* Replace localBlockValueBoost with builderBoostFactor.
* Add test.
* Update AllTests.
* Update options.md
* Recover `localBlockValueBoost` for BN-only mode.
* Address review comments.
2024-05-19 04:49:43 +03:00
Jacek Sieka
045c4cf185
electra attestation updates ( #6295 )
...
* electra attestation updates
In Electra, we have two attestation formats: on-chain and on-network -
the former combines all committees of a slot in a single committee bit
list.
This PR makes a number of cleanups to move towards fixing this -
attestation packing however still needs to be fixed as it currently
creates attestations with a single committee only which is very
inefficient.
* more attestations in the blocks
* signing and aggregation fixes
* tool fix
* test, import
2024-05-17 15:37:41 +03:00
tersec
69f13eaa51
add electra gossip transition
2024-05-15 13:30:49 +00: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
3f972a2ca5
add some support for electra aggregated attestations ( #6283 )
2024-05-14 06:12:35 +02:00
tersec
6b8061b5d6
automated consensus spec URL updating to v1.5.0-alpha.2 ( #6279 )
2024-05-09 05:03:10 +00:00
tersec
963e0bb92b
use EF consensus spec v1.5.0-alpha.2 test vectors ( #6272 )
2024-05-08 04:43:05 +02:00
Eugene Kabanov
f3da063510
Fix VC not properly handled getAggregatedAttestation's 404 error. ( #6254 )
...
* Fix VC not properly handled getAggregatedAttestation's 404 error.
* Update AllTests.
2024-05-01 15:32:28 +00:00
tersec
e70fa6d6de
rename ElectraIndexedAttestation/ElectraAttesterSlashing for consistency ( #6252 )
2024-04-29 04:19:10 +02:00
tersec
abc8bbbf23
add EF consensus spec test Electra fork and transition fixtures ( #6251 )
2024-04-28 16:13:17 +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
6119389c3a
add EF consensus spec test Electra attestation operations fixture ( #6248 )
2024-04-28 00:52:14 +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
f53271eaaa
add rest of EF consensus spec test Electra epoch transition fixture(s) ( #6232 )
2024-04-24 12:28:47 +00:00
tersec
9ba6b8d8a7
add Electra epoch rewards test fixture ( #6231 )
...
* add Electra epoch rewards test fixture
* version-2-0 still has another issue
2024-04-23 15:47:39 +00:00
tersec
e6e95cbab7
add Electra slot sanity tests ( #6230 )
2024-04-23 07:58:32 +00:00
tersec
eb997f4e1f
add 10 sub-test-fixtures for electra epoch transitions; use v2.0.4 for Nim 2.x ( #6229 )
2024-04-23 01:15:55 +00:00
tersec
67a22b3887
add Electra BLS to Execution Change, Block Heaer, Sync Aggregate, and Withdrawals operations test fixtures ( #6226 )
2024-04-22 12:37:38 +00:00
tersec
87452374e4
add Electra SSZ object test fixture ( #6225 )
2024-04-22 09:00:38 +00:00
tersec
d139c92df9
explicitly scope AttesterSlashing and IndexedAttestation types to phase0 ( #6224 )
2024-04-21 05:49:11 +00:00
careworry
2ec82fe3ce
chore: remove repetitive words ( #6219 )
...
Signed-off-by: careworry <worrycare@outlook.com>
2024-04-19 11:31:15 +00:00
tersec
73738c702c
use consensus spec v1.5.0-alpha.0 test vectors; use Nim v2.0.4 specifically for 2.0.x ( #6221 )
2024-04-19 02:55:58 +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
603c83522e
explicitly refer to phase0.{Attestation,TrustedAttestation} rather than sans module name ( #6214 )
2024-04-17 20:44:29 +00: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
361be082ae
add Electra toSignedBlindedBlock tests ( #6182 )
2024-04-08 10:34:15 +02:00
tersec
937cc62b85
block_sim runs electra ( #6181 )
2024-04-07 09:58:11 +02:00
tersec
0d534224b3
remove some debugRaiseAsserts and fill in Electra functionality ( #6178 )
2024-04-06 07:46:02 +00:00
tersec
06894dd2f6
remove some debugRaiseAsserts and fill in Electra functionality ( #6177 )
2024-04-05 21:30:06 +02:00
tersec
0b6f75b88b
remove some debugRaiseAsserts and fill in actual Electra functionality ( #6172 )
2024-04-04 05:17:31 +02:00
tersec
13a70e9d69
rm built-in Goerli beacon chain support ( #6057 )
2024-04-03 23:25:36 +00:00
tersec
7fa32b7f02
add Electra to ConsensusFork enum ( #6169 )
...
* add Electra to ConsensusFork enum
* fix gnosis check
2024-04-03 16:43:43 +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
tersec
4457334dd0
Add support for Pectra ExecutionPayload representations ( #6158 )
2024-03-29 13:37:27 +01:00
Etan Kissling
12a2f8c026
when adding duplicates to quarantine, schedule deepest missing parent ( #6112 )
...
During sync, sometimes the same block gets encountered and added to
quarantine multiple times. If its parent is already known, quarantine
incorrectly registers it as missing, leading to re-download. This can
be fixed by registering the parent's deepest missing parent recursively.
Also increase the stickiness of `missing`. We only perform 4 attempts
within ~16 seconds before giving up. Very frequently, this is not enough
and there is no progress until sync manager kicks in even on holesky.
2024-03-21 18:41:05 +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
Eugene Kabanov
72c844534f
Add Keymanager API graffiti endpoints. ( #6054 )
...
* Initial commit.
* Add more tests.
* Fix API mistypes.
* Fix mistypes in tests.
* Fix one more mistype.
* Fix affected tests because of error code 401.
* Add GetGraffitiResponse object.
* Add more tests.
* Fix compilation errors.
* Recover old behavior.
* Recover old behavior.
* Fix mistype.
* Test could not know default graffiti value.
* Make VC use adopted graffiti settings.
* Make BN use adopted graffiti settings.
* Update Alltests.
* Fix test.
* Revert "Fix test."
This reverts commit c735f855d3cb9c4a1c8e8af29d3f4438d068e31f.
* Workaround {.push raises.} requirement.
* Fix comment.
* Update Alltests.
2024-03-14 03:44:00 +00:00
tersec
fd8429da74
rm Web3Signer Bellatrix block support ( #6061 )
2024-03-11 22:09:31 +00:00
Etan Kissling
a0bc3fff86
fix `/eth/v1/beacon/deposit_snapshot` for EIP-4881 ( #6038 )
...
Fix the `/eth/v1/beacon/deposit_snapshot` API to produce proper EIP-4881
compatible `DepositTreeSnapshot` responses. The endpoint used to expose
a Nimbus-specific database internal format.
Also fix trusted node sync to consume properly formatted EIP-4881 data
with `--with-deposit-snapshot`, and `--finalized-deposit-tree-snapshot`
beacon node launch option to use the EIP-4881 data. Further ensure that
`ncli_testnet` produces EIP-4881 formatted data for interoperability.
2024-03-08 14:22:03 +01:00
tersec
816361ed8c
Bloom filter acceleration for deposit processing ( #5982 )
2024-03-07 23:38:24 +00:00
Etan Kissling
50a43f397f
rename `DepositTreeSnapshot` -> `DepositContractSnapshot` ( #6036 )
...
EIP-4881 was never correctly implemented, the `DepositTreeSnapshot`
structure has nothing to do with its actual definition. Reflect that
by renaming the type to a Nimbus-specific `DepositContractSnapshot`,
so that an actual EIP-4881 implementation can use the correct names.
- https://eips.ethereum.org/EIPS/eip-4881#specification
Notably, `DepositTreeSnapshot` contains a compressed sequence in
`finalized`, only containing the minimally required intermediate roots.
That also explains the incorrect REST response reported in #5508 .
The non-canonical representation was introduced in #4303 and is also
persisted in the database. We'll have to maintain it for a while.
2024-03-07 18:42:52 +01:00
tersec
e6253c0793
don't gate test execution on not defined(i386) ( #6035 )
2024-03-06 17:24:05 +00:00
tersec
39fafc1248
unconditionally run test_keystore_management ( #6034 )
2024-03-06 15:55:31 +01:00
tersec
9e4a70e0c4
unconditionally run test_keystore ( #6033 )
2024-03-06 13:14:52 +01:00
tersec
9fda162e99
unconditionally run test_blockchain_dag ( #6032 )
2024-03-06 06:10:34 +00:00
Etan Kissling
2c924bcc8c
add test runner for LC data collection tests ( #6021 )
...
Introduce a test runner for upcoming EF test suites related to canonical
light client data collection.
- https://github.com/ethereum/consensus-specs/pull/3553
2024-03-05 15:41:09 +01:00
tersec
8222d62500
rm unused phase0 and altair remote signing test code ( #6027 )
2024-03-05 02:38:34 +01: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
9d56f3920b
fix some styleCheck hints ( #6016 )
2024-03-03 02:04:45 +01:00
Etan Kissling
f5e9d3ffe4
add trivial `{.push raises: [].}` to `research` and `test` folders ( #5988 )
...
Annotate the `research` and `test` files for which no further changes
are needed to successfully compile them, to not interfere with periodic
tasks such as spec reference bumps.
2024-02-29 13:24:08 +00:00
Etan Kissling
23fa8d0c70
handle `scanf` exceptions in `test_fixture_ssz_generic_types` ( #5993 )
...
`scanf` apparently has both a `bool` return as well as raising random
exceptions depending on what functions get called by the `macro`.
To make this explicit, catch the `ValueError` from the generated
`parseInt` call, to separate `scanf` behaviour from the actual SSZ
test logic. In the end, it mostly doesn't matter as there are some
`doAssert wasMatched` on the next line (not everywhere though).
But it still makes the `scanf` internals explicit, so is clearer.
2024-02-29 10:47:00 +00:00
Etan Kissling
f4ff438aab
explicitly mention `{.raises.}` in `tests` folder ( #5990 )
...
Add `{.raises.}` annotations to `tests` files where needed to enable
`{.push raises: [].}`. Avoids interfering with periodic changes such as
spec version bumps, and avoids special casing folders when editing.
The effort to maintain `{.raises.}` is trivial after the initial round.
2024-02-29 10:28:32 +00:00
Etan Kissling
794ec9ed19
use `closureScope` with `{.raises.}` in `test_peer_pool` ( #5992 )
...
`test_peer_pool` is a bit different from the other tests as it uses
`closureScope` which doesn't play well with `{.push raises: [].}`.
Define an overload instead that allows passing `{.raises.}` to the
`template`. This allows using `unittest2`'s exception handler without
having to refactor the test.
2024-02-29 00:57:19 +00:00
Etan Kissling
078f4ac347
assert exceptions that statically cannot occur in test code ( #5989 )
...
There are some spurious exceptions that statically cannot occur.
Add `raiseAssert` for these.
2024-02-28 20:15:49 +00:00
Etan Kissling
57f4886d39
improve cleanup in error situation in slashing protection tests ( #5991 )
...
If removing a file files during `slashing_protection/test_fixtures.nim`,
still continue to try to remove the other ephemeral test files.
2024-02-28 18:28:04 +01:00
Etan Kissling
80d532abd7
avoid forgetting to quit in `os_ops` tools if log fails ( #5986 )
...
`stderr.write` may fail, e.g., if no tty is connected, which may happen
in some CI configurations. Discard such failures and continue quitting
instead of raising the error.
2024-02-28 16:04:34 +00:00
Etan Kissling
4a74ef9cba
add `{.raises.}` annotations to `test_fixture_operations` ( #5984 )
...
Some more progress in making exception flow explicit.
2024-02-28 11:54:29 +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
tersec
d09bf3b587
initial Electra support skeleton ( #5946 )
2024-02-24 13:44:15 +00:00
tersec
bf6b5a316f
add push raises to tests; rm unused test code ( #5948 )
2024-02-24 04:41:58 +01:00
Etan Kissling
702f4c6a45
add `{.push raises: [].}` to more files ( #5943 )
...
Extend `{.push raises: [].}` to all files with spec references that are
periodically updated.
- https://github.com/status-im/nimbus-eth2/pull/5942
2024-02-22 11:03:09 +01:00
tersec
c73d7c6f6f
automated consensus spec URL updating to v1.4.0-beta.7 ( #5942 )
2024-02-21 19:44:48 +00:00