An implement of Block-STM,which still under development.
We want to reach a balance between theory and practice.
So,we have tried our best to make the design of this library corresponds to the Block-STM paper.
Besides,for better re-produceable performace,we have applied many implement techs from aptos-core
to boost the performance of this library.
use cargo test --all-features -- --nocapture
to test the correctness of parallel execute,whose outcome should be consistent with sequential execute.
Note: Currently,we generate random txns for each correctness test,and parallel execute only once.Idealy,we should parallel execute multiple times to ensure deterministic of parallel execute in each test. Additionally,correctness test is a dead loop,which will test forever until test failure/blocking.
use cargo bench --features <testsuites>
to benchmark the performace (throughput) of sequential/parallel execute.
- --features simulated_transfer
- --features aptos_transfer
Note:
Currently,for simulated_transfer
benchmark,we add
std::thread::sleep(std::time::Duration::from_micros(100))
before each execution of transaction to simulate smart contract execution.
use cargo bench --bench <bench> --features <testsuite> -- --profile-time <profile-time>
to profiling.
Sadly, our implement of block-stm currently doesn't support DeltaOp
and any other features in aptos-core
,which make the performace of this library exactly poor.
Besides, please try to search all TODO
or FIXME
in source code to check the problems.