Commit Graph

1125 Commits

Author SHA1 Message Date
Jacek Sieka 1ef7d237cc
Shared validator pubkey (#5883)
This PR allows sharing the pubkey data between validators by using a
thread-local cache for pubkey data, netting about a 400mb mem usage
reduction on holesky due to us keeping 3 permanent + several ephemeral
state copies in memory at all times and each state copy holding a full
validator.

The PR also introduces a hash cache for the key which gives ~14% speedup
for a full state `hash_tree_root` - the key makes up for a large part of
the `Validator` htr time.

Finally, the time it takes to copy a state goes down as well from ~80m
ms to ~60, for reasons similar to htr.

We use a `ptr` even if a `ref` could in theory have been used - there is
not much practical benefit to a `ref` (given it's mutable) while a `ptr`
is cheaper and easier to copy (when copying temporary states).

We could go further and cache a cooked pubkey but it turns out this is
quite intrusive - in all the relevant places, we're already using a
cooked key from the immutable validator data so there are no immediate
performance gains of doing so while managing the compressed -> cooked
key mapping would become more difficult - something for a future PR
perhaps.

Co-authored-by: Etan Kissling <etan@status.im>
2024-02-21 20:06:19 +01:00
Etan Kissling 86aee03bcf
bump `nim-libbacktrace` to `008de2cd425cbca19f7d922e4e8b209d92313752` (#5931)
- bump `whereami` to `c5f6b015c36964790493841b9b4623184c0f7c3f`
- require minimum of Nim 1.6
2024-02-21 14:26:18 +00:00
Etan Kissling 0c745e2f92
bump `nim-http-utils` to `be57dbc902d36f37540897e98c69aa80f868cb45` (#5928)
- test refc in CI in Nim 2.0 and later
- use non-EOL macOS version for GitHub Actions CI
2024-02-21 14:16:03 +00:00
Etan Kissling e5ba18c55d
bump `nim-zlib` to `45b06fca15ce0f09586067d950da30c10227865a` (#5933)
- bump `csources` to `v1.3.1`
- test refc in CI in Nim 2.0 and later
- use non-EOL macOS version for GitHub Actions CI
2024-02-21 12:06:51 +00:00
Etan Kissling c4535f5bb6
bump `nim-metrics` to `0e768ca7fb7df4798649145a403e7db65cae1f8b` (#5932)
- Upgrade to github actions v4
- Fix 'value' template compilation error
- fix missing import
- Partial instantiation of 'value' template
2024-02-21 11:15:00 +00:00
Etan Kissling d1bce17109
bump `nim-json-rpc` to `8682bb6c858fbcff2f0070c241ce6aae030753a3` (#5930)
- align maximum body size between Websock and HTTP transports
2024-02-21 08:04:36 +00:00
Etan Kissling 1beb603c67
bump `nim-faststreams` to `8ff78919aa5a23aecaf4a647e23cfa8ecda6736a` (#5927)
- test refc in CI in Nim 2.0 and later
- use supported version of macOS
- stop testing Nim C++ backend in GitHub Actions
2024-02-21 05:40:25 +00:00
Etan Kissling 3e2c320b70
bump `nim-eth` to `d8209f623f837d14c43a9e3fd464b0e199c5d180` (#5926)
- Refactor p2pProtocol internals
- Fix chronos related deprecated warnings in discv5 and uTP
- normalise nimble, ci
- Fix chronos related deprecated warnings in uTP code part II
- Remove usage of stew/shim/net
- Upgrade github actions to v4
- Fix two bugs in Receipts RLP encoding/decoding
- Move Ethereum specific RLP encoding tests under tests/common
- Reduce compiler warnings in rlp
- test refc in CI in Nim 2.0 and later
- test Nim 2.0 in CI and use non-EOL macOS version
- Use asyncraises in p2p
- Don't auto write p2pProtocol macro expansion to file
- Fix improper yield usage in rlpx and refine exception handling
2024-02-21 04:31:07 +00:00
Etan Kissling 6d741467f0
bump `nim-confutils` to `0adf3b7db70736061bf12fa23c2fc51f395b289e` (#5925)
- Dynlib fix for status-go integration
- Add ORC testing for the devel branch
- Upgrade github actions to v4
- Add copyright to source code
- Add push raises
- add missing `{.raises.}` to `addConfigFileContent`
2024-02-21 03:54:43 +00:00
Etan Kissling 50872b2fd4
bump `nimcrypto` to `0c6ddab03a99805239b7875f71d2ca95fbed6f85` (#5924)
- use non-EOL macOS version for GitHub Actions CI and rm AppVeyor and Travis configs
2024-02-21 02:44:24 +00:00
Etan Kissling 2a1bf9944d
bump `nim-json-rpc` to `9c65df305390ab01a13788af5aea78cd62dceb2a` (#5923)
- Client also handle error message if id is null
- Client pass meaningful error to newFut when processMessage failed
- Refactoring: extract rpc handler from HTTP and WebSocket server
- Use pragma push/pop pair to disable warning
- http server better exception handling
- Fix CI badge url
- Upgrade github actions to v4
- Revert "Fix CI badge url"
- HttpAuthHook use async raises
- Move CancelledError handling to outer try/except of RpcWebsocketServer
- Implement RPC batch call both in servers and clients
- v0.4.0
- Should compile if chronicles log turned on
- Add framework to support more optional types
- v0.4.2
- test refc in CI in Nim 2.0 and later
- use non-EOL macOS version for GitHub Actions CI
- avoid failing uninitialized `Future`
- Improve batch call example and wrapper comments
- Fix ws and socket client error handling and add test to #212
- Add build test with chronicles to json enabled
2024-02-20 21:27:06 +01:00
Etan Kissling eefe8841ef
bump `nim-stew` to `1662762c0144854db60632e4115fe596ffa67fca` (#5921)
- Add push raises to shims/macros module
- rename `RangeError` -> `RangeDefect` in test name
2024-02-20 21:21:09 +01:00
Etan Kissling 9286eb6795
bump `nim-kzg4844` to `5eba921b1079376403b8b8e1b44c70248eabbc70` (#5922)
- bump `csources` to `v0.4.1`
- test refc in CI in Nim 2.0 and later
- bump `csources` to `v0.4.2`
2024-02-20 18:45:00 +00:00
Etan Kissling 6fe183f0de
bump `nim-websock` to `ed89f58624ba6482225bb6a3169cefd7e632f498` (#5920)
- Reduce compiler warnings when using new chronos
- Upgrade github action to v3
- Fix autobahn tests
- Reenable tests
- Restrict autobahn tests run to merged PR only
- Upgrade github action setup-python to v3 and up/dn artifact to v3
- Reduce compiler warnings
- Fix github actions badge url
- Reduce compiler warnings
- Upgrade to github actions v4
- Revert "Fix github actions badge url"
- Downgrade upload artifact action to v3
- use non-EOL macOS version for GitHub Actions CI
2024-02-20 17:12:09 +00:00
Etan Kissling 8b494c2f26
bump `nim-chronicles` to `ab3ab545be0b550cca1c2529f7e97fbebf5eba81` (#5918)
- Upgrade to github actions v4
- Silence declared but unused warnings when there is no loggging code generated
2024-02-20 15:21:28 +01:00
Etan Kissling 74eeb0b93c
bump `nim-blscurve` to `1002533ad205fa71d60d6fd8f8c283b9352a5314` (#5916)
- update instructions for tracking upstream MIRACL Core
- bump `bls12-381-tests` to `v0.1.2`
- bump `miracl-core` to `0f67878bee7c4108405deb2b0b5e4e58d1ae30fc`
- test refc in CI in Nim 2.0 and later
- rename `milagro.nims` -> `miracl.nims`
- rename `milagro.nim` -> `miracl.nim`
- rename `milagro(Path|_func)` -> `miracl(Path|_func)`
- rename `milagro` references -> `miracl` in documentation
2024-02-20 13:35:22 +01:00
Etan Kissling ba7549a66e
bump `nim-bearssl` to `7640cc6aa859f6d4ad657c892f14c76dc1d34bd5` (#5915)
- test refc in CI in Nim 2.0 and later
2024-02-20 13:31:36 +01:00
Etan Kissling ae12b71ce0
bump `holesky` to `60997dd7e876a67775a7f2d53b852e75bbb2a630` (#5912)
- Add Lodestar holesky bootnode ENRs
2024-02-19 19:27:10 +01:00
tersec ea29e0afc8
use 1.4.0-beta.7-hotfix consensus spec test vectors (#5894) 2024-02-16 04:49:18 +00:00
Eugene Kabanov 211f53582f
Increase buffer sizes to 16348. Which should bring some fresh air to el_manager. (#5893) 2024-02-15 07:01:15 +01:00
Eugene Kabanov 535d599c57
Bump chronos to fix REST server become unresponsive at some cases. (#5892) 2024-02-14 20:31:16 +01:00
Etan Kissling 81b849a2eb
bump `gnosis-chain-configs` to `b02e5dd0bc61f123fa28d027cf95d47ebe2ae05d` (#5885)
- Schedule deneb
2024-02-13 12:07:22 +01:00
Etan Kissling a746063a61
bump `eth2-networks` to `934c948e69205dcf2deb87e4ae6cc140c335f94d` (#5868)
- Schedule Deneb for Mainnet
2024-02-08 19:18:35 +00:00
Eugene Kabanov 464ff68658
Address issues #5675 and #5681. (#5846) 2024-02-07 19:51:36 +00:00
Etan Kissling da567ea994
bump `nim-web3` to `a67213af4f711a7aa94b86ebe3935f8e397197bc` (#5857)
- Synchronize order of `blobGasUsed` / `excessBlobGas` in test
- Reduce compiler warnings
- Upgrade github actions to v4
- v0.3.2
- re-add support for `fromBlock`, `toBlock`, `blockHash` in `eth_getLogs`
2024-02-07 00:46:33 +01:00
Etan Kissling f556b91af0
bump `eth2-networks` to `7433deff7655559078cf60bb67caaaace67fe52b` (#5848)
- Update bootstrap_nodes.txt
2024-02-05 13:40:30 +01:00
Etan Kissling a4c5edaefc
bump `holesky` to `1eac87bdec0fdfcb88d2dbb493014767fe802fa4` (#5849)
- fix: remove eip7516 from chainspec
2024-02-05 11:55:23 +01:00
tersec 5c54eb58e1
bump nim-confutils (#5828) 2024-01-25 14:39:00 +00:00
Etan Kissling 7888622d1e
bump `holesky` to `9d9aabf2d4de51334ee5fed6c79a4d55097d1a43` (#5824)
- add `MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT`
2024-01-24 13:39:06 +01:00
Jacek Sieka 6328c77778
raises for gossip (#5808)
* raises for gossip

* fix light client
2024-01-22 17:34:54 +01:00
tersec ee798af1dd
bump nim-stew (#5814) 2024-01-22 09:44:42 +01:00
Etan Kissling 9acb7b99fe
bump `nim-json-rpc` to `8d79d528412d7cdd022ff91fb6bacd4f5bb01d58` (#5800)
- Fix improper yield usage in json-rpc-websocketserver
- Improve both client and server resilience against fields and elements with null value
2024-01-20 15:21:17 +00:00
Etan Kissling 1d9a3b23f3
bump `nim-libp2p` to `2725be64bacb46997c0959560d833ff946c8cb3b` (#5799)
- improvement(yamux): make the window size configurable
- improvement(ci): improve ci daily workflows
- fix: use a temp var in withValue
2024-01-20 08:03:24 +00:00
Etan Kissling f8a8206406
bump `nim-chronos` to `3ca2c5e6b510c15ce88c94ed25731b30f7ad46b5` (#5798)
- Feature flag for raises support
- HTTP server middleware implementation
- Fix examples documentation
- check leaks after every test
- deprecate `callback=`, UDP fixes
2024-01-20 06:49:49 +00:00
Etan Kissling b057c43048
bump `nim-eth` to `2c6049b1266a7739f4dca86da4e8c65b75797195` (#5802)
- Remove last leftovers of ValidIpAddress
- Fix discv4.send: use addCallback instead of .callback
- Fix a future .callback usage in rlpx
2024-01-20 03:10:47 +00:00
Etan Kissling 8a6dbc3244
bump `nim-json-serialization` to `d9394dc7286064902d825bbc1203d03d7218633a` (#5801)
- Resilience against null fields
2024-01-20 02:28:42 +00:00
Etan Kissling 8b61b9c408
bump `nim-presto` to `9ba9980091fda5c2f71d6c00d1f86be8ae662963` (#5797)
- Adopt asyncraises
- import/export httpserver from route
2024-01-20 01:52:11 +00:00
Etan Kissling a5daa6d7e9
bump `holesky` to `d05bc1cd68dd16a54fb844181191ccaba15bd5ef` (#5796)
- schedule dencun on holesky
2024-01-19 15:40:02 +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 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 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 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
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