Commit Graph

6307 Commits

Author SHA1 Message Date
Jacek Sieka 3ff9b69bf1
simplify eth2_network error handling (#5765)
This PR gets rid of a bunch of redundant exception handling through
async raises guarantees.

More can be removed once libp2p gets properly annotated.
2024-01-19 21:05:52 +00:00
Etan Kissling a5daa6d7e9
bump `holesky` to `d05bc1cd68dd16a54fb844181191ccaba15bd5ef` (#5796)
- schedule dencun on holesky
2024-01-19 15:40:02 +00:00
Eugene Kabanov 3648df7d4c
Fix VC not always be able to obtain feeRecipient value. (#5781)
Use state's validator value to obtain feeRecipient value.
Make feeRecipient and gasLimit calculation equal for BN and VC.
2024-01-19 14:36:04 +00:00
tersec d99347afaa
add all remaining KZG test cases (#5793) 2024-01-19 10:59:07 +00:00
Etan Kissling 3203666590
bump `gnosis-chain-configs` to `5a769b45aed5661cfe2c0ff8234c6b57a6ccf891` (#5792)
- Align config comments with gnosis values
2024-01-19 09:39:29 +00:00
Etan Kissling 04d4340a9c
bump `nim-toml-serialization` to `2bdfec0eb7156d5773bc5d25fca3b3b77d0869f1` (#5791)
- Improve parseList and parseInlineTable strictness
- v0.2.10
- Switch to llvm-mingw for faster Windows CI
- Add configureTomlDeserialization to README.md
- Put array/inline table nonstandard behavior behind flag
- Unify parseList and parseArray implementation
- v0.2.12
2024-01-19 08:33:46 +00:00
Etan Kissling f741a8598f
bump `nim-results` to `1fad36e938c879901660fd345c8354603f5367d6` (#5790)
- Formatted with nph v0.3-0-gfa9c745
- update git blame
2024-01-19 07:19:56 +00:00
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