Skip to content

Comsos sdk (Tendermint consensus) side-chain implementation for plasma

License

Notifications You must be signed in to change notification settings

ConjurTech/plasma-mvp-sidechain

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Plasma MVP Sidechain

license

Branch Tests Coverage
develop Build Status codecov
master Build Status codecov

This is the latest Minimum Viable Plasma version.

We have decided to modify our implementation by removing confirmation signatures as described in the More Viable Plasma construction.

Note: This sidechain is being constructed to be compatible with our rootchain contract

Overview

As a layer 2 scaling solution, 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 off chain by a sidechain. This sidechain leverages the Cosmos SDK to create a scalable and flexible blockchain, that can maintain it's security through reporting merkle roots to the root chain. We will be using Tendermint for consensus on this blockchain.

We are using a UTXO model for this blockchain. This allows us to do secure and compact proofs when interacting with the rootchain contract.

Starting a sidechain

In order to run a sidechain with tendermint consensus and a client to form transaction, a plasma node and light client will need to be initialized.

Note: The following assumes you have golang properly setup and all dependecies have already been installed. See Contribution Guidelines for more information.

Plasma Node:

  • Navigate to client/plasmad/ directory
  • Run go install via command line

The plasma node (plasmad) is now installed and can be called from any directory with plasmad

Run plasmad init via command line to start an instance of a plasma node with a connection to a tendermint validator.

Run plasmad start via command line to begin running the plasma node. You should see empty blocks being proposed and committed.

Plasma Light Client:

  • Navigate to client/plasmacli/ directory
  • Run go install via command line

Use plasmacli to run any of the commands for this light client

The light client uses the Ethereum keystore to create and store passphrase encrypted keys in $HOME/.plasmacli/keys/

Plasma Architecture

See our research repository for architectural explanations of our Plasma implementation.

Documentation

See our documentation

Contributing

See our contributing guidelines

About

Comsos sdk (Tendermint consensus) side-chain implementation for plasma

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%