plasma-mvp-sidechain

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2018 License: Apache-2.0

README

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL