Skip to content

Fomalhauthmj/block_stm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An implement of Block-STM,which still under development.

Design

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.

Test

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.

Benchmark

use cargo bench --features <testsuites> to benchmark the performace (throughput) of sequential/parallel execute.

available testsuites

  1. --features simulated_transfer
  2. --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.

Profiling

use cargo bench --bench <bench> --features <testsuite> -- --profile-time <profile-time> to profiling.

Limitations and Known Problems

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.

Acknowledgment

aptos-core

About

An implement of Block-STM

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages