5855 Commits

Author SHA1 Message Date
Eugene Kabanov
3c3c4e8edf
Fix /eth/v1/validator/liveness/{epoch} call names and links in code (#5392)
* Fix getLiveness() call links and names.

* Add getLiveness() decoding test.

* Remove BN state updates from getLiveness() call.

* Fix AllTests.

* Reduce number of tests.
2023-09-11 12:07:34 +02:00
tersec
91a53e0cb6
capella genesis in local testnet (#5403) 2023-09-11 11:26:21 +02:00
tersec
10ec7be686
optimize epoch registry processing (#5412) 2023-09-11 11:21:50 +02:00
tersec
cc13e0b7e0
restore full test coverage for process_rewards_and_penalties (#5407)
* restore full test coverage for process_rewards_and_penalties

* adjust ncli_db to use new iterator
2023-09-08 16:42:18 +00:00
tersec
59ccd25d8d
disable GitHub Actions Windows CI harder 2023-09-08 16:35:39 +00:00
tersec
b424d214c2
Windows GitHub Action builds OOM; disable (#5410) 2023-09-08 16:13:25 +00:00
Zahary Karadjov
88e8a2818a
Add the new options to the Nimbus guide 2023-09-08 14:31:57 +03:00
Zahary Karadjov
f0bb1cbd4e
Version 23.9.0 2023-09-08 13:33:51 +03:00
Zahary Karadjov
c7db7d0f2c
Add CLI options --genesis-state and --genesis-state-url 2023-09-08 13:10:18 +03:00
zah
53589b5a7d
Add metadata for the Holesky network (#5337)
* Add metadata for the Holesky network

* Add copyright banner to the new Nim module

* Working version

* Bump Chronos to fix downloading from Github
* Add checksum check of the downloaded file
* Clean up debugging code and obsolete imports
2023-09-08 08:53:27 +03:00
Tanguy
c5a79a6f8f
Add IDontWant metrics (#5405)
* Add IDontWant metrics

* update .gitmodules
2023-09-07 15:13:04 +02:00
tersec
f53422c181
optimize epoch transition via get_flag_index_deltas() and get_inactivity_penalty_deltas() (#5404)
* optimize epoch transition via get_flag_index_deltas() and get_inactivity_penalty_deltas()

* directly mutate Altair info in {get,update}_flag_and_inactivity_deltas
2023-09-07 11:14:52 +00:00
tersec
fbcb476ff9
allow archiving blobs (#5391) 2023-09-07 08:19:33 +02:00
zah
2b5bd74e15
Rename --validator-source to --web3-signer-url and document it (#5389)
Also allows multiple instances to be configured
2023-09-06 22:04:10 +03:00
Etan Kissling
b8db44d761
update tested Nim versions (#5142)
Add `version-2-0` testing, and make upstream version testing Linux only.

Co-authored-by: tersec <tersec@users.noreply.github.com>
2023-09-06 19:00:15 +00:00
Etan Kissling
f420f09ac1
less confusing lint error msg when bumping to very recent commit (#5400)
When bumping to a more recent commit than the configured `branch`,
currently the lint error message is confusing:

```
fatal: error processing shallow info: 4
Submodule 'vendor/nim-chronos': Failed to fetch 'master':
```

This happens when the selected commit is more recent than the latest
one on the `branch`. Comparing the commit dates allows a better message.
2023-09-06 18:52:31 +00:00
Etan Kissling
89d133d0e5
further reduce stack size of LC helpers for Nim 2.0 (#5401)
The `is_next_sync_committee_known` helper allocates a fresh
`SyncCommittee` in the caller and `nimZeroMem`s it on each use.
Use `static` to compare against a compile-time zeroed copy instead.
This also should help reduce stack size far enough to link with Nim 2.0.
2023-09-06 16:05:12 +02:00
Etan Kissling
ba8b5d8d67
lower number of --remote-validators-count in CI (#5399)
The CI signing node sometimes becomes overloaded, leading to late block.

```
{"lvl":"DBG","ts":"2023-09-05 23:46:34.515+01:00","msg":"REST request body has been sent","remote":"127.0.0.1:5201","request":"/api/v1/eth2/sign/0x82ad1b336ce728978983cbe7c7dd25f757fdc66536f3457cf9f0120c07943f8d464eec55fefcaef9c0d5da6e9f7c1443","size":549,"http_method":"POST"}
```

```
DBG 2023-09-05 23:46:36.098+01:00 Received request                           peer=127.0.0.1:51194 meth=POST uri=/api/v1/eth2/sign/0x82ad1b336ce728978983cbe7c7dd25f757fdc66536f3457cf9f0120c07943f8d464eec55fefcaef9c0d5da6e9f7c1443
```

Especially on the `minimal` preset with short slot timings, this leads
to attestations and sync duties being made for an old head, ultimately:

```
{"lvl":"FAT","ts":"2023-09-05 23:46:41.915+01:00","msg":"Low sync committee participation","topics":"chaindag","slot":15,"num_active_participants":8}
```

Looking at `nimbus_signing_node.0.jsonl` shows that the signing node is
very busy. Lowering the validator count should reduce the latency a bit.
2023-09-06 09:08:33 +00:00
Etan Kissling
99507e19cd
bump nim-ssz-serialization to 53428359a6759ac34bb4b16acb234f8477153b8f (#5398)
- convert func to iterator
- Fix compiler complaining type mismatch for byte array
- workaround for Nim 2.0 issue with the template
2023-09-06 08:51:19 +00:00
Etan Kissling
6af70e2f80
wrap applyExecutionPayload in factories for Nim 2.0 (#5395)
In Nim 2.0, the `test_fixture_operations` files fail to compile with:

```
Error: 'result' is of type <Result[system.void, system.cstring]> which cannot be captured as it would violate memory safety, declared here: /nimbus-eth2/tests/consensus_spec/bellatrix/test_fixture_operations.nim(130, 5); using '-d:nimNoLentIterators' helps in some cases. Consider using a <ref Result[system.void, system.cstring]> which can be captured.
```

Wrapping the `applyExecutionPayload` in a factory that takes `path`
avoids this problem.
2023-09-06 10:35:37 +02:00
Etan Kissling
81397342d0
fix relative import paths for Nim 2.0 (#5397)
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
Etan Kissling
ac3b2b4233
rename U to maxLen in statediff for Nim 2.0 (#5396)
Nim 2.0 gets confused when compiling `all_tests`:

```
Error: undeclared identifier: 'maxLen'
candidates (edit distance, scope distance); see '--spellSuggest':
 (3, 7): 'Table'
 (3, 7): 'len'
 (3, 7): 'max'
```

Renaming the generic parameter `U` to `maxLen` fixes this somehow.
It also increases readability to use the same name consistently.
2023-09-06 02:39:21 +00:00
Eugene Kabanov
4ce8e77b56
Address issue #5362. (#5370)
* Address issue #5362.

* Remove RestSpec object declaration and getSpec() API call declaration.

* Address review comments.
2023-09-05 23:39:01 +03:00
Etan Kissling
8ffb80e954
avoid Taskpool.spawn within {.async.} for Nim 2.0 (#5393)
In Nim 2.0, attempting to use `Taskpool.spawn` inside `{.async.}` `proc`
leads to `Error: cannot generate destructor for generic type: Isolated`.

Add an intermediate wrapper `proc` that performs the `spawn` operation
to workaround the problem.
2023-09-05 21:36:35 +02:00
Etan Kissling
dbb1a63ca9
collapse partialBeaconBlock templates into one (#5386)
Have a single `Forky` template for `partialBeaconBlock` production
rather than have several copies that are mostly identical.
2023-09-05 15:59:17 +02:00
tersec
0987628c0b
simplify beacon validator sync committee production for blocks slightly (#5364) 2023-09-05 12:31:33 +02:00
Eugene Kabanov
afb5fdae34
Dynamic validators loop (#5385)
* Add periodic dynamic validators polling.
* Add dynamic validators tests.
2023-09-04 22:14:58 +03:00
Etan Kissling
be9ecfa1c9
add helpers for processing withdrawals to libnimbus_lc.a (#5374)
Similar to the existing helpers for processing transactions / receipts,
extend `libnimbus_lc.a` with support for processing withdrawals as well.
2023-09-04 20:44:03 +02:00
tersec
41ce581149
invalidate only required htr cache portion for immutable validators (#5381) 2023-09-04 19:48:31 +02:00
Jacek Sieka
bd513ca2ba
separate CL/EL timing in add block log (#5380)
the metric remains the same in order not to change overall meaning, but
in the logs we can do better - often, the EL is at the core of a
slowdown.
2023-09-04 20:23:29 +03:00
Jacek Sieka
6fab826487
bump unittest2, clean up suite names (#5384)
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
f99bb881f4
use finalized checkpoint as default trusted node documented target (#5382) 2023-09-02 05:10:54 +00:00
tersec
8725595328
bump nim-ssz-serialization (#5378) 2023-09-01 11:08:52 +00:00
tersec
a8c56b1660
update some consensus-spec URLs to v1.4.0-beta.1 (#5379) 2023-09-01 09:31:52 +00:00
Jacek Sieka
6f59c6c46d
nimcrypto: bump (#5376)
aligns `MDigest`
2023-08-31 13:30:59 +00:00
Eugene Kabanov
757328372a
Dynamic validators set. (#5366)
* Initial commit.

* Fix argument to be optional.

* Adopt options.md.
2023-08-31 15:16:15 +03:00
Etan Kissling
1fbf371826
bump nim-web3 to 70f22351c44b849a321b78b94dc0f9cd4ac9a5e1 (#5373)
- export `WithdrawalObject`
2023-08-30 23:24:10 +00:00
Etan Kissling
8993d576b8
refer to full path in lint hint (#5372)
Update hint message for correcting outdated options.md with full path
and full command.
2023-08-30 11:55:29 +00:00
tersec
8e413d9abb
rename --stop-at-epoch flag to --debug-stop-at-epoch (#5361) 2023-08-30 14:15:19 +03:00
tersec
6c42cfa79e
use correct decimal or hex encoding/decoding for REST GetSpec (#5371) 2023-08-30 12:43:25 +03:00
tersec
f2d3859d80
ensure blob quarantine insertion always succeeds (#5369) 2023-08-29 16:46:25 +00:00
Etan Kissling
6daa7542a7
add hint when options.md is outdated (#5367)
Make it clearer what went wrong when lint fails due to 'options.md'
being out of date.
2023-08-29 12:16:15 +00:00
Etan Kissling
09020ebd2f
add helpers for processing receipts to libnimbus_lc.a (#5360)
Similar to the existing helpers for processing transactions,
extend `libnimbus_lc.a` with support for processing receipts as well.
2023-08-28 15:56:40 +00:00
tersec
d0e935e446
update macOS deprecation comment (#5365) 2023-08-28 09:50:00 +00:00
Jacek Sieka
778a209d09
move ctrl-c handler out of exported function (#5347)
otherwise it gets set also for unit tests that callit which interferes
with gdb.
2023-08-28 10:40:23 +02:00
tersec
29dbab916c
don't prematurely process blocks waiting for blobs; fix cosmetic head block opt/non-opt logging (#5363) 2023-08-27 07:45:24 +00:00
Etan Kissling
060e89a07d
update nim-web3 to 91113bef0a3fef277782bffa83d143214bd680f4 (#5359)
- update `ReceiptObject` and `LogObject`
2023-08-26 00:32:49 +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
ff87ee9181
rm i386 test_blockchain_dag workaround (#5356) 2023-08-25 15:24:56 +00:00
Etan Kissling
8ff0f623b4
change unused template to unused func (#5355)
The intentionally unused `toSszType` template may trigger warnings
as it is unused. Replacing it with an `{.error.}` `func` prevents that.
2023-08-25 11:09:13 +00:00