nimbus-eth1/nimbus/common
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
..
chain_config.nim Add Holesky deposit contract address (#2915) 2024-12-06 10:06:52 +00:00
chain_config_hash.nim Revert "Adopt latest changes to requests hash computation" (#2892) 2024-11-29 16:13:08 +07:00
common.nim Offload signature checking to taskpools 2024-12-11 15:14:03 +01:00
context.nim replace deprecated types (#2704) 2024-10-16 08:34:12 +07:00
evmforks.nim Bump nim-evmc to 730d35d8572e1b3957b0c6c986ecd86413976da0 (#2879) 2024-11-27 16:08:14 +07:00
genesis.nim Revert "Adopt latest changes to requests hash computation" (#2892) 2024-11-29 16:13:08 +07:00
genesis_alloc.nim Remove more goerli data (#2249) 2024-05-30 11:49:47 +00:00
hardforks.nim Bump nim-evmc to 730d35d8572e1b3957b0c6c986ecd86413976da0 (#2879) 2024-11-27 16:08:14 +07:00
manager.nim Fix keystore loader bug (#2774) 2024-10-24 04:07:06 +00:00