Commit Graph

873 Commits

Author SHA1 Message Date
Jacek Sieka 02b48fafad
remove unused / obsolete / unmaintained modules (#4298)
mostly this is chronicles-tail and its (extensive) dependencies along
with the simulation monitoring dashboard that is not maintained
2022-11-08 14:37:23 +01:00
Jacek Sieka e98cfa88cb
bumps (#4297)
* fix toml overflow handling
* random nim devel fixes
* unicode db update
2022-11-08 10:56:06 +00:00
Tanguy 865a930f65
Bump libp2p (#4282) 2022-11-03 20:22:53 +01:00
Jacek Sieka fc724b21e8
Tighten libp2p request quotas (#4254)
To further tighten Nimbus against spam, this PR introduces a global
quota for block requests (shared between peers) as well as a general
per-peer request limit that applies to all libp2p requests.

* apply request quota before decoding message
* for high-bandwidth requests (blocks), apply a shared global quota
which helps manage bandwidth for high-peer setups
* add metrics
2022-11-02 10:46:53 +00:00
tersec 7dd5c49c4e
use v1.3.0-alpha.0 test vectors (#4263) 2022-10-27 11:54:39 +00:00
Jacek Sieka 36e2518d79
fakeee: Increase incoming POST size (#4252)
Needed to handle payloads
2022-10-25 20:01:45 +00:00
Jacek Sieka 593b3cee20
blscurve: bump (fixes #4237) 2022-10-21 02:24:02 +02:00
zah a47cf5aa2c
Flake-based build environment for Nix users (#3534) 2022-10-15 03:46:30 +02:00
Zahary Karadjov 89582c10db
Merge branch 'stable' into unstable 2022-10-14 22:24:55 +03:00
cheatfate b54a03ae07
Fix MEV builder file descriptor leaks. 2022-10-14 16:09:39 +03:00
Zahary Karadjov fb983f867f
Merge branch 'stable' into unstable 2022-10-13 14:48:03 +03:00
Zahary Karadjov 5ff99b9bf0
Bump Chronos to fix a resource leak when using an external builder 2022-10-13 13:46:11 +03:00
Etan Kissling 2b531b6653
fix `nimbus-build-system` checkout (#4233)
Currently, `unstable` has issues checking out from Git, as
https://github.com/status-im/nimbus-build-system/pull/52 has merged and
https://github.com/status-im/nimbus-eth2/pull/4215
was pointing to the PR commit instead of the merged commit.
Selecting the corresponding merged commit to fix the issue.
2022-10-12 16:41:25 -05:00
Jakub Sokołowski 20c9c9b381
nimbus-build-system: allow for overriding CC (#4215)
Depends on: https://github.com/status-im/nimbus-build-system/pull/51

Signed-off-by: Jakub Sokołowski <jakub@status.im>

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-10-04 19:17:43 +03:00
Jacek Sieka 3c1caab107
web3: bump (#4183)
* point to master branch again
2022-09-27 14:25:26 +02:00
tersec 72e6b2021a
use v1.2.0 consensus spec test vectors (#4163) 2022-09-22 22:24:13 +00:00
Jacek Sieka c146ea823c
bump web3 (#4156)
* fixes `BlockObject` definition
* fixes JSON-RPC Option support
2022-09-22 11:15:57 +00:00
Etan Kissling 5a32dacfc5
correct `nim-presto` bump (#4145)
#4139 linked to the commit on the feature branch itself instead of the
commit merged to `master`. Fix dependency reference.
2022-09-19 16:27:58 +00:00
Eugene Kabanov ca871a5435
Fix HTTP/REST clients HTTP Content-Type header parsers. (#4139)
* Fix client HTTP content-type parsers.

* Fix tests.

* Address review comment and apply wildcard checks for generic decodeBytes.
2022-09-19 12:17:29 +03:00
Etan Kissling 6ad9b3214d
fix random `IndexError` in CI (#4136)
Bump `nim-chronos` to improve reliability of tests with `waitFor` logic.
The bump also adds more `FutureBase` helpers.
2022-09-17 19:45:09 +00:00
Etan Kissling 24534090b4
send SNI info when using https/wss web3 API (#4133)
When connecting to hosts on shared IP/Port using TLS, SNI must be sent
to allow the remote server to provide the correct TLS certificate.
Bump the `nim-json-rpc` and `nim-websock` dependencies to send SNI ext.
2022-09-17 03:01:59 +00:00
Jacek Sieka 9df08576a1
bump json-rpc, for potential `nil` http crash (fixes 4118) (#4125)
* bump json-rpc, for potential `nil` http crash (fixes #4118)

* bump
2022-09-16 08:08:25 +00:00
Etan Kissling 634408ff2c
use `nim-websock` instead of `news` (#4061)
`news` has a few open issues that are not present in `nim-websock`:
1. There is a 1 second delay between each MB of sent data.
2. Cancelling an ongoing `send` makes the entire WebSocket unusable.
3. Control packets do not have priority over ongoing message frames.

Using `news`, there are quite a few of these messages in Geth:
```
Previously seen beacon client is offline. Please ensure it is
operational to follow the chain!
```
It may take quite some time to reconnect when this happens.

Using `nim-websock`, this message still occurs because `eth1_monitor`
reconnects the EL connection when no new blocks occurred for 5 minutes,
but reconnecting is quick and the message is rarer.
2022-09-06 23:41:33 +02:00
Jacek Sieka 1538dea45e
bumps (#4069)
* bearssl: use master branch again
* chronos: less Option, better contenttype handling
* eth, presto: less imports
* stew: typo
* web3: tighter `Quantity` parsing rules (see
https://github.com/status-im/nimbus-eth2/pull/3850 and subsequently
https://github.com/status-im/nim-web3/pull/55)
2022-09-06 13:54:30 +00:00
Tanguy 2da13c0b22
Bump libp2p (#4066) 2022-09-05 20:05:36 +02:00
Jacek Sieka d9ceb61dbd
eth: bump (#4062) 2022-09-04 19:44:43 +02:00
tersec f33a241ba1
retry EF spec test vector downloads (#4059) 2022-09-01 19:51:19 +00:00
Etan Kissling ebfb624557
bump `news` to fix concurrency bug with >1MB frames (#4028)
When calling `newPayload` on a >1MB payload (can happen post-merge),
`news` splits up that payload into 1MB chunks. The chunks are each sent
individually, though, with `await` in-between. This means that when we
send concurrent `forkChoiceUpdated` calls, that those may end up getting
in-between the `newPayload` chunks, leading to invalid data being sent.
The EL then returns an error message with a `null` `id` entry (as it
could not read the request `id` due to the mangling) and disconnects.
A PR has been submitted to fix this in `news`, and merged into `status`
branch early as this fix is critical for reliable post-merge operation:
https://github.com/Tormund/news/pull/22
2022-08-25 21:14:40 +00:00
Jacek Sieka 492a2ccfac
bump ssz-serialization (#4017)
* free 7% speedup of `hash_tree_root`
* harden `len` for uninitialized `BitSeq`
2022-08-23 18:32:34 +00:00
zah a7192f5d6c
Fix the block header computation when proposing an empty execution payload (#3991)
* Fix the block header computation when proposing an empty execution payload
* Spec compliant base fee calculation when producing empty payloads
2022-08-19 13:28:42 +03:00
tersec b5b93e90c0
use v1.2.0-rc.3 test vectors (#3995) 2022-08-19 04:32:53 +00:00
Zahary Karadjov 7f681af56f
Make it easier to test trustedNodeSync or different networks 2022-08-18 19:48:11 +03:00
zah 74819729a5
Bellatrix metadata for Mainnet (#3980) 2022-08-17 14:40:58 +00:00
tersec e732b080f7
use v1.2.0-rc.2 test vectors (#3975) 2022-08-16 21:24:37 +00:00
zah dc50abbc90
Implement a missing ingnore rule for sync committee contributions (#3941) 2022-08-09 12:52:11 +03:00
Eugene Kabanov 250f7b4bdf
Exclusive keystore locking (#3907) 2022-08-08 00:53:20 +03:00
Eugene Kabanov fe5435ed96
Address #3624 (#3934) 2022-08-06 11:55:40 +00:00
Zahary Karadjov 5951df4193
Switch back to Nim 1.2
We've discovered a critical `lent` issue affecting Nim 1.6:
https://github.com/nim-lang/Nim/issues/20107
2022-07-29 11:26:36 +03:00
tersec b7f907a64a
bump nim-zxcvbn for styleCheck compatibility (#3919) 2022-07-27 14:25:09 +03:00
tersec 9d41fbfded
bump nim-presto for styleCheck compatibility (#3918) 2022-07-27 14:24:45 +03:00
Zahary Karadjov 4637669b6b
Merge branch 'stable' into unstable 2022-07-26 23:54:46 +03:00
tersec b7ed0aa235
bump nim-websock for styleCheck compatibility (#3909) 2022-07-26 12:20:36 +03:00
tersec ee24beee30
bump nim-stint for styleCheck compatibility (#3908) 2022-07-26 12:19:55 +03:00
zah c5d89bb46e
Switch to Nim 1.6.7 (#3902) 2022-07-26 12:19:32 +03:00
tersec 6b2abd01fb
bump nim-eth for styleCheck compatibility (#3896) 2022-07-25 23:15:46 +03:00
Zahary Karadjov 1a1553fee8
Bump eth2-networks to include the Prater TTD 2022-07-21 22:30:17 +03:00
Jacek Sieka 24d8401054
bumps (#3892)
various ABI fixes
2022-07-20 20:20:34 +02:00
tersec df660292a4
bump nim-metrics for styleCheck compatibility (#3889) 2022-07-20 10:13:32 +02:00
tersec 3dc04bc48f
bump nimcrypto for styleCheck compatibility (#3885) 2022-07-18 17:13:25 +00:00
Jacek Sieka 7dff72c6bf
bumps (#3882)
* fix UB in leb128 shift
* bearssl spellings
2022-07-18 07:17:53 +02:00
zah e6988c1cc9
Bump nim-json-serialization (#3878) 2022-07-15 14:36:03 +00:00
zah 20d45e69b5
Re-enabled requireAllFields after a fix in nim-json-serialization (#3871)
* Re-enabled requireAllFields after a fix in nim-json-serialization

The problem was that `Option[T]` fields were not treated as optional
when requireAllFields is set to true. This is now fixed in NJS.

* Add makefile targets for recreating the Jenkins simulation runs

* Fix a discrepancy with the REST spec
2022-07-15 03:19:19 +03:00
Eugene Kabanov 263a2ffa14
Validator client various fixes. (#3840)
* Improve fallback_service.
* Fix nextAction negative time issue.
* Improve logging in fallback_service.
* Improve logging in sync_committee_service.
* Prepare all services for cancellation.
* Signals handlers for validator client
* Address #3800

Co-authored-by: Zahary Karadjov <zahary@gmail.com>
2022-07-13 17:43:57 +03:00
tersec 91b51adb12
Revert "bump nim-web3 to enforce JSON-RPC Quantity syntax (#3846)" (#3850)
This reverts commit 007dcc42f1.
2022-07-08 00:07:50 +00:00
tersec 007dcc42f1
bump nim-web3 to enforce JSON-RPC Quantity syntax (#3846) 2022-07-07 21:14:41 +02:00
Jacek Sieka e1830519a4
Introduce message router (#3829)
Whether new blocks/attestations/etc are produced internally or received
via REST, their journey through the node is the same - to ensure that
they get the same treatment (logging, metrics, processing), this PR
moves the routing to a dedicated module and fixes several small
differences that existed before.

* `xxxValidator` -> `processMessageName` - the processor also was adding
messages to pools, so we want the name to reflect that action
* add missing "sent" metrics for some messages
* document ignore policy better - already-seen messages are not actaully
rebroadcast by libp2p
* skip redundant signature checks for internal validators consistently
2022-07-06 16:11:44 +00:00
tersec 9eb1a3efb3
bump nim-json-serialization to fix Nim 1.6 build warning (#3835) 2022-07-01 22:27:40 +00:00
Tanguy 4fbbbfd462
Bump nim-websock: fix crash when sending >1mb (#3831) 2022-07-01 15:11:45 +03:00
zah f08f9e2bd7
Bump nim-json-rpc and nim-websock (use news by default) (#3820) 2022-06-29 17:35:09 +03:00
tersec 2d2cda735b
bump nim-eth to fix Nim 1.6 warnings (#3818) 2022-06-28 22:56:48 +02:00
zah 2c3e47d7e6
Avoid overflow in the initial 'nextExchangeTransitionConfTime' calculation (#3809) 2022-06-28 23:50:40 +03:00
Zahary Karadjov 45ad4abe30
TTD value for Sepolia 2022-06-28 19:25:11 +03:00
Mamy Ratsimbazafy c4e5cd9f06
update nim blscurve: use builtin EIP2333 for BLST https://github.com/status-im/nim-blscurve/pull/142 2022-06-28 15:11:20 +02:00
tersec 5145c04be2
Revert "Switch back to nim-websock (#3665)" (#3812)
This reverts commit 8d3afd8285.
2022-06-27 22:21:30 +00:00
Etan Kissling 07f9936b33
bump nim-ssz-serialization to `f1b14875792df7b1e76c98c9ee669026d7cfe6bb` (#3802)
Update nim-ssz-serialization to get rid of a style check warning.
2022-06-26 23:17:40 +00:00
tersec c02c383b91
bump nim-web3 so default payload status is safe (#3801) 2022-06-26 18:31:32 +00:00
Etan Kissling aa1b8e4a17
bump nim-ssz-serialization to `3db6cc0f282708aca6c290914488edd832971d61` (#3119)
This updates `nim-ssz-serialization` to
`3db6cc0f282708aca6c290914488edd832971d61`.

Notable changes:
- Use `uint64` for `GeneralizedIndex`
- Add support for building merkle multiproofs
2022-06-26 19:33:06 +02:00
Jacek Sieka b764f4f0d7
bump bearssl (#3797)
cross compile path fix
2022-06-24 22:45:26 +00:00
Tanguy c45c017349
Bump libp2p to fix write on closed channel (#3795) 2022-06-24 12:52:10 +00:00
Ivan Yonchovski d701887a9f
Bump libbacktrace (#3794) 2022-06-24 07:04:29 +02:00
Mamy Ratsimbazafy e25cfe56a6
bump blst fix 32-bit builds on ADX CPUs (#3789) 2022-06-23 16:45:43 +02:00
tersec 4bb42eea7d
bump nim-web3 for eth_chainId support (#3785) 2022-06-21 21:09:29 +00:00
Tanguy 8d3afd8285
Switch back to nim-websock (#3665) 2022-06-21 17:43:55 +02:00
Jacek Sieka f3852cc4cd
sqlite: bump (#3783)
new nimterop
2022-06-21 15:56:48 +02:00
Jacek Sieka 347a485b5b
bearssl: split abi (#3755) 2022-06-21 10:29:16 +02:00
Eugene Kabanov eb6b7affee
Add the `execution_optimistic` flag to REST API responses. (#3780)
* Initial commit

* Make `events` API spec compliant.

* Add `Eth-Consensus-Version` in responses.

* Bump chronos to get redirect with headers working.

* Add `is_optimistic` field and handling to syncing RestSyncInfo.
2022-06-20 08:53:39 +03:00
zah c24c737866
Fix #3650 (participation format in BeaconState result is out of spec) (#3776)
* Fix #3650 (participation format in BeaconState result is out of spec)
* Make EpochParticipationFlags a distinct type
2022-06-20 08:38:56 +03:00
Eugene Kabanov 5e7b28cd66
AsyncEventBus missing attestations fix. (#3664) 2022-06-17 18:27:28 +03:00
tersec b0e46686f1
bump merge-testnets to use capella fork versions consistently (#3767) 2022-06-17 17:17:09 +03:00
zah 69f505e2ba
Correct parsing of the `weak-subjectivity-checkpoint` parameter (#3765) 2022-06-17 14:55:03 +03:00
zah e8efc0f184
Add support for the Sepolia network (#3762) 2022-06-16 17:11:26 +03:00
tersec 9da9fc83ed
bump merge-testnets for final ropsten TTD (#3754) 2022-06-16 08:18:46 +03:00
Jacek Sieka 099709872e
Merge branch 'stable' into unstable 2022-06-14 13:35:38 +02:00
Tanguy 29297e9ce4
Bump libp2p (#3709) 2022-06-08 07:53:50 +02:00
tersec 3bd9622572
bump nim-json-serialization to fix Nim 1.6 build warnings (#3711) 2022-06-07 16:26:40 +02:00
tersec 3e7d3bbc31
bump eth2-networks with mainnet/prater including capella (#3707) 2022-06-06 17:45:58 +03:00
tersec 399afd89e9
bump nim-json-serialization to reduce TaintedString deprecation warnings (#3703) 2022-06-05 08:55:59 +02:00
tersec a3f8b4e9eb
bump nim-confutils to reduce TaintedString deprecation warnings (#3702) 2022-06-04 08:58:41 +02:00
Eugene Kabanov 85d0234524
Bump chronos to fix httpclient assert issue. (#3669) 2022-05-31 10:50:33 +02:00
Jacek Sieka 48f01186d6
fix unnecessary HashList/HashArray cache invalidation (#3660)
* SSZ `[]` -> `mitem`
* `[]` -> `item`

immutable access via mutable instance cannot rely on template
overloading, and `[]` cannot be a `func` because of special seq handling
in compiler.
2022-05-30 13:30:42 +00:00
tersec 6e27661440
bump merge-testnets to get new ropsten TTD (#3668) 2022-05-27 00:09:16 +03:00
tersec bf1763fdef
consensus specs v1.2.0-rc.1 (#3661) 2022-05-25 13:49:29 +00:00
tersec dfd8cd22b7
bump nim-web3 and use engine API v1.0.0.alpha.9 (#3663) 2022-05-25 10:30:37 +00:00
zah e7ce3cacd0
Add support for the Ropsten beacon chain (#3648) 2022-05-20 18:26:07 +03:00
Zahary Karadjov a359dbe23e
Bump blscurve in order to fix the Windows distribution build 2022-05-18 19:56:10 +03:00
zah 9080cb561e
Bump Chronos to fix HTTP client assertion failures (#3628) 2022-05-15 02:02:20 +03:00
zah 6d11ad6ce1
Support for distributed keystores with multiple remotes based on threshold signatures (#3616)
Other fixes:

* Fix bit rot in the `make prater-dev-deposit` target.
* Correct content-type in the responses of the Nimbus signing node
* Invalid JSON payload was being sent in the web3signer requests
2022-05-10 03:32:12 +03:00
Kim De Mey f016e1abbd
Bump nim-eth vendor module (#3612)
Changes relevant to nimbus-eth2:
- Update discv5 implementation explainer comment
- Add discv5 max packet size limit
2022-05-03 08:50:23 +00:00
Jacek Sieka d0dbc4a8f9
Snappy revamp (#3564)
This PR makes the necessary adjustments to deal with the revamped snappy
API.

In practical terms for nimbus-eth2, there are performance increases to
gossip processing, database reading and writing as well as era file
processing. Exporting `.era` files for example, a snappy-heavy
operation, almost halves in total processing time:

Pre:

```
     Average,       StdDev,          Min,          Max,      Samples,         Test
      39.088,        8.735,       23.619,       53.301,           50, tState
     237.079,       46.692,      165.620,      355.481,           49, tBlocks
```

Post:

```
All time are ms
     Average,       StdDev,          Min,          Max,      Samples,         Test
      25.350,        5.303,       15.351,       41.856,           50, tState
     141.238,       24.164,       99.990,      199.329,           49, tBlocks
```
2022-04-15 09:44:06 +02:00
tersec b237afeb16
bump nim-web3 for stylecheck fixes (#3596) 2022-04-15 07:11:48 +02:00