//! aere-block-stm: a real Block-STM optimistic-concurrency parallel executor for //! AERE rollup batches. //! //! HONEST SCOPE //! ------------ //! This does NOT make AERE's Layer-1 base execution parallel. AERE's L1 is //! Hyperledger Besu, which executes transactions sequentially; parallelizing //! Besu itself is a Java execution-client fork and is out of scope here. //! //! What this IS: a standalone, correct, benchmarked parallel EVM-style //! transaction executor that AERE's ROLLUP layer (AereRaaSFactory / //! AereRollupSettlement / the rollup sequencer) can call to execute a batch of //! rollup transactions across many CPU cores and commit a single state root. //! The committed result is provably identical to sequential execution //! (serializability), which is exactly what makes the resulting state root a //! valid rollup commitment. //! //! Public API //! ---------- //! - [`sequential::execute_block_sequential`] -- the reference/oracle. //! - [`parallel::execute_block_parallel`] -- the Block-STM executor. //! - [`keccak::state_root`] -- keccak256 commitment over a final state. pub mod keccak; pub mod mvmemory; pub mod parallel; pub mod predict; pub mod scheduler; pub mod sequential; pub mod types; pub mod vm; pub mod workload; pub use parallel::{ execute_block_parallel, execute_block_parallel_predicted, execute_block_parallel_split, ExecStats, }; pub use predict::compute_predicted_preds; pub use sequential::execute_block_sequential; pub use types::{Key, StateMap, TxKind, Txn, Value};