nimbus-eth2/vendor
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
..
NimYAML@ab3ff9fad4 NimYAML: bump to 1.1.0 (#5346) 2023-08-24 16:01:34 +02:00
eth2-networks@934c948e69 bump `eth2-networks` to `934c948e69205dcf2deb87e4ae6cc140c335f94d` (#5868) 2024-02-08 19:18:35 +00:00
gnosis-chain-configs@b02e5dd0bc bump `gnosis-chain-configs` to `b02e5dd0bc61f123fa28d027cf95d47ebe2ae05d` (#5885) 2024-02-13 12:07:22 +01:00
goerli@6522ac6684 bump `goerli` to `6522ac6684693740cd4ddcc2a0662e03702aa4a1` (#5687) 2024-01-02 22:39:55 +01:00
holesky@60997dd7e8 bump `holesky` to `60997dd7e876a67775a7f2d53b852e75bbb2a630` (#5912) 2024-02-19 19:27:10 +01:00
nim-bearssl@7640cc6aa8 bump `nim-bearssl` to `7640cc6aa859f6d4ad657c892f14c76dc1d34bd5` (#5915) 2024-02-20 13:31:36 +01:00
nim-blscurve@1002533ad2 bump `nim-blscurve` to `1002533ad205fa71d60d6fd8f8c283b9352a5314` (#5916) 2024-02-20 13:35:22 +01:00
nim-chronicles@ab3ab545be bump `nim-chronicles` to `ab3ab545be0b550cca1c2529f7e97fbebf5eba81` (#5918) 2024-02-20 15:21:28 +01:00
nim-chronos@7b02247ce7 Increase buffer sizes to 16348. Which should bring some fresh air to el_manager. (#5893) 2024-02-15 07:01:15 +01:00
nim-confutils@0adf3b7db7 bump `nim-confutils` to `0adf3b7db70736061bf12fa23c2fc51f395b289e` (#5925) 2024-02-21 03:54:43 +00:00
nim-eth@d8209f623f bump `nim-eth` to `d8209f623f837d14c43a9e3fd464b0e199c5d180` (#5926) 2024-02-21 04:31:07 +00:00
nim-eth2-scenarios@6132c92f4d use 1.4.0-beta.7-hotfix consensus spec test vectors (#5894) 2024-02-16 04:49:18 +00:00
nim-faststreams@8ff78919aa bump `nim-faststreams` to `8ff78919aa5a23aecaf4a647e23cfa8ecda6736a` (#5927) 2024-02-21 05:40:25 +00:00
nim-http-utils@be57dbc902 bump `nim-http-utils` to `be57dbc902d36f37540897e98c69aa80f868cb45` (#5928) 2024-02-21 14:16:03 +00:00
nim-json-rpc@8682bb6c85 bump `nim-json-rpc` to `8682bb6c858fbcff2f0070c241ce6aae030753a3` (#5930) 2024-02-21 08:04:36 +00:00
nim-json-serialization@c869dae884 Shared validator pubkey (#5883) 2024-02-21 20:06:19 +01:00
nim-kzg4844@5eba921b10 bump `nim-kzg4844` to `5eba921b1079376403b8b8e1b44c70248eabbc70` (#5922) 2024-02-20 18:45:00 +00:00
nim-libbacktrace@008de2cd42 bump `nim-libbacktrace` to `008de2cd425cbca19f7d922e4e8b209d92313752` (#5931) 2024-02-21 14:26:18 +00:00
nim-libp2p@2725be64ba bump `nim-libp2p` to `2725be64bacb46997c0959560d833ff946c8cb3b` (#5799) 2024-01-20 08:03:24 +00:00
nim-metrics@0e768ca7fb bump `nim-metrics` to `0e768ca7fb7df4798649145a403e7db65cae1f8b` (#5932) 2024-02-21 11:15:00 +00:00
nim-nat-traversal@3398a649f4 bump `nim-nat-traversal` to `3398a649f4e895cae86fbe85b54769ebc0967878` (#5785) 2024-01-19 04:10:33 +01:00
nim-normalize@06f715f0db bumps (#4942) 2023-05-13 09:58:47 +00:00
nim-presto@8e95e747d1 Address issues #5675 and #5681. (#5846) 2024-02-07 19:51:36 +00:00
nim-results@1fad36e938 bump `nim-results` to `1fad36e938c879901660fd345c8354603f5367d6` (#5790) 2024-01-19 07:19:56 +00:00
nim-secp256k1@2bc945cc9e bump `nim-secp256k1` to `2bc945cc9ebfae1b688f72ea59f78fd23873d1d4` (#5784) 2024-01-18 19:04:35 +00:00
nim-serialization@4d541ec434 bump `nim-serialization` to `4d541ec43454809904fc4c3c0a7436410ad597d2` (#5707) 2024-01-06 22:45:36 +00:00
nim-snappy@ef7be6daaf Support both snappy-encoded and pure SSZ genesis states 2023-09-12 01:52:15 +03:00
nim-sqlite3-abi@362e1bd9f6 sqlite: bump to 3.40.1 (#4649) 2023-03-02 18:59:50 +00:00
nim-ssz-serialization@9f9c08b9a7 Shared validator pubkey (#5883) 2024-02-21 20:06:19 +01:00
nim-stew@1662762c01 bump `nim-stew` to `1662762c0144854db60632e4115fe596ffa67fca` (#5921) 2024-02-20 21:21:09 +01:00
nim-stint@711cda4456 stint: bump (#5459) 2023-09-25 21:08:48 +02:00
nim-taskpools@15e23ef1cf bump `nim-taskpools` to `15e23ef1cf0860330dcc32f50fcce5f840031e28` (#5709) 2024-01-07 00:46:06 +00:00
nim-testutils@b56a5953e3 small bumps (#5164) 2023-07-06 10:16:27 +00:00
nim-toml-serialization@2bdfec0eb7 bump `nim-toml-serialization` to `2bdfec0eb7156d5773bc5d25fca3b3b77d0869f1` (#5791) 2024-01-19 08:33:46 +00:00
nim-unicodedb@04a154eee0 bump `nim-unicodedb` to `04a154eee0b8a2ad313e24ba46a4e5b4e0b9036f` (#5711) 2024-01-07 02:18:29 +00:00
nim-unittest2@262b697f38 bump stew/unittest2 (#5600) 2023-11-15 13:17:50 +01:00
nim-web3@a67213af4f bump `nim-web3` to `a67213af4f711a7aa94b86ebe3935f8e397197bc` (#5857) 2024-02-07 00:46:33 +01:00
nim-websock@ed89f58624 bump `nim-websock` to `ed89f58624ba6482225bb6a3169cefd7e632f498` (#5920) 2024-02-20 17:12:09 +00:00
nim-zlib@45b06fca15 bump `nim-zlib` to `45b06fca15ce0f09586067d950da30c10227865a` (#5933) 2024-02-21 12:06:51 +00:00
nim-zxcvbn@e9e5237847 small bumps (#5164) 2023-07-06 10:16:27 +00:00
nimbus-benchmarking@dff3634b5d /bin/bash -> /usr/bin/env bash (needed on NixOS) 2021-11-15 15:45:01 +02:00
nimbus-build-system@3866a8ab98 bump `nimbus-build-system` to `3866a8ab98fc6e0e6d406b88800aed72163d5fd4` (#5754) 2024-01-15 18:24:24 +01:00
nimbus-security-resources@ce9945b1b1 Add Nimble lock file (#3560) 2022-03-30 22:00:03 +00:00
nimcrypto@0c6ddab03a bump `nimcrypto` to `0c6ddab03a99805239b7875f71d2ca95fbed6f85` (#5924) 2024-02-21 02:44:24 +00:00
sepolia@ff09a161f6 bump `sepolia` to `ff09a161f61959285c64b355d452cd25eae094bd` (#5795) 2024-01-19 04:09:17 +01:00