Code Monkey home page Code Monkey logo

1220292040 / block-stm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from danielxiangzl/block-stm

0.0 0.0 0.0 121.51 MB

Diem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world.

Home Page: https://diem.com

License: Apache License 2.0

Shell 0.57% JavaScript 2.89% C++ 0.01% Python 0.13% Java 0.03% Go 0.02% C# 0.03% Rust 94.09% TypeScript 0.30% CSS 0.73% Swift 0.02% Makefile 0.01% HTML 0.01% Smarty 0.02% HCL 0.88% Dockerfile 0.13% Mustache 0.04% MDX 0.11%

block-stm's Introduction

Block-STM

This repository implements and benchmarks Block-STM and other baselines for the paper Block-STM: Scaling Blockchain Execution by Turning Ordering Curse to a Performance Blessing. The implementation of Block-STM has been merged on the main branch of the Diem blockchain open source code-base, see PR.

Branches block_stm and aptos implement and benchmark Block-STM with Diem peer-to-peer transactions and Aptos peer-to-peer transactions, respectively. Similarly, branches bohm and litm implement and benchmark Bohm and LiTM with Diem peer-to-peer transactions, respectively.

Run Block-STM:

  1. ./scripts/dev_setup.sh
  2. cd diem-move/diem-transaction-benchmarks/src
  3. cargo run --release main

Use taskset commands to run experiments with different threads number.

Set parameters (number of accounts/transactions/warmup-runs/runs) in diem-move/diem-transaction-benchmarks/src/main.rs.

let acts = [2, 10, 100, 1000, 10000];
let txns = [1000, 10000];
let num_warmups = 2;
let num_runs = 10;

Run sequential baseline:

  1. ./scripts/dev_setup.sh
  2. cd diem-move/diem-transaction-benchmarks/benches
  3. cargo bench peer_to_peer

Set parameters (number of accounts/transactions) in diem-move/diem-transaction-benchmarks/src/transactions.rs.

/// The number of accounts created by default.
pub const DEFAULT_NUM_ACCOUNTS: usize = 100;

/// The number of transactions created by default.
pub const DEFAULT_NUM_TRANSACTIONS: usize = 1000;

Note to readers: On December 1, 2020, the Libra Association was renamed to Diem Association. The project repos are in the process of being migrated. All projects will remain available for use here until the migration to a new GitHub Organization is complete.

Diem Logo

Diem Rust Crate Documentation (main) License grcov test history Automated Issues Discord chat

Diem Core implements a decentralized, programmable database which provides a financial infrastructure that can empower billions of people.

Note to Developers

  • Diem Core is a prototype.
  • The APIs are constantly evolving and designed to demonstrate types of functionality. Expect substantial changes before the release.
  • We’ve launched a testnet that is a live demonstration of an early prototype of the Diem Blockchain software.

Contributing

To begin contributing, sign the CLA. You can learn more about contributing to the Diem project by reading our Contribution Guide and by viewing our Code of Conduct.

Getting Started

Learn About Diem

Try Diem Core

Technical Papers

Blog

Community

License

Diem Core is licensed as Apache 2.0.

block-stm's People

Contributors

bmwill avatar davidiw avatar joshlind avatar msmouse avatar meng-xu-cs avatar gregnazario avatar phlip9 avatar dependabot[bot] avatar huitseeker avatar wrwg avatar xli avatar sblackshear avatar rexhoffman avatar dependabot-preview[bot] avatar sunshowers avatar zekun000 avatar vgao1996 avatar ma2bd avatar mimoo avatar lightmark avatar sausagee avatar ankushagarwal avatar metajack avatar junkil-park avatar emmazzz avatar bothra90 avatar zihaoccc avatar rustielin avatar dimroc avatar runtian-zhou avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.