Skip to content

fky2015/substrate-MCA

Repository files navigation

Substrate with PBFT

This repo implement PBFT, Tendermint, and Jasmine as alternatives to GRANDPA.

Usage

  1. Setup Rust. Add nightly toolchain and wasm target.
  2. Clone repos. (Under the same folder)
git clone https://github.com/fky2015/finality-tendermint.git
git clone https://github.com/fky2015/finality-pbft.git
git clone https://github.com/fky2015/finality-jasmine.git
git clone https://github.com/fky2015/bit-substrate.git

NOTE: To build cargo b --bin node-template, you need finality-pbft & bit-substrate. To build cargo b --bin node-tendermint, you need finality-tendermint & bit-substrate. To build cargo b --bin node-jasmine, you need finality-jasmine & bit-substrate

Place them under a same directory.

  1. Build.
cd bit-substrate
# build PBFT node
cargo build -p node-template
# build Tendermint node
cargo build -p node-tendermint
# build Jasmine node
cargo build -p node-jasmine
  1. Run node.
./target/debug/node-template --dev --tmp
# or for Tendermint
./target/debug/node-tendermint --dev --tmp
# or for Jasmine
./terget/debug/node-jasmine --dev --tmp

Caveat

This implementation of the algorithm is experimental and not intended for production use.

The algorithm implementation does not affect upper layers. If you want to verify your upper-layer works, you can always first implement it on top of the original one.

Test script

Test scripts are in the ./pbft-test-scripts/, ./tendermint-test-scripts/, ./jasmine-test-scripts/. Run from project root dir such as bash ./pbft-test-scripts/single.sh.

Info

There is a substrate-contracts-node campatible version bit-substrate-contracts-node.

This is campatible to Substrate May 12th, 2022.

For the PBFT implementation details, please visit finality-pbft. For the Tendermint implementation details, please visit finality-tendermint For the Jasmine implementation details, please visit finality-jasmine

In below is the origin README.


Substrate · GitHub license GitLab Status PRs Welcome Matrix

Substrate is a next-generation framework for blockchain innovation 🚀.

Trying it out

Simply go to docs.substrate.io and follow the installation instructions. You can also try out one of the tutorials.

Contributions & Code of Conduct

Please follow the contributions guidelines as outlined in docs/CONTRIBUTING.adoc. In all communications and contributions, this project follows the Contributor Covenant Code of Conduct.

Security

The security policy and procedures can be found in docs/SECURITY.md.

License

The reason for the split-licensing is to ensure that for the vast majority of teams using Substrate to create feature-chains, then all changes can be made entirely in Apache2-licensed code, allowing teams full freedom over what and how they release and giving licensing clarity to commercial teams.

In the interests of the community, we require any deeper improvements made to Substrate's core logic (e.g. Substrate's internal consensus, crypto or database code) to be contributed back so everyone can benefit.