Implementation of Minimum Viable Plasma compatible with our rootchain contract
There is very little development occuring for this project. We will continue to maintain this repository by thoroughly reviewing any open source contributions. We will provide support and guidance for anyone looking to continue development.
Plasma has two major components: verification and computation. Verification is handled by the rootchain contract, which resolves any disputes and distributes funds accordingly. Computation is handled separately by a sidechain, which maintains its security through reporting proofs via merkle roots to the rootchain contract.
Plasma MVP utilizes a UTXO model, which allows for secure and compact proofs. Learn more about plasma on learnplasma.org!
We are using Tendermint for our consensus protocol. This sidechain currently supports a single validator, but will be updated in the future to support multiple validators.
This script can be used on a fresh server that has no dependencies installed.
curl https://raw.githubusercontent.com/FourthState/plasma-mvp-sidechain/develop/scripts/plasma_install.sh > install.sh
chmod +x install.sh
./install.sh
Requirements:
Pull the latest version of the develop branch.
make install
Plasma Node:
Run plasmad init
to start an instance of a plasma node.
Use the --home <dirpath>
to specify a location where you want your plasma node to exist.
Navigate to <dirpath>/config/
(default is $HOME/.plasmad/config
), set configuration parameters in config.toml and plasma.toml.
Run plasmad start
to begin running the plasma node.
Plasma Client:
Navigate to $HOME/.plasmacli
, set ethereum client configuration parameters in plasma.toml.
Use plasmacli
to run any of the commands for this light client
See our research repository for architectural explanations of our Plasma implementation.
See our documentation
See our contributing guidelines. Join our Discord Server.