General Block-STM execution engine for EVM in Go
- Block-STM with lazy update.
- Minimize state synchronization overheads.
- Optimized concurrent data structures.
- Support optional DAG for full nodes to sync from sequencer faster.
- Support any executor.
- Use hashmap for type-safe lock-free thread-safe concurrent map.
- Use gpq for concurrent safe priority queue.
- Use atomic index to manage validation and execution tasks.
- Implement an EVM executor task.
- Test real mainnet blocks, and validate the results.
- Benchmarks between parallel and sequential execution.
- Profiling and optimizations.