Plasm is a Substrate Runtime Module Library which allows developers to add Plasma functions to their Substrate chain easily and seamlessly. Since Plasm is an SRML, developers can also make both plasma parent chains and plasma child chains with Substrate.
WARNING: This is a proof-of-concept prototype. This implementation is NOT ready for production use.
Plasm is a Substrate Runtime Module Library which allows developers to add Plasma functions to their Substrate chain. By adding a Plasm Substrate Runtime Module Library, you can get scalable blockchains within a few minutes.
Some people might not know Substrate Runtime Module Library. Basically speaking, Substrate consists of 2 components, Substrate Core and Substrate Runtime Module Library aka SRML. We can customize Substrate Core with SRML and make an original Substrate chain.
Other people might not know Plasma. Plasma is a layer2 scaling solution which makes it possible for scalable computation by structuring economic incentives to operate the blockchain autonomously without the operator’s management. Ideally, it brings infinite scalability into your blockchain.
Based on the above, Plasm has some features.
- The first Rust implementation of Plasma SRML.
- Plasm is a simple but versatile SRML and makes it easier for developers to make a Plasma chain with Substrate.
- Plasm deals with many types of “Plasmas” in the future. Currently, we are providing UTXO models.
- Substrate chain can be both a plasma parent chain and a plasma child chain.
Since we are making an SRML, we can also make a scalable chain with Substrate. Once Polkadot is launched, we will connect our root chain to Polkadot, and we aim to be one of the parachains.
We call this chain Plasm Network. Plasm Network is a scaling DApps Platform based on Substrate. The point is Polkadot Relaychain doesn’t support smart contracts by design. So, people in the Polkadot ecosystem need Parachains that support smart contracts well. From the developer’s perspective, he needs to choose on which Parachain his decentralized application should be built. Scalability must be one of the most important criteria for him to choose which Parachain to use. This is where Plasm Network comes in.
- Plasm node binaries releases.
- Node custom types.
Latest version you can try to build from source.
Ensure you have Rust and the support software installed:
curl https://sh.rustup.rs -sSf | sh
# on Windows download and run rustup-init.exe
# from https://rustup.rs instead
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
You will also need to install the following dependencies:
- Linux:
sudo apt install cmake git clang libclang-dev build-essential
- Mac:
brew install cmake git llvm
- Windows: Download and install the Pre Build Windows binaries of LLVM from http://releases.llvm.org/download.html
Install additional build tools:
cargo install --git https://github.com/alexcrichton/wasm-gc
Install Plasm node from git source:
cargo install --force --git https://github.com/staketechnologies/Plasm --tag v1.0.0 plasm-cli
Run node in Plasm testnet:
plasm-node
Or run in your local development network:
plasm-node --dev
Install Nix package manager:
curl https://nixos.org/nix/install | sh
Run in Nix shell:
git clone https://github.com/staketechnologies/Plasm && cd Plasm
nix-shell nix/shell.nix --run "cargo run --release"
Since we launched our Plasm Network testnet, we are looking for around 50 validators all over the world. This is a testnet like Ethereum Rinkeby, Kovan, and Ropsten. So, PLM (Plasm Network native token called PLUM) doesn’t have any values. Therefore, there is no incentive to be a validator on the testnet. To solve this problem, We will provide you with a right to be the first validator during the PoA term (between Lockdrop1 and Lockdrop2 described below) on the mainnet if you are a validator on the Plasm testnet.
-
Run a node on Plasm testnet:
plasm-node --validator
-
Apply the validator program:
You can see our demo:
Maintainers
Plasm is licensed under the GPLv3.0 by Stake Technologies Inc.