A first attempt to get the entire slow_blocks to be
BAL¶llel-exec-aware.
- Sequential-path output is unchanged; the `bal` JSON field is
`omitempty`.
- All new types are pure-data snapshots (value receivers, no shared
mutation), so they're safe to copy across goroutine boundaries in the
parallel pipeline.
---------
Co-authored-by: Jared Wasinger <j-wasinger@hotmail.com>
Adapts some of the changes from
https://github.com/ethereum/go-ethereum/pull/34861 . Some other metrics
which are recorded manually during execution in that PR, but can be
deduced from the BAL are TBD.
I've added two bal feature flags:
* `--bal.prefetchworkers <uint>`: this tunes the number of concurrent
go-routines that will be used to perform state fetching tasks by the BAL
prefetcher. Default is `runtime.NumCPUs`, the current behavior in
`bal-devnet-3`.
* `--bal.blockingprefetch`: If set, state prefetching will block the
execution of transactions and state root update.
---------
Co-authored-by: CPerezz <cperezz19@pm.me>