This repo implement PBFT, Tendermint, and Jasmine as alternatives to GRANDPA.
- Setup Rust. Add
nightly
toolchain andwasm
target. - 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 needfinality-pbft & bit-substrate
. To buildcargo b --bin node-tendermint
, you needfinality-tendermint & bit-substrate
. To buildcargo b --bin node-jasmine
, you needfinality-jasmine & bit-substrate
Place them under a same directory.
- 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
- 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
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 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
.
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 is a next-generation framework for blockchain innovation 🚀.
Simply go to docs.substrate.io and follow the installation instructions. You can also try out one of the tutorials.
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.
The security policy and procedures can be found in docs/SECURITY.md
.
- Substrate Primitives (
sp-*
), Frame (frame-*
) and the pallets (pallets-*
), binaries (/bin
) and all other utilities are licensed under Apache 2.0. - Substrate Client (
/client/*
/sc-*
) is licensed under GPL v3.0 with a classpath linking exception.
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.