nimbus-eth1/nimbus
Jacek Sieka 7f76586214
Speed up account ledger a little (#2279)
`persist` is a hotspot when processing blocks because it is run at least
once per transaction and loops over the entire account cache every time.

Here, we introduce an extra `dirty` map that keeps track of all accounts
that need checking during `persist` which fixes the immediate
inefficiency, though probably this could benefit from a more thorough
review - we also get rid of the unused clearCache flag - we start with
a fresh cache on every fresh vmState.

* avoid unnecessary code hash comparisons
* avoid unnecessary copies when iterating
* use EMPTY_CODE_HASH throughout for code hash comparison
2024-06-02 21:21:29 +02:00
..
beacon Validate header timestamp in engine_forkchoiceUpdated (#2278) 2024-06-01 19:14:16 +00:00
common rm unused Nim modules (#2270) 2024-06-01 17:49:46 +07:00
core Speed up account ledger a little (#2279) 2024-06-02 21:21:29 +02:00
db Speed up account ledger a little (#2279) 2024-06-02 21:21:29 +02:00
evm Speed up account ledger a little (#2279) 2024-06-02 21:21:29 +02:00
graphql results: use canonical import (#2248) 2024-05-30 14:54:03 +02:00
rpc results: use canonical import (#2248) 2024-05-30 14:54:03 +02:00
sync Speed up account ledger a little (#2279) 2024-06-02 21:21:29 +02:00
transaction use --styleCheck:error (#2242) 2024-05-30 09:01:07 +00:00
utils Aristo avoid storage trie update race conditions (#2251) 2024-05-30 17:48:38 +00:00
common.nim implement better hardfork management 2022-12-02 13:51:42 +07:00
config.nim Move --trusted-setup-file under ETHEREUM OPTIONS section instead under noCmd (#2257) 2024-05-31 09:36:25 +02:00
constants.nim Add check copyright year linter to CI 2023-11-01 10:41:20 +07:00
errors.nim Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
launcher.nim Add check copyright year linter to CI 2023-11-01 10:41:20 +07:00
makefile Snap sync fix trie interpolation fringe condition (#1457) 2023-02-01 18:56:06 +00:00
nim.cfg import: read from era files (#2254) 2024-05-31 09:13:56 +02:00
nimbus.nim import: read from era files (#2254) 2024-05-31 09:13:56 +02:00
nimbus_desc.nim Remove legacy sync (#2237) 2024-05-29 06:58:33 +02:00
nimbus_import.nim import: nicer stats (#2283) 2024-06-02 13:00:05 +02:00
rpc.nim Implement eth_feeHistory (#2130) 2024-04-16 08:02:42 +07:00
tracer.nim Simplify AccountsLedgerRef complexity (#2239) 2024-05-29 13:06:49 +02:00
transaction.nim Introduce wrapper type for EIP-4844 transactions (#2177) 2024-05-15 10:07:59 +07:00
version.nim Implement engine_getClientVersionV1 (#2233) 2024-05-29 09:20:50 +02:00
vm_compile_info.nim Cleanup unused raises in evm/state and other obsolete informations (#2243) 2024-05-30 09:03:54 +00:00
vm_computation.nim use --styleCheck:error (#2242) 2024-05-30 09:01:07 +00:00
vm_gas_costs.nim implement better hardfork management 2022-12-02 13:51:42 +07:00
vm_internals.nim EVM cleanup 2023-08-29 07:12:31 +07:00
vm_precompiles.nim implement better hardfork management 2022-12-02 13:51:42 +07:00
vm_state.nim Attempt to roll back stateless mode implementation in a single PR (#2209) 2024-05-22 21:01:19 +00:00
vm_state_transactions.nim Attempt to roll back stateless mode implementation in a single PR (#2209) 2024-05-22 21:01:19 +00:00
vm_types.nim Reduce compiler warnings (#2030) 2024-02-16 16:08:07 +07:00