nimbus-eth1/tests
Jacek Sieka f68a5d419f
Offload signature checking to taskpools
In block processing, depending on the complexity of a transaction and
hotness of caches etc, signature checking can actually make up the
majority of time needed to process a transaction (60% observed in some
randomly sampled block ranges).

Fortunately, this is a task that trivially can be offloaded to a task
pool similar to how nimbus-eth2 does it.

This PR introduces taskpools in the most simple way possible, by
performing signature checking concurrently with other TX processing,
assigning a taskpool task per TX effectively.

With this little trick, we're in gigagas land 🎉 on my laptop!

```
INF 2024-12-10 21:05:35.170+01:00 Imported blocks
blockNumber=3874817 b... mgps=1222.707 ...
```

Tests don't use the taskpool for now because it needs manual cleanup and
we don't have a good mechanism in place. Future PR:s should address this
by creating a common shutdown sequence that also closes and cleans up
other resources like the DB.
2024-12-11 15:14:03 +01:00
..
bootstrap config: fix new config based on input from jamie and zahary 2021-09-18 17:34:51 +07:00
customgenesis Revert "Adopt latest changes to requests hash computation" (#2892) 2024-11-29 16:13:08 +07:00
db Added support for namespaces to RocksDb kvstore. (#2066) 2024-03-12 11:04:46 +08:00
engine_api Revert "Adopt latest changes to requests hash computation" (#2892) 2024-11-29 16:13:08 +07:00
fixtures Fix EIP-2537: Precompile for BLS12-381 curve operations (#2603) 2024-09-10 06:56:08 +00:00
graphql Workaround for 0 gas price estimation (#2180) 2024-05-28 13:36:38 +07:00
invalid_keystore Fix keystore loader bug (#2774) 2024-10-24 04:07:06 +00:00
keystore implement more eth rpc and keystore management 2020-07-23 14:54:32 +07:00
replay Cleanup db/core_apps error handling (#2838) 2024-11-07 08:24:21 +07:00
test_aristo Unroll nibble ops (#2894) 2024-12-09 08:15:04 +01:00
test_coredb Cleanup db/core_apps error handling (#2838) 2024-11-07 08:24:21 +07:00
test_forked_chain Fc module can update base also when on parent arc (#2911) 2024-12-05 13:01:57 +07:00
test_jwt_auth Enable JWT authentication for websockets (#1039) 2022-04-06 15:11:13 +01:00
test_txpool Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
all_tests.nim Port p2p to server API (#2769) 2024-11-02 10:30:45 +01:00
all_tests_macro.nim Cache code and invalid jump destination tables (fixes #2268) (#2404) 2024-06-21 09:44:10 +02:00
asynctest.nim Core db and aristo updates for destructor and tx logic (#1894) 2023-11-16 19:35:03 +00:00
macro_assembler.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
nim.cfg import: read from era files (#2254) 2024-05-31 09:13:56 +02:00
persistBlockTestGen.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_allowed_to_fail.nim ForkedChain implementation (#2405) 2024-06-26 07:27:48 +07:00
test_aristo.nim Small deserialization speedup (#2852) 2024-11-20 16:04:32 +01:00
test_block_fixture.nim replace deprecated types (#2704) 2024-10-16 08:34:12 +07:00
test_blockchain_json.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_config.nim Bump nim-eth, nim-web3, nimbus-eth2 (#2344) 2024-06-14 14:31:08 +07:00
test_configuration.nim Move rlp block import into it's own subcommand (#2904) 2024-12-04 20:36:07 +07:00
test_coredb.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_coredb.nim.cfg Store keys together with node data (#2849) 2024-11-20 09:56:27 +01:00
test_difficulty.nim switch to Nim v2.0.12 (#2817) 2024-11-01 19:06:26 +00:00
test_engine_api.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_evm_support.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_filters.nim replace deprecated types (#2704) 2024-10-16 08:34:12 +07:00
test_forked_chain.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_forkid.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_generalstate_json.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_genesis.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_getproof_json.nim Remove trie_defs imports (#2872) 2024-11-25 16:37:57 +01:00
test_graphql.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_helpers.nim switch to Nim v2.0.12 (#2817) 2024-11-01 19:06:26 +00:00
test_jwt_auth.nim replace deprecated types (#2704) 2024-10-16 08:34:12 +07:00
test_ledger.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_multi_keys.nim Cleanup stateless and block witness code. (#2295) 2024-06-08 15:05:00 +07:00
test_op_arith.nim Fix styles and reduce compiler warnings (#2086) 2024-03-20 14:35:38 +07:00
test_op_bit.nim Fix styles and reduce compiler warnings (#2086) 2024-03-20 14:35:38 +07:00
test_op_custom.nim Fix styles and reduce compiler warnings (#2086) 2024-03-20 14:35:38 +07:00
test_op_env.nim post-merge nrpc fix (#2685) 2024-10-03 11:42:24 +00:00
test_op_memory.nim switch to Nim v2.0.12 (#2817) 2024-11-01 19:06:26 +00:00
test_op_misc.nim Fix styles and reduce compiler warnings (#2086) 2024-03-20 14:35:38 +07:00
test_persistblock_json.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_precompiles.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_rpc.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_tools_build.nim Remove `hunter` (#2697) 2024-10-06 10:11:44 +00:00
test_tracer_json.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
test_transaction_json.nim Unify tx validation (#2777) 2024-10-26 09:19:48 +02:00
test_txpool.nim Bump nim-eth and nimbus-eth2 (#2741) 2024-10-16 13:51:38 +07:00
test_txpool2.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
tracerTestGen.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00