Commit Graph

1074 Commits

Author SHA1 Message Date
tersec 6fd4983f6b
EIP-4788/parentBeaconBlockRoot fixes (#5318) 2023-08-19 08:38:17 +00:00
Jacek Sieka 5b879e3bc2
blscurve: bump for cleanups (#5311) 2023-08-18 01:01:03 +00:00
Jacek Sieka a150bc93a6
blst: 0.3.11 (#5300)
```
Essential changes:

    security bugfix in Go bindings
    run-time switch in portable build
    no-std support [exercised with limited stack size of 56K]
    serde support
blst_miller_loop_n interface, with parallelized Rust and Go
counterparts
    optional blst_fr_pentaroot subroutine
    Emscripten bindings
    hardened security on non-asm platforms
```
2023-08-16 18:13:58 +00:00
Jacek Sieka ddddfc41aa
bearssl: bump to 0.2.1 (#5298) 2023-08-16 15:42:01 +00:00
Jacek Sieka b39e71335d
ssz: bump for 10% hash_tree_root perf increase, json loading fix (#5292)
* move file loading out of timed ncli section to focus benchmark on
deserialization rather than disk loading
* JSON loading fix included in bump, but does not practically happen
since we generally don't load hashlist from JSON
2023-08-15 13:28:33 +00:00
Eugene Kabanov 255131d331
Bump chronos. (#5281)
Add current/last connection query to the connection information.
2023-08-15 13:14:34 +02:00
Jacek Sieka 3c9fc49411
reduce ncli/research imports (#5275)
* reduce ncli/research imports

avoids ssl, most of chronos etc, speeds up compiles

* copyright
2023-08-10 14:52:49 +02:00
Jacek Sieka a154a42205
bump ssz (small speedup) (#5282) 2023-08-09 19:40:57 +00:00
tersec 8e398001fe
bump nimcrypto to f118a5f86b04fbfd388b584d749f93bb3795f88f (#5279) 2023-08-09 06:40:03 +00:00
Etan Kissling 2b57a221de
bump `nim-blscurve` to `337ab727eb8a38a0a71725f6f01ce55563f355c0` (#5274)
- bump blst
- add sig aggregation bench
- allow subtracting from aggregate for when participation is high
- add `{.push: raises: [].}` annotation
2023-08-08 12:20:08 +00:00
andri lim e194d7b4ab
bump ssz-serialization to 4edfffe2b8d338444ef0b754954fba3b9fe78b9d (#5266) 2023-08-07 07:45:34 +00:00
Etan Kissling f0774564a8
bump `nim-web3` to `04f56c593a035af1b7bebdc726543a2a73826412` (#5241)
- fix `TransactionObject` type up through mainnet
- fix `Quantity` parsing on 32-bit platform
2023-08-03 17:18:57 +00:00
Jacek Sieka b8a32419b8
async batch verification (+40% sig verification throughput) (#5176)
* async batch verification

When batch verification is done, the main thread is blocked reducing
concurrency.

With this PR, the new thread signalling primitive in chronos is used to
offload the full batch verification process to a separate thread
allowing the main threads to continue async operations while the other
threads verify signatures.

Similar to previous behavior, the number of ongoing batch verifications
is capped to prevent runaway resource usage.

In addition to the asynchronous processing, 3 addition changes help
drive throughput:

* A loop is used for batch accumulation: this prevents a stampede of
small batches in eager mode where both the eager and the scheduled batch
runner would pick batches off the queue, prematurely picking "fresh"
batches off the queue
* An additional small wait is introduced for small batches - this helps
create slightly larger batches which make better used of the increased
concurrency
* Up to 2 batches are scheduled to the threadpool during high pressure,
reducing startup latency for the threads

Together, these changes increase attestation verification throughput
under load up to 30%.

* fixup

* Update submodules

* fix blst build issues (and a PIC warning)

* bump

---------

Co-authored-by: Zahary Karadjov <zahary@gmail.com>
2023-08-03 11:36:45 +03:00
tersec 0a4036baee
bump nim-eth to d217d309eb12e39d2a642feae1d9d27157b88352 (#5237) 2023-08-03 02:13:36 +00:00
henridf 28194468c9
Rename "data gas" to "blob gas" (#5216)
* Rename data gas to blob gas

* Update vendor/nim-eth and vendor/nim-web3
2023-08-02 22:07:57 +00:00
Etan Kissling 32e8bfe911
bump `nim-confutils` to `dbe8d61f7fbb1cb9d74b38f9012406c8071aa9e9` (#5228)
- return empty completion lines on unsupported `COMP_POINT`
- require `secondarySources` to be `gcsafe`
2023-08-01 01:23:55 +00:00
Etan Kissling 66160d986f
bump `gnosis-chain-configs` to `b90374a1c63703db8235fcdb65aff2e909bc42b5` (#5227)
- fix: bootstrap_nodes.txt
2023-08-01 01:23:46 +00:00
tersec 909a7c2d07
use v1.4.0-beta.1 consensus spec tests (#5230) 2023-07-31 21:51:06 +00:00
Jacek Sieka e8379389e7
speed up state/block loading (#5207)
* speed up state/block loading

When loading blocks and states from db/era, we currently redundantly
check their CRC32 - for a state, this costs 50ms of loading time
presently (110mb uncompressed size) on a decent laptop.

* remove `maxDecompressedDbRecordSize` - not actually used on recent
data since we store the framed format - also, we're in luck: we blew
past the limit quite some time ago
* fix obsolete exception-based error checking
* avoid `zeroMem` when reading from era store

see https://github.com/status-im/nim-snappy/pull/22 for benchmarks

* bump snappy
2023-07-26 10:47:46 +03:00
Eugene Kabanov df80ae68fa
REST server metrics and connections API endpoints. (#5193)
* Add new REST endpoints to monitor REST server connections and new chronos metrics.

* Bump head versions of chronos and presto.

* Bump chronos with regression fix.

* Remove outdated tests which was supposed to test pipeline mode.

* Disable pipeline mode in resttest.

* Update copyright year.

* Upgrade test_signing_node to start use AsyncProcess instead of std library's osproc.
Bump chronos to check graceful shutdown.

* Update AllTests.

* Bump chronos.
2023-07-21 16:54:09 +02:00
Jacek Sieka bf400d37ab
bump: ssz, stew
* https://github.com/status-im/nim-ssz-serialization/pull/53
* avoid some `zeroMem`
2023-07-21 15:21:59 +02:00
Etan Kissling 2954e7fac7
bump `nim-web3` to `9795b85a390ae02a931274ae92b3e67c8df6a0b8` (#5201)
- add `mixHash`, `withdrawals` fields to `BlockObject`
2023-07-20 02:02:12 +02:00
tersec c549fe6a65
bump nim-json-rpc to 32200345f80a3b5f72e15d1b4e9363363d95a1cd (#5187) 2023-07-12 22:44:17 +02:00
Etan Kissling 7fc99ff040
bump `gnosis-chain-configs` to `9f01035125054f16022929116dfbd0190f7bafd7` (#5175)
- Adding new bootnodes
2023-07-10 15:46:57 +00:00
Jacek Sieka b2c421f5d6
eth: bump (#5165)
> sqlite3: better error message
  > Use results Opt for discv5 getNode and resolve
  > implement EIP-4844: Shard Blobs Transactions
  > Enable tests with also json sink and fix failures
  > Style fixes and comment improvements on uTP code
  > fixes related to stint breaking changes
  > Fix potentential uTP socket leak for socket in SynSent state
  > Avoid double socket destroy on timed-out uTP SYN-ACK
  > remove stddefects import
  > use correct exception in `parseCmdArg`
2023-07-06 10:20:06 +00:00
Jacek Sieka fa481dcb14
small bumps (#5164)
1.2/1.4 removals and cleanups
2023-07-06 10:16:27 +00:00
Jacek Sieka 1e227b2704
stew without results (#4862)
https://github.com/status-im/nim-stew/pull/185

also an assortment of other stew fixes
2023-07-05 16:06:45 +00:00
tersec b4c4f0955e
https://github.com/ethereum/consensus-specs/pull/3421 https://github.com/ethereum/execution-apis/pull/420 (#5147) 2023-06-30 08:14:20 +00:00
Etan Kissling e8f3bfdb08
bump `nimbus-build-system` to `fe9bc3f3759ae1add6bf8c899db2e75327f03782` (#5132)
- switch to Nim `v1.6.14`
2023-06-29 16:06:14 +00:00
tersec 66febf2444
bump nim-blscurve to b71a16312699f6d26dee6a710b4aafea6ee5680d (#5143) 2023-06-29 11:13:15 +00:00
tersec 657f115210
bump nim-faststreams to 720fc5e5c8e428d9d0af618e1e27c44b42350309 (#5129) 2023-06-27 20:50:49 +02:00
tersec 9dbf63d8ca
use v1.4.0-beta.0 consensus spec test vectors (#5120) 2023-06-24 12:27:15 +00:00
Etan Kissling cbc4cef981
bump `gnosis-chain-configs` to `19060cb894ea0fb8ff3c8ec2fd26c0433f56c52c` (#5114)
https://github.com/gnosischain/configs/pull/12

- Schedule shapella for gnosis
2023-06-22 11:14:02 +03:00
Etan Kissling 6175fa8a79
bump `nimbus-build-system` to `239c3a7fbb88fd241da0ade3246fd2e5fcff4f25` (#5111)
- Use upstream build system when possible
- Fix checking out of recent Nim tags in shallow repo
- install Nimble CA cert when `skipIntegrityCheck`
2023-06-21 17:00:51 +02:00
Tanguy d00788ab29
Bump libp2p to fix incoming connections (#5102) 2023-06-20 17:40:47 +02:00
Etan Kissling 3dd256b686
bump `nim-zlib` to `f34ca261efd90f118dc1647beefd2f7a69b05d93` (#5096)
* bump `nim-zlib` to `f34ca261efd90f118dc1647beefd2f7a69b05d93`

- ignore *.exe
- nim 1.6 adjustment
- update github action to v3
- use Nim 2.0 in CI
- test both refc and ORC in post-1.6 Nim versions
- remove Nim 1.2 and 1.4 support

* bump `nim-websock` for compatibility

`nim-websock` `fea05cde8b123b38d1a0a8524b77efbc84daa848` is needed

- reduce compiler warnings
2023-06-19 18:47:11 +00:00
Etan Kissling a92b249892
bump `nim-websock` to `4c5e225eeb342a3b9cfb2fbdddd92d00568b5553` (#5097)
- Remove newRng
- Fix closing hangs
- Remove recvMsg pre-allocation
2023-06-19 13:11:30 +00:00
Etan Kissling 4da9517f25
bump `nim-serialization` to `384eb2561ee755446cff512a8e057325848b86a7` (#5086)
- readFieldIMPL workaround when orc enabled
- remove nimble.lock
- remove nim 1.2 and nim 1.4 from ci
- remove Defect raises from makeFieldReadersTable
- another attempt to reduce compiler warnings
- More fix to exception tracking and generic_suite
- bump version to 0.2.0
- avoid implicit synthesis of `CaseTransition`
- make nimble file consistent with test matrix
- workaround for `NimYAML` issue
2023-06-17 08:41:01 +02:00
Tanguy 98ab0afcc3
Bump libp2p (#5079)
* Bump libp2p

* Switch to unstable
2023-06-15 12:59:35 +00:00
Etan Kissling aab26379ff
bump `eth2-networks` to `e930d81f7c9db816c88d1a9336be8cef858f7f4d` (#5077)
- remove `SAFE_SLOTS_TO_UPDATE_JUSTIFIED`
2023-06-14 18:18:02 +00:00
Etan Kissling 088c7e953d
bump `gnosis-chain-configs` to `41ffb72f67215b2f0c844498071844f3286c7fbb` (#5071)
- remove `SAFE_SLOTS_TO_UPDATE_JUSTIFIED`
2023-06-14 14:47:29 +00:00
Eugene Kabanov c0e5c26da1
VC: Use SSZ encoding while processing blocks data (#4999)
* Refactor api.nim to provide more informative failure reasons.
Distinct between unexpected data and unexpected code.
Deprecate Option[T] usage.

* Fix 400 for produceBlindedBlock().
Get proper string conversion for strategy.

* Fix SSZ encoded versions of ProduceBlockResponseV2, ProduceBlockResponseV2 can be received and decoded.
Fix done() warnings.
Bump presto.

* Fix compilation error with new presto.
Use TcpNoDelay option for Web3Signer.

* Fix produceBlockV2() should provide SSZ responses too.

* Address block encoding issue.

* Fix signing test.

* Bump presto.

* Address review comments.
2023-06-14 08:04:15 +02:00
tersec b5a38b7a2a
bump nim-kzg4844 to f8b78edcc8296f412c2593e6d60f47c77aa421c5 (#5073) 2023-06-13 20:10:54 +00:00
Etan Kissling 47fdfc2fce
bump `nim-web3` to `1f9fa11d0e63c16aa4ec30e1f7328ae61254d7d0` (#5068)
No changes, but this was pushed to a PR commit instead of `master`.
2023-06-13 16:51:43 +00:00
tersec d26058b929
use v1.4.0-alpha.3 consensus spec test vectors (#5063) 2023-06-13 10:37:10 +00:00
tersec 9e14d904ac
https://github.com/ethereum/consensus-specs/pull/3359 (#5047) 2023-06-10 05:39:10 +00:00
Etan Kissling db48160ab3
bump `nim-testutils` to `53a9fb09923004455b7e6d750c8144f3c7ede201` (#5010)
- allow `programMain` to throw
2023-06-10 05:11:10 +00:00
Etan Kissling 40a6f1dd82
bump `nim-chronicles` to `74dc6e2e58bc0f63d22febed66726a815b8363db` (#5052)
- Generate lock file
- v0.10.3
- fix stylecheck to be compatible with Nim 1.2 and 1.6
- update to supported macOS GitHub CI image
- switch GitHub Actions CI images from deprecated Ubuntu 18.04 to 20.04
- Fix nim 2.0 bare except warnings
- fix nim 1.6 bare except warnings
- reduce compiler warnings
- Fix bare expect warning
- Remove appveyor and travis scripts
- upgrade github actions to v3
- remove nimble.lock, which is outdated and block Nim CI
2023-06-10 02:08:32 +00:00
tersec 6a9ed6ddd5
use v1.4.0-alpha.2 consensus spec test vectors (#5051) 2023-06-10 01:45:53 +00:00
Etan Kissling 6548651e42
bump `nim-confutils` to `6c3566850d5ec241d8cb687ae8461c972040311a` (#5046)
- remove support for Nim v1.2 and v1.4
- use --mm: instead of --gc: and remove stddefects import
- annotate `parseCmdArg` with `{.raises.}`
- ignore exceptions while writing to stdout/stderr
- handle `terminalWidth` exception
- catch exceptions in `appInvocation`
2023-06-09 21:45:52 +00:00
Etan Kissling 16adda2cd5
bump `nim-ssz-serialization` to `4c3e600da2051f81fe3074ae344f75f96a66de9d` (#5045)
- add support for generic union
- switch CI to the supported versions of ubuntu and macos
- install openssl on macos for Nim devel
- update github actions to v3
- improve union validation
- enable ssSize of union
- implement SSZ Optionals (EIP-6475)
- implement sszSize of Optionals
- use Nim 2.0 in CI
- test both refc and ORC in post-1.6 Nim versions
- stop testing Nim pre-1.6 in CI
- update for latest `Optional` spec
- avoid ptr_arith
- remove redundant when's because Nim 1.6+ is always true
- rm unused `SszMaxSizeExceeded`
- remove Defect raises
2023-06-09 21:35:18 +00:00
Etan Kissling 5a2fd46d79
bump `nim-serialization` to `845bed4478c8f0ac893494083798348e9e7ffb58` (#5043)
- fix nim devel error: 'result' requires explicit initialization
- Use Nim 2.0 in CI
- test both refc and ORC in post-1.6 Nim versions
- fix makeFieldReadersTable crash when orc enabled.
- remove appveyor and travis scripts
2023-06-09 11:55:41 +00:00
Jacek Sieka 7028cc45f5
bump stew (#5040)
`results` updates, brings better error messages and convenient helpers
2023-06-08 18:14:49 +00:00
Jacek Sieka 8db87a0cfc
bump chronos (#5039)
* separate futures import / Defect cleanups
* unittest2 fix to allow `stackTrace` as a symbol name generally
2023-06-08 13:42:19 +00:00
Etan Kissling 489f688dbc
bump `nim-faststreams` to `2a771bb91f8aae8520a5553955a2acce5fdd0c87` (#5038)
- remove chronos dependency
- fix `finalWrite` for split fixed-size cursors
2023-06-07 11:28:49 +00:00
Etan Kissling d358aa67cb
bump `nim-serialization` to `bddc53901201b0df5d50e7b79375f88d17ddb71a` (#5036)
- nim devel workaround
- upgrade github actions to v3
- switch CI to the supported version of ubuntu
2023-06-06 23:05:13 +00:00
Jacek Sieka fc833d40f6
bump chronos (#5032)
* ratelimiter crash fix
* implicit returns now available!
2023-06-05 18:52:16 +00:00
Jacek Sieka eb5ec3330d
bump chronos (#5024)
* bump chronos

* asyncevent memory hogging fix

* fixup

* fixup

* Revert fixes.
Bump proper chronos version.

---------

Co-authored-by: cheatfate <eugene.kabanov@status.im>
2023-06-03 23:55:58 +02:00
tersec b25ca0833b
use v1.4.0-alpha.1 consensus spec test vectors (#5026) 2023-06-03 21:55:08 +00:00
Etan Kissling cb25e11252
bump `nim-chronicles` to `533022be6afee15800148a30b502b8ca9e327377` (#5017)
* bump `nim-chronicles` to `533022be6afee15800148a30b502b8ca9e327377`

- Fix registry locking when threading disabled
- Fix for styleCheck:usages (v0.10.2)
- Setup for Nimble 1.4.0

* lint
2023-06-01 10:05:52 +02:00
Jacek Sieka 021babd56d
bump chronos (#5000)
* bump chronos

* bump

* bump

* bump
2023-05-31 17:28:14 +00:00
Etan Kissling c036de5973
bump `nim-toml-serialization` to `67ba6fbd64f4345db6e590a87c252e7b5a934ffd` (#5008)
- use string value when encoding enums
2023-05-31 08:43:24 +00:00
Etan Kissling a10d193aec
bump `nim-json-serialization` to `ed4440d881f9e2cb7778c01a0f638d928f339aa7` (#5005)
- use string value when encoding enums
2023-05-30 23:59:55 +00:00
Etan Kissling 4b6236b6a6
bump `nim-stew` to `7b4c9407f29075d3206123c1a2d87fa74af40fd0` (#5003)
- remove cast warnings
- add `enumStyle` helper macro
2023-05-30 13:59:22 +00:00
tersec 10569ff2e9
use v1.4.0-alpha.0 consensus spec test vectors (#4990) 2023-05-25 07:55:00 +00:00
zah f904206e13
Bump Chronos to test the async proc changes (#4985) 2023-05-24 11:25:27 +03:00
Eugene Kabanov ec7eacc253
Bump chronos from main branch. (#4962) 2023-05-15 23:43:12 +03:00
Eugene Kabanov a1cb31c7b4
Disable HTTP pipelining by default. (#4950) 2023-05-15 17:42:00 +03:00
Jacek Sieka fedf04c55b
bumps (#4942)
general round of cleanup bumps

* bearssl: upstream update
* confutils: cleanups, env var support
* eth: cleanup
* faststeam: unsafeAddr fix
* json-ser: cleanups
* backtrace: harden
* metrics: cleanups
* normalize: tests
* ser: 2.0/devel fixes
* snappy: cleanup
* stew: Result updates
* stint: cleanups
* testutils: cleanups
* toml: 2.0 compat
* unicode: fixes
* ut2: cleanups
* nimcrypto: safety fixes
* sepolia: rename
2023-05-13 09:58:47 +00:00
Etan Kissling e0f024c0f3
capella preset for Gnosis (#4936)
```
MAX_WITHDRAWALS_PER_PAYLOAD* = 8
MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP* = 8192
```

https://github.com/gnosischain/configs/pull/11
2023-05-11 09:56:32 +00:00
Kim De Mey 4e715c877f
Bump nim-eth for less cannot raise Defect warnings (#4934) 2023-05-11 00:35:47 +00:00
Jacek Sieka 34a81f56c3
bump web3 (#4919)
and update fakeee
2023-05-09 22:51:57 +00:00
Zahary Karadjov d784672c10
Always use fresh HTTP connections for EL communication 2023-05-05 02:27:26 +03:00
Zahary Karadjov 18d1f62ff1
Add logging for EL request time outs 2023-05-02 16:52:26 +03:00
Jacek Sieka 55592db3b1
secp256k1 0.3.1 (#4843)
Celebrating their new release policy!
2023-04-30 08:51:48 +00:00
henridf cf202fb928
Update nim-web3 (#4875)
Update to new version of nim-web3 incorporating the execution API
change that merges getPayloadV3 and getBlobsBundleV1.
2023-04-28 19:20:25 +00:00
Zahary Karadjov 3b58711e6b
Merge branch 'stable' into unstable 2023-04-28 00:12:37 +03:00
Zahary Karadjov e5a5731be6
Fix the cross-compilation for macOS and re-enable its packaging 2023-04-27 19:29:52 +03:00
Zahary Karadjov e6a6019ef9
Fix the cross-compilation for Windows 2023-04-27 16:28:10 +03:00
Tanguy 6c3b9fdf36
Bump chronos (#4861) 2023-04-26 14:42:53 +00:00
tersec 45f89f1205
use consensus specs v1.3.0 test vectors (#4838) 2023-04-18 22:01:49 +02:00
tersec 5b0442e6e6
remove submodule containing deprecated zhejiang testnet definition (#4819) 2023-04-15 21:31:15 +00:00
henridf 974b1657b4
use nim-blscurve fork with upgraded blst (#4788) 2023-04-14 12:36:54 +00:00
Eugene Kabanov 0ff86e9538
web3signer refactoring and test suite. (#4775)
* Refactor nimbus_signing_node to support Unix signals.

* Fix SN unable to close REST server properly.

* Fix `keys`, `deposit` and `validator_registration` endpoints issues.
Add getValidatorExitSignature() and getDepositMessageSignature() to validator_pool.

* Add /reload endpoint and implementation.
Fix signData to not cancel `timer`.
Fix validator_pool should clear attachedValidators table.

* Diva protocol enhancement implementation.
2023-04-06 16:16:21 +03:00
Tanguy 5167a373ab
Bump libp2p (#4786)
* auto-bump nim-libp2p

* remove iWantBudget

---------

Co-authored-by: = <Menduist@users.noreply.github.com>
2023-04-04 13:31:41 +00:00
Jacek Sieka 99af1b60d6
chronos: bump (#4783) 2023-04-03 14:36:39 +00:00
Jacek Sieka 9131ebac81
bump unittest2 (#4777) 2023-03-31 09:29:07 +00:00
tersec aa04d45335
use canonical, standalone sepolia network definition repository (#4762) 2023-03-29 11:37:14 +03:00
Eugene Kabanov 4d74c53458
Bump chronos. (#4769)
* Bump chronos.

* Bump presto.
2023-03-28 12:57:27 +00:00
henridf 635a924e8c
Add nim-kzg4844 and use it in validate_blobs (#4732) 2023-03-23 09:47:04 +00:00
Zahary Karadjov 813fddee8c
Capella hard-fork epoch for Mainnet 2023-03-21 23:33:06 +02:00
tersec 83dbafa1af
bump nim-confutils to silence more BareExcept warnings (#4755) 2023-03-21 01:41:13 +01:00
tersec 82bf949561
use consensus spec v1.3.0-rc.5 test vectors (#4754) 2023-03-20 20:17:25 +00:00
tersec 221579889b
bump nim-web3 to enable calling getPayload with exact type (#4748) 2023-03-20 16:02:57 +01:00
Zahary Karadjov 4d1b2dd9f5
Merge branch 'stable' into unstable 2023-03-17 17:51:39 +02:00
Etan Kissling fb26e19de9
use v1.3.0-rc.4 consensus spec test vectors (#4740) 2023-03-16 21:35:20 +01:00
zah db068b759a
Bump Nim to 1.6.12 (#4737) 2023-03-15 17:25:19 +00:00
Zahary Karadjov 46f48269ef
Backwards compatible handling of the web3-url parameter in TOML 2023-03-14 17:50:03 +02:00
virchau13 a3e90eae99
vendor/nim-json-rpc: fix Nim 1.6 regression (#4722) 2023-03-11 10:51:08 +02:00
tersec 2c0762013e
bump eth2-networks to include goerli/prater capella fork epoch (#4699) 2023-03-07 05:03:47 +00:00
zah 9cd30768e7
Bugfix: historic blocks violate the latest specs for the extraData field (fixes #4695) (#4700) 2023-03-07 04:43:27 +00:00
zah 8771e91d53
Support for driving multiple EL nodes from a single Nimbus BN (#4465)
* Support for driving multiple EL nodes from a single Nimbus BN

Full list of changes:

* Eth1Monitor has been renamed to ELManager to match its current
  responsibilities better.

* The ELManager is no longer optional in the code (it won't have
  a nil value under any circumstances).

* The support for subscribing for headers was removed as it only
  worked with WebSockets and contributed significant complexity
  while bringing only a very minor advantage.

* The `--web3-url` parameter has been deprecated in favor of a
  new `--el` parameter. The new parameter has a reasonable default
  value and supports specifying a different JWT for each connection.
  Each connection can also be configured with a different set of
  responsibilities (e.g. download deposits, validate blocks and/or
  produce blocks). On the command-line, these properties can be
  configured through URL properties stored in the #anchor part of
  the URL. In TOML files, they come with a very natural syntax
  (althrough the URL scheme is also supported).

* The previously scattered EL-related state and logic is now moved
  to `eth1_monitor.nim` (this module will be renamed to `el_manager.nim`
  in a follow-up commit). State is assigned properly either to the
  `ELManager` or the to individual `ELConnection` objects where
  appropriate.

  The ELManager executes all Engine API requests against all attached
  EL nodes, in parallel. It compares their results and if there is a
  disagreement regarding the validity of a certain payload, this is
  detected and the beacon node is protected from publishing a block
  with a potential execution layer consensus bug in it.

  The BN provides metrics per EL node for the number of successful or
  failed requests for each type Engine API requests. If an EL node
  goes offline and connectivity is resoted later, we report the
  problem and the remedy in edge-triggered fashion.

* More progress towards implementing Deneb block production in the VC
  and comparing the value of blocks produced by the EL and the builder
  API.

* Adds a Makefile target for the zhejiang testnet
2023-03-05 01:40:21 +00:00
Jacek Sieka d9e938ef02
sqlite: bump to 3.40.1 (#4649)
Been a while since we updated

* fix Defect for 1.6 in kvstore
* bump nim-eth
2023-03-02 18:59:50 +00:00
Jacek Sieka c928dc981b
chronos: bump
async macro fixes and other cleanups
2023-02-28 11:10:26 +01:00
tersec 2dd2a782d9
disable BareExcept warnings (#4662)
* disable BareExcept warnings

* BareExcept only exists in >= 1.6.11
2023-02-24 19:50:46 +00:00
zah 7c83a7b48f
Bump NBS to fix nimbus-build-system.paths issues (#4659) 2023-02-23 23:17:23 +02:00
zah 6036f2e7d7
Local sim impovements (#4551)
* Local sim impovements

* Added support for running Capella and EIP-4844 simulations
  by downloading the correct version of Geth.

* Added support for using Nimbus remote signer and Web3Signer.
  Use 2 out of 3 threshold signing configuration in the mainnet
  configuration and regular remote signing in the minimal one.

* The local testnet simulation can now use a payload builder.
  This is currently not activated in CI due to lack of automated
  procedures for installing third-party relays or builders.

  You are adviced to use mergemock for now, but for most realistic
  results, we can create a simple builder based on the nimbus-eth1
  codebase that will be able to propose transactions from the regular
  network mempool.

* Start the simulation from a merged state. This would allow us
  to start removing pre-merge functionality such as the gossip
  subsciption logic. The commit also removes the merge-forcing
  hack installed after the TTD removal.

* Consolidate all the tools used in the local simulation into a
  single `ncli_testnet` binary.
2023-02-23 02:10:07 +00:00
tersec 68cb9fe7b1
use consensus spec v1.3.0-rc.3 test vectors (#4645) 2023-02-21 12:58:08 +00:00
Jacek Sieka 73702ad150
sqlite: bump (fix warning) (#4631) 2023-02-16 12:54:02 +00:00
zah 067ba13c52
Capella metadata for Sepolia (#4615)
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
Philippe Schommers db91710ee2
chore: update gnosis chain configs (#4603) 2023-02-11 18:10:10 +01:00
tersec e902962771
nim-stew bump (#4610) 2023-02-10 23:59:00 +00:00
Eugene Kabanov e51095e2f8
Fix Windows MAX_PATH constraint issue in CI. (#4576)
* Fix MAX_PATH limitation in tests.

* Fix posix issues.

* Fix compilation issue.
2023-02-10 21:59:38 +01:00
tersec 9f0fb4742a
bump nim-stint to avoid compiler deprecation warnings (#4600) 2023-02-07 16:20:24 +00:00
Etan Kissling 171a185e4d
bump `merge-testnets` (#4598)
Updates `merge-testnets` with fix for Ropsten (#4593) and with correct
`CAPELLA_FORK_VERSION`.
2023-02-07 01:00:37 +01:00
tersec f5e302f973
use 1.3.0-rc.2-hotfix consensus spec test vectors (#4566) 2023-01-30 22:54:16 +00:00
tersec 29ea42ce1a
use v1.3.0-rc.2 consensus spec test vectors (#4564) 2023-01-29 11:28:04 +00:00
tersec 90e169869c
bump nim-stew for Results field access workaround (#4541) 2023-01-21 19:40:22 +00:00
henridf f8ee0def2b
Add stubs for EIP4844 engine API calls (#4536) 2023-01-21 00:47:38 +00:00
zah a2bc10e51c
Makefile targets for capella-devnet-3 (#4521) 2023-01-18 17:19:02 +02:00
tersec eb02415f00
execution/engine withdrawals amount in uint64 gwei (#4509) 2023-01-14 17:26:57 +00:00
tersec 68e08c6f15
use v1.3.0-rc.1 consensus spec test vectors (#4505) 2023-01-14 04:20:51 +00:00
zah 0f758c5f02
Working Makefile targets for Capella devnet2 (#4494)
* Working Makefile targets for Capella devnet2

make capella-devnet-2
make clean-capella-devnet-2

You'll need to have https://github.com/tmuxinator/tmuxinator installed.
It's available as a regular package in most Linux distributions or through
Nix or Brew on macOS.

This commit also fixes the initial hang in the Eth1 monitor in the "find
TTD block" procedure through a fix to the network metadata files which
hasn't been upstreamed yet.

Other changes:

* Disabled Geth snap sync in the simulation

When all Geth nodes are configured to run with snap sync enabled, they all
start snap sync after the first forkchoiceUpdated which causes the BNs to
skip validator duties because the EL is syncing. The snap sync never completes
due to poor connectivity between the Geth nodes in the simulation.
2023-01-13 12:21:58 +02:00
Zahary Karadjov b06502bf65
Gnosis const preset 2023-01-13 04:28:29 +02:00
henridf 309f8690de
Wire up engine_newPayloadV3 (#4482)
* Wire up eip4844's newPayloadV3

* Add eip4844 test

* Update AllTests-mainnet.md and fix typo
2023-01-11 18:21:19 +00:00
tersec 787703bd0c
use v1.3.0-rc.0 consensus spec test vectors (#4472) 2023-01-09 15:15:43 +01:00
Jacek Sieka 0ba9fc4ede
History pruning (fixes #4419) (#4445)
Introduce (optional) pruning of historical data - a pruned node will
continue to answer queries for historical data up to
`MIN_EPOCHS_FOR_BLOCK_REQUESTS` epochs, or roughly 5 months, capping
typical database usage at around 60-70gb.

To enable pruning, add `--history=prune` to the command line - on the
first start, old data will be cleared (which may take a while) - after
that, data is pruned continuously.

When pruning an existing database, the database will not shrink -
instead, the freed space is recycled as the node continues to run - to
free up space, perform a trusted node sync with a fresh database.

When switching on archive mode in a pruned node, history is retained
from that point onwards.

History pruning is scheduled to be enabled by default in a future
release.

In this PR, `minimal` mode from #4419 is not implemented meaning
retention periods for states and blocks are always the same - depending
on user demand, a future PR may implement `minimal` as well.
2023-01-07 10:02:15 +00:00
tersec d1b799eb64
bump nim-web3 for correct getPayloadV2 response signature (#4471) 2023-01-06 21:06:45 +00:00
Tanguy 75d0e0d4c8
Bump libp2p (#4470) 2023-01-06 19:33:14 +00:00
Etan Kissling 2184fd2322
bump `nim-eth`, extend empty block fallback for EIP4844 (#4425)
Implements `emptyPayloadToBlockHeader` for EIP-4844.
https://github.com/status-im/nim-eth/pull/570
2022-12-20 20:00:56 +01:00
zah 07d4160e00
Migrating the deposit contract snapshot can no longer fail on start-up (#4438)
The missing piece of data that had to be obtained previously from
the configured EL client is now part of the network metadata baked
into the binary.
2022-12-19 18:19:48 +01:00
tersec d269d82b71
use v1.3.0-alpha.2 EF consensus spec test vectors (#4430) 2022-12-15 01:51:06 +00:00
Jacek Sieka f3305189f1
bump & ci fixes (#4409) 2022-12-09 17:06:29 +01:00
Jacek Sieka 55a95bca3c
bump secp256k1 (#4388)
this time taking into account arm vs x86_64
2022-12-05 16:58:05 +00:00
tersec f1584eef2f
bump nim-eth to reduce undefined behavior from Nim (#4384) 2022-12-02 08:36:42 +01:00
zah 32039e95f0
Switch to Nim 1.6.11 (#4380) 2022-12-01 08:05:47 +02:00
Zahary Karadjov 7dd4718735
Version 22.11.0 2022-12-01 07:38:54 +02:00
Jacek Sieka cd160b5650
more strict read-only database mode (#4362)
* avoid creating pre-altair backwards compatibility tables
* allow running ncli_db era export without above tables present
* drop unused pre-altair backwards compatibility tables
* run benchmark on read-ronly database
* fix running benchmark from genesis
2022-11-28 23:21:58 +00:00
Etan Kissling c941dc801f
bump `nim-eth`, extend empty block fallback for Capella (#4357)
Implements `emptyPayloadToBlockHeader` for Capella.
https://github.com/status-im/nim-eth/pull/562
2022-11-28 14:41:25 +01:00
tersec b7cd0fe4a1
Revert "bump secp256k1 (#4356)" (#4359)
This reverts commit 60e01dcf78.
2022-11-25 13:07:16 +00:00
Jacek Sieka 60e01dcf78
bump secp256k1 (#4356)
See
eb5868e069
for changes
2022-11-25 10:51:20 +00:00
Jacek Sieka 04392c236b
bumps (#4352)
* build&style fixes
* use multithreading for LTO outside of make too
* blst 0.3.10 with no significant changes
2022-11-24 20:56:02 +00:00
tersec e965d5e0e9
bump nim-web3 to get withdrawal support in Engine API call sigs/types (#4348) 2022-11-24 09:52:45 +02:00
zah d07113767d
Bugfix: The VC was producing invalid sync committee contributions (#4343)
Since the sync committee duties are no longer updated on every slot
and previously the sync committee aggregators selection proofs were
generated during the duties update, this now resulted in the client
using stale selection proofs (they must be generated at each slot).

The fix consists of moving the selection proof generation logic in
a different function which is properly executed on each slot.

Other changes:

* The logtrace tool has been enhanced with a framework for adding
  new simpler log aggregation and analysis algorithms.
  The default CI testnet simulation will now ensure that the blocks
  in the network have reasonable sync committee participation.
2022-11-24 09:46:35 +02:00
tersec 1146470f7d
use v1.3.0-alpha.1 consensus spec test vectors (#4338) 2022-11-21 08:44:49 +01:00
Jacek Sieka cc1464a935
readd bearssl/cacert 2022-11-20 08:20:23 +01:00
Jacek Sieka 64322a3d45
prater: update CONFIG_NAME (#4322) 2022-11-15 17:35:48 +00:00
Jacek Sieka 367a13df34
stew: bump (#4323)
fix Opt constants, cleanups
2022-11-11 18:07:34 +00:00
Kim De Mey 2256a22594
Bump nim-eth for prettier logs in discv5 (#4312) 2022-11-10 16:37:37 +01:00
Jacek Sieka b170a09c47
remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00