Commit Graph

6300 Commits

Author SHA1 Message Date
Etan Kissling d6e55ca3d8
fix improper `yield` usage in `el_manager` (#5789)
`yield` is not supported in `{.async.}`. Replace with alternative that
does not leak.
2024-01-19 07:18:02 +00:00
Etan Kissling b2c49603ae
bump `nim-eth` to `974a995b210d13ca5f6feb36ad4c5f0c254e078f` (#5788)
- Fix a bunch of compiler hints and warnings in uTP and discv5
- Fix missing std/times import for the metrics 0.0.1 case
- Fix for uTP issues with latest chronos
- Clean-up, correct and clarify utp_protocol tests
- better async timeout wait
- Adjust test names and comments for `blobGasUsed` field
- Add data over multiple sockets uTP test
- Add uTP over discv5 test and small uTP performance improvements
2024-01-19 04:53:49 +00:00
Etan Kissling d59632acd0
remove obsolete `curSlot` variable (#5786)
#5773 removed catching up on validator duties after lag. The `curSlot`
variable that was used originally to track catch-up progress no longer
has a use and is also no longer properly updated. Remove it.
2024-01-19 03:21:38 +00:00
tersec 545fb17649
use RestPlainResponse to improve builder API rerror reporting (#5777) 2024-01-19 03:20:47 +00:00
Etan Kissling 0a1cb47d35
bump `nim-nat-traversal` to `3398a649f4e895cae86fbe85b54769ebc0967878` (#5785)
- bump `miniupnp` to `miniupnpc_2_2_4`
- bump `libnatpmp-upstream` to `f2433bec24ca3d3f22a8a7840728a3ac177f94ba`
2024-01-19 04:10:33 +01:00
Etan Kissling e06853d8e6
bump `sepolia` to `ff09a161f61959285c64b355d452cd25eae094bd` (#5795)
- schedule dencun on sepolia
2024-01-19 04:09:17 +01:00
Etan Kissling be73ce2e9a
import finalized head LC bootstrap on launch (#5775)
If the initial state replays cover the finalized head, import matching
`LightClientBootstrap` into database.

This also addresses this error when light client requests bootstrap from
the genesis slot on networks that launch with Altair enabled.

```
{"lvl":"DBG","ts":"2023-10-04 11:17:49.665+00:00","msg":"LC bootstrap unavailable: Sync committee branch not cached","topics":"chaindag_lc","slot":0}
```
2024-01-18 22:51:26 +00:00
Etan Kissling 479c133375
bump `nim-secp256k1` to `2bc945cc9ebfae1b688f72ea59f78fd23873d1d4` (#5784)
- bump `secp256k1` to `v0.4.1`
2024-01-18 19:04:35 +00:00
Etan Kissling 006fa59ec2
use consensus spec v1.4.0-beta.6 test vectors (#5783) 2024-01-18 18:14:44 +00:00
tersec db7909c1fe
don't catch up on validator duties (#5773) 2024-01-18 15:56:43 +00:00
Etan Kissling 62ee92a094
bolster `BlobSidecar` syncing on incomplete responses (#5766)
Avoid marking blocks invalid when corresponding `blobSidecarsByRange`
returns an incomplete / incorrect response while syncing. The block
itself may still be valid in that scenario.
2024-01-18 15:45:10 +01:00
Etan Kissling 0b5ddd8a0e
bump `nim-kzg4844` to `31824174520755b670547a56149b0c37d10f979d` (#5782)
- add CI for Nim `version-2-0`
- bump `csources` to `v0.4.0`
2024-01-18 14:28:42 +00:00
Etan Kissling c006c249ea
bump `nim-zlib` to `7427b7127bb88ab29f4abec0576d20ac529eb5a5` (#5780)
- bump `csources` to `v1.3`
2024-01-18 14:25:02 +01:00
Etan Kissling 15b949ee13
bump `nim-libbacktrace` to `7f532d4cae55735b150a4c9459bf083dbbef1be9` (#5779)
- bump `libbacktrace-upstream` to `14818b7783eeb9a56c3f0fca78cefd3143f8c5f6`
- bump `whereami` to `ba364cd54fd431c76c045393b6522b4bff547f50`
2024-01-18 13:18:02 +00:00
Etan Kissling 3a8bd709ea
bump `gnosis-chain-configs` to `f0c2cb0d64c7c30105ae9c09a156d0dac0411c10` (#5778)
- Set correct CONFIG_NAME for chiado
2024-01-18 13:24:09 +01:00
tersec 36545e1d84
remove expensive logging from function called in prepareBeaconProposer inner loop (#5776) 2024-01-17 22:58:46 +00:00
Etan Kissling 0775a48420
bump `gnosis-chain-configs` to `9ea107b310486cdfc98a8785859bda124a606a83` (#5772)
- Update Chiado config format and keys
2024-01-17 16:48:06 +00:00
Etan Kissling e7794b6aec
log `delay` relative to deadline (#5769)
To better analyze logs across different `SECONDS_PER_SLOT`, log delays
for duties relative to their deadline instead of relative to slot start.
2024-01-17 15:52:19 +01:00
Etan Kissling f409ed97ae
align sync contribution logs with aggregate processing (#5770)
There are two conditions leading to `duplicate contribution` log.
Align the logs with the ones used for attestation aggregates,
so that the two conditions can be separated when reading logs.
2024-01-17 15:46:54 +01:00
Jacek Sieka d5785677a8
split out eth1chain into its own module (#5768)
reduces import junk in some places - more could be done here
2024-01-17 15:26:16 +01:00
Etan Kissling 68d0542ae1
log `const_preset` on beacon node startup (#5764)
To understand what binary is being used (regular / minimal / gnosis),
extend launch logging.
2024-01-17 14:38:56 +01:00
andri lim 8afaeecaf8
Bump nim-json-serialization to b14f5b58e91c702f42c82da006890fdef4b6cc70 (#5767)
Deconvolute optional fields writer
2024-01-17 13:40:00 +07:00
andri lim 7addd0a68b
Bump json-rpc to f90e946b6a92432cbfe7abb59f9c05af17bfddde (#5737)
Router.register should not raise exception
Both http server and client now can handle chunked transfer
Add comments in wrapper generator
2024-01-17 07:41:32 +07:00
Etan Kissling 11ebbe0cac
fix LC header production for Deneb (#5763)
The `blob_gas_used` field was not properly populated when constructing
Deneb light client data. This is due to #5026 not applying the change to
the entire codebase when the new field got introduced, and due to #5350
not catching that oversight in other modules. Also reviewed codebase and
discovered that `shortLog` for Deneb execution payloads has same bug.
2024-01-16 22:54:20 +00:00
tersec cf1bec7670
update some deprecated stew/results to results imports (#5743) 2024-01-16 22:37:14 +00:00
Jacek Sieka 19860029c2
use `macrocache` for protocol index counter (#5745) 2024-01-16 18:37:47 +00:00
Etan Kissling ad74c1a6a5
add vanity mascot for upcoming fork to status bar (#5761)
To simplify supporting "am I ready for the fork" requests, add a simple
marker to the default status bar that indicates readiness by displaying
the fork's corresponding mascot. This is the same one that is also
displayed during the actual fork transition, so does not introduce
new dependencies. It also only shows in default status bar, not in logs.
2024-01-16 17:33:46 +00:00
Etan Kissling 06551dd320
bump `nim-json-serialization` to `42253591b955c5cfcef46f6ad906c5a4e4586ee6` (#5759)
- v0.2.4
- Writer produce correct top-level or in-array optional elem when custom
  flavor omit optional fields
- Add flavor feature: reader will skip null fields
- add lexer test cases
2024-01-16 16:47:12 +01:00
Etan Kissling b382833f43
workaround random `SIGSEGV` on macOS aarch64 CI (#5757)
Separate a `let` block into multiple `let` statements to reduce
probability of hitting random `SIGSEGV` during flaky CI tests.

whatever... 🤯
2024-01-16 13:41:49 +01:00
tersec 8cfce83864
make constants 64-bit portably (#5755) 2024-01-16 02:26:18 +01:00
Etan Kissling 7443a4ac08
load Ethereum mainnet KZG setup on Gnosis networks (#5756)
Gnosis networks re-use the trusted setup from Ethereum mainnet.
Load it to support Deneb.
2024-01-16 01:58:07 +01:00
Etan Kissling 2608cd6477
bump `nimbus-build-system` to `3866a8ab98fc6e0e6d406b88800aed72163d5fd4` (#5754)
- bump `csources_v1` to `561b417c65791cd8356b5f73620914ceff845d10`
- adjust `CSOURCES_V1_COMMIT` variable with recent bump
- remove `Nim-csources-v1` and `nimble` checkouts
2024-01-15 18:24:24 +01:00
Etan Kissling 39a2a91003
only show upcoming fork info if one is scheduled (#5751)
This ensures that information about the next scheduled fork is only
displayed if one is actually scheduled. Current fork name is no longer
shown.
2024-01-15 17:48:03 +01: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
tersec 52ed0d6aa1
rm kzg test fixture code duplication and add test vector coverage checks (#5742) 2024-01-15 07:14:38 +01:00
jangko 7378d55108
Fix unbound variable error in launch_local_testnet.sh 2024-01-15 09:21:20 +07:00
jangko fc0d5552ec
Bump nim-web3 to c595e0d6c8ec1ea7c28b267c8141fa70437cccaa
Fix Quantity reader and writer
Fix SingleOrList parser
Fix RtBlockIdentifier parser
Use correct return type for eth_syncing
2024-01-15 09:21:20 +07:00
tersec 2c49caced9
report decimal produceBlockV3 consensus block, execution payload values (#5741) 2024-01-14 22:59:08 +01:00
Eugene Kabanov 5404178a40
Dissect Windows specific code from beacon node. (#5612)
* Make some startup procedures async.
Add more handful makeBannerAndConfig().

* Dissect windows service code from `nimbus_beacon_node.nim`.

* Add report service startup errors using windows error codes.
Add plug able exitService().

Co-authored-by: Zahary Karadjov <zahary@status.im>
Co-authored-by: Jacek Sieka <jacek@status.im>
2024-01-13 12:53:53 +02:00
Zahary Karadjov 05fb7ffff0
Don't require getopt to be installed by brew on macOS for Nix users
Other changes:

* Add/Update copyright banners
* Add post-review comment for https://github.com/status-im/nimbus-eth2/pull/5719
2024-01-13 12:37:41 +02:00
Jacek Sieka b98f46c04d
Avoid global in p2p macro (fixes #4578) (#5719)
* Avoid global in p2p macro (fixes #4578)

* copy p2p macro to this repo and start de-crufting it
* make protocol registration dynamic, removing light client hacks et al
* split out light client protocol into its own file

* cleanups

* Option -> Opt
* remove more cruft

* further split beacon_sync

this allows the light client to respond to peer metadata messages
without exposing the block sync protocol

* better protocol init

* "constant" protocol index

* avoid casts

* copyright

* move some discovery code to discovery

* avoid extraneous data copy when sending chunks

* remove redundant forkdigest field

* document how to connect to a specific peer
2024-01-13 11:54:24 +02:00
tersec 69af8f943e
implement blob_sidecar Beacon API streaming (#5728) 2024-01-13 11:52:13 +02:00
andri lim a45609c4a3
Switch to llvm-mingw for faster Windows CI (#5729)
* Switch to llvm-mingw for faster Windows CI

* Enable ubsan of Windows CI
2024-01-13 11:45:20 +02:00
zah 00d05f8170
Use the latest web3signer (#5732)
Other changes:

* Include java in the Nix development shell
  (so users are able to run the web3signer)

* Update the simulation config files to the latest spec
  (so the web3signer accepts them)
2024-01-13 10:37:09 +02:00
tersec 1559a09184
add more logging of KZG commitments, proofs, and blobs (#5735) 2024-01-13 07:44:40 +01:00
andri lim 017f9f1103
bump nim-web3 to bf1ce869b5f76d9744444b248f6f5c6c782fedc7 (#5722)
Etan Kissling (2):
  remove unused `skip0xPrefix`
  keep the internal count helper

Will (1):
  Bugfix/nully values (#61)

Yuriy Glukhov (5):
  Contract constructor support
  Fixed compilation error in exec function
  Added string encoding
  Fixed source->from field of EthCall
  More flexibility to contract DSL, Async contract caller

jangko (5):
  Reduce compiler warnings when using Nim v2
  Migrate to json-serialization
  Add tests of json rpc marshalled types
  Resolve contract_dsl ambiguity
  Event handler passing around JsonString instead of JsonNode
  Share encoder between json-rpc and chronicles (#119)
  Simplify generic constraint of rpc and chronicles encoders
  Feature/execution api spec (#69)
  v0.3.0

bump nim-json-rpc to a6475e49b26d3afc58aaa3d67621c94eafef8efb
coffeepots (1):
  Use nim-json-serialization for RPCs (#172)

jangko (10):
  Add copyright to source file
  Remove StringOfJson
  Fix optional parameter parsing fails in rpc macro with generics
  Rename jrpc_sys module back to jsonmarshal
  Reenable test hhtps
  Add test for createRpcSigsFromNim and createSingleRpcSig
  Let the OS choose the port for tests
  Add onProcessMessage hook to client
  Fix example in the README.md
  Move errors module back to json_rpc folder
  Upgrade rpc router internals (#178)
  RPC server handle null return value correctly
  v0.3.0

kdeme (1):
  Add example test case that currently fails the Option parsing
2024-01-13 08:36:17 +07:00
tersec c815e71af0
rest of EF KZG test harnesses (#5734) 2024-01-13 01:31:29 +00:00
tersec aef3879652
some EF KZG test harnesses (#5733) 2024-01-12 22:29:43 +00:00
Etan Kissling 16256a5230
display current fork (+ next fork if applicable) in slot start / status (#5731)
Extend slot start message and default status bar with information about
current head fork and the next fork transition (corresponding to head).
This is useful to know whether a synced client is aware of a future fork
and can also be useful when syncing from old forks to follow progress
across the various forks.

```
 peers: 8 ❯ finalized: 741c2ce2:230474 ❯ head: b330f58b:230477:20 ❯ fork: Capella (next: Deneb:231680) ❯ time: 230599:24 (7379192) ❯ sync: 00h24m (99.63%) 2.6492slots/s (QwQUwQPQDQ:7375263)/opt
```

```
INF 2024-01-12 12:18:00.001+01:00 Slot start                                 topics="beacnde" slot=7379190 epoch=230599 fork="Capella (next: Deneb:231680)" sync="--h--m (99.62%) 0.0000slots/s (wwwwwwwwww:7375167)/opt" peers=0 head=741c2ce2:7375168 finalized=230472:723abe7e delay=1ms861us
```
2024-01-12 21:40:34 +01:00
Etan Kissling b54bbdecae
bump `gnosis-chain-configs` to `ff5fbe9aecbf28df9beedb662920eeee537629b0` (#5725)
- Add deneb config vars to Chiado config
- Schedule Deneb on Chiado
2024-01-12 11:31:07 +01:00