Commit Graph

25 Commits

Author SHA1 Message Date
Etan Kissling f4ff438aab
explicitly mention `{.raises.}` in `tests` folder ()
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
tersec 7fd8beb418
rm unused code in {ncli,research,tests}/ () 2024-01-21 07:55:03 +01: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
Etan Kissling 297c768816
reduce redundant zero initialization for LC data objects ()
Directly initialize `ForkedLightClientObj` instead of separately first
 setting the `kind` (initializing everything to zero) and then assigning
the forky data after that.
2023-10-04 18:11:45 +02:00
Etan Kissling 81397342d0
fix relative import paths for Nim 2.0 ()
In Nim 2.0, relative `import` paths are validated more strictly;
this fixes the incorrect paths used in some tests.
2023-09-06 08:17:59 +00:00
Jacek Sieka 6fab826487
bump unittest2, clean up suite names ()
Suite names were not being used because `test` has to have access to it
during instantiation - this PR cleans things up a little while at the
same time upgrading unittest2.
2023-09-04 13:05:11 +00:00
tersec b25ca0833b
use v1.4.0-alpha.1 consensus spec test vectors () 2023-06-03 21:55:08 +00:00
tersec 10569ff2e9
use v1.4.0-alpha.0 consensus spec test vectors () 2023-05-25 07:55:00 +00:00
Etan Kissling bc74c35283
rename `_state_fork` > `_consensus_fork` () 2023-03-12 02:34:38 +00:00
Etan Kissling fd8e86972d
rename `lcDataForkAtStateFork` > `lcDataForkAtConsensusFork` () 2023-03-11 20:09:21 +00:00
Etan Kissling d8f39dd24f
rename `stateForkForDigest` > `consensusForkForDigest` () 2023-03-11 16:58:48 +00:00
tersec 68cb9fe7b1
use consensus spec v1.3.0-rc.3 test vectors () 2023-02-21 12:58:08 +00:00
zah 067ba13c52
Capella metadata for Sepolia ()
Other changes:

Renamed the `EIP_4844_FORK_*` config constants to `DENEB_FORK_*` as
this matches the latest spec and it's already used in the official
Sepolia config.
2023-02-15 14:44:09 +00:00
Eugene Kabanov e51095e2f8
Fix Windows MAX_PATH constraint issue in CI. ()
* Fix MAX_PATH limitation in tests.

* Fix posix issues.

* Fix compilation issue.
2023-02-10 21:59:38 +01:00
Etan Kissling 58f4c13e14
support Capella LC data format ()
Implements the proposed light client data format for Capella:
- https://github.com/ethereum/consensus-specs/pull/3151
2023-01-18 15:32:57 +01:00
Etan Kissling fda03548e3
use `ForkedLightClientStore` internally ()
When running `nimbus_light_client`, we persist the latest header from
`LightClientStore.finalized_header` in a database across restarts.
Because the data format is derived from the latest `LightClientStore`,
this could lead to data being persisted in pre-release formats.

To enable us to test later `LightClientStore` versions on devnets,
transition to a `ForkedLightClientStore` internally that is only
migrated to newer forks on-demand (instead of starting at latest).
2023-01-16 16:53:45 +01:00
Etan Kissling 609227559f
LC data fork cleanup ()
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
Etan Kissling 2324136552
add `LightClientHeader` wrapper ()
The light client data structures were changed to accommodate additional
fields in future forks (e.g., to also hold execution data).

There is a minor change to the JSON serialization, where the `header`
properties are now nested inside a `LightClientHeader`.
The SSZ serialization remains compatible.

See https://github.com/ethereum/consensus-specs/pull/3190
and https://github.com/ethereum/beacon-APIs/pull/287
2023-01-13 16:46:35 +01:00
tersec dee5af58d6
eip4844 light client tests; avoid case object out-of-bound array reads () 2022-12-08 17:21:53 +01:00
tersec 1146470f7d
use v1.3.0-alpha.1 consensus spec test vectors () 2022-11-21 08:44:49 +01:00
tersec a63ec842bc
add light client capella CI tests () 2022-11-10 10:23:46 +00:00
tersec 7dd5c49c4e
use v1.3.0-alpha.0 test vectors () 2022-10-27 11:54:39 +00:00
tersec f9830836a9
deprecate --terminal-total-difficulty-override; remove launch script for deprecated ropsten ()
* deprecate --terminal-total-difficulty-override; remove launch script for deprecated ropsten

* remove Makefile support for Ropsten
2022-10-24 23:32:52 +03:00
Etan Kissling 5c8e58ea23
update LC spec references for v1.2.0-rc.2 ()
Updates light client spec references for latest spec (no more `vFuture`)
2022-08-17 19:47:06 +00:00
Etan Kissling 3bc42994e4
update to latest LC test format ()
The EF test format for the LC sync protocol is modified to verify checks
after each step: https://github.com/ethereum/consensus-specs/pull/2938 -
The test runner is updated accordingly.
2022-07-23 05:54:01 +00:00