nimbus-eth2/vendor
Jacek Sieka 4ed2e34a9e Revamp attestation pool
This is a revamp of the attestation pool that cleans up several aspects
of attestation processing as the network grows larger and block space
becomes more precious.

The aim is to better exploit the divide between attestation subnets and
aggregations by keeping the two kinds separate until it's time to either
produce a block or aggregate. This means we're no longer eagerly
combining single-vote attestations, but rather wait until the last
moment, and then try to add singles to all aggregates, including those
coming from the network.

Importantly, the branch improves on poor aggregate quality and poor
attestation packing in cases where block space is running out.

A basic greed scoring mechanism is used to select attestations for
blocks - attestations are added based on how much many new votes they
bring to the table.

* Collect single-vote attestations separately and store these until it's
time to make aggregates
* Create aggregates based on single-vote attestations
* Select _best_ aggregate rather than _first_ aggregate when on
aggregation duty
* Top up all aggregates with singles when it's time make the attestation
cut, thus improving the chances of grabbing the best aggregates out
there
* Improve aggregation test coverage
* Improve bitseq operations
* Simplify aggregate signature creation
* Make attestation cache temporary instead of storing it in attestation
pool - most of the time, blocks are not being produced, no need to keep
the data around
* Remove redundant aggregate storage that was used only for RPC
* Use tables to avoid some linear seeks when looking up attestation data
* Fix long cleanup on large slot jumps
* Avoid some pointers
* Speed up iterating all attestations for a slot (fixes #2490)
2021-04-13 20:24:02 +03:00
..
NimYAML@ca82b5e884 bump NimYAML 2021-02-25 14:20:26 +02:00
asynctools@c478bb7426 Local sim now includes a prometheus server, a Ganache instance and a simulation dashboard server (in Tmux mode) 2020-06-22 17:30:04 +03:00
eth2-testnets@5b4e32779b v1.0.12 2021-03-24 03:23:14 +02:00
jswebsockets@ff0ceecc4c Local sim now includes a prometheus server, a Ganache instance and a simulation dashboard server (in Tmux mode) 2020-06-22 17:30:04 +03:00
karax@32de202845 bump submodules (#2279) 2021-02-02 19:02:52 +01:00
news@002b21b492 Support for fallback web3 providers; Fix resource leaks on Eth1 monitor restarts 2021-04-08 12:46:42 +03:00
nim-bearssl@0a7401ad46 Bump nim-bearssl to include latest fixes in submodule repository and cacert.pem. (#2354) 2021-02-24 19:22:40 +01:00
nim-blscurve@fd4956f5d6 BLST v0.3.3 2021-03-08 14:43:48 +02:00
nim-chronicles@ea0368cc30 Bump modules to take advantage of the new Json format flavors support 2021-03-25 09:37:35 +02:00
nim-chronicles-tail@858e4ea2ed Fix some logical typos introduced in the rebase 2020-06-22 17:30:04 +03:00
nim-chronos@895fc53193 bump chronos (#2476) 2021-04-06 13:58:36 +02:00
nim-confutils@f091a70a5b Bump modules to take advantage of the new Json format flavors support 2021-03-25 09:37:35 +02:00
nim-eth@16802c0e52 Fix minor exception effect issues (#2448) 2021-03-24 17:20:55 +01:00
nim-eth2-scenarios@f0827c8b2f bump num-eth2-scenarios from v1.1.0-alpha.2 to v1.1.0-alpha3 (#2481) 2021-04-07 13:52:17 +00:00
nim-faststreams@99e89eb1e5 Bump modules; Compile with DEBUG logs by default 2021-02-19 08:44:13 +02:00
nim-http-utils@613ad40f00 Fix sync_manager.nim to return proper status. 2021-04-09 21:42:13 +03:00
nim-json-rpc@7a9d118929 Support for fallback web3 providers; Fix resource leaks on Eth1 monitor restarts 2021-04-08 12:46:42 +03:00
nim-json-serialization@fe8a82ca76 Bump modules to take advantage of the new Json format flavors support 2021-03-25 09:37:35 +02:00
nim-libbacktrace@40be35148e dist: enable libbacktrace on ARM and ARM64 2021-03-15 14:38:39 +02:00
nim-libp2p@6b930ae7e6 bump libp2p to lastest master 2021-04-12 20:28:39 +03:00
nim-metrics@105af2bfbd chronos-based metrics (#2432) 2021-03-19 10:36:38 +01:00
nim-nat-traversal@8994b67b07 bump nat, avoid one more finalizer (#2209) 2020-12-31 15:58:31 +01:00
nim-normalize@db9a74ad6a Address #1694 2020-10-06 15:46:22 +03:00
nim-presto@8943d3fd6c Address #2491. 2021-04-13 17:07:41 +03:00
nim-prompt@b0ea27c34c Integrate nim-prompt 2019-10-07 23:56:34 +09:00
nim-protobuf-serialization@d79b5c8849 Bump modules to take advantage of the new Json format flavors support 2021-03-25 09:37:35 +02:00
nim-rocksdb@6aab1e0dd6 bumps (#2214) 2021-01-07 13:12:37 +01:00
nim-secp256k1@67ebdfa801 Windows binary release 2021-02-04 10:25:44 +02:00
nim-serialization@f9a1121b87 Bump modules to take advantage of the new Json format flavors support 2021-03-25 09:37:35 +02:00
nim-snappy@be86aed2ad Bump modules; Compile with DEBUG logs by default 2021-02-19 08:44:13 +02:00
nim-sqlite3-abi@07039dd887 bump submodules (#2279) 2021-02-02 19:02:52 +01:00
nim-stew@7d2790fdf4 Revamp attestation pool 2021-04-13 20:24:02 +03:00
nim-stint@bae3fc6ee4 bumps (#2214) 2021-01-07 13:12:37 +01:00
nim-testutils@b5956a1b4b bumps 2021-03-22 20:53:27 +01:00
nim-unicodedb@7c6ee4bfc1 bump submodules 2020-03-18 17:20:34 +01:00
nim-unittest2@e788deab3d bumps 2021-03-22 20:53:27 +01:00
nim-web3@75a1a0e5d8 json cleanups (#2456) 2021-03-26 15:11:06 +01:00
nim-zxcvbn@ea6de3427d Address #1690 Min password entropy 2020-10-16 19:34:26 +03:00
nimbus-benchmarking@00e0188b80 bump vendor/nimbus-benchmarking 2020-12-16 14:11:11 +01:00
nimbus-build-system@e7694f16ce Revert "Nim-1.2.10" (#2411) 2021-03-15 16:26:41 +01:00
nimbus-security-resources@145e12aaad Finish the 'create wallet' command; Addresses #1319 2020-07-28 07:36:25 +03:00
nimcrypto@a065c17418 bump nimcrypto (#1802) 2020-10-03 11:21:45 +02:00
websocket.nim@28cc44c8de Local sim now includes a prometheus server, a Ganache instance and a simulation dashboard server (in Tmux mode) 2020-06-22 17:30:04 +03:00