Home

Awesome

Plasma service

The goal of this project is for a plasma user (or a plasma service provider) to be able to run on a server or its own computer a watcher that listen for any issue on the plasma chain and immediately react and exit the plasma chain or challenge invalid data

Workflows

Based on https://github.com/omisego/elixir-omg/blob/master/docs/api_specs/status_events_specs.md#byzantine-events

EventTaskImplementation
invalid_exitchallengeStandardExitinvalid-exit.yml
unchallenged_exitstartInFlightExitTODO
invalid_blockstartInFlightExitTODO
block_withholdingstartInFlightExitTODO
noncanonical_ifechallengeInFlightExitNotCanonicalTODO
invalid_ife_challengerespondToNonCanonicalChallengeTODO
<!-- | piggyback_available | | | invalid_piggyback | | -->

Architecture

   +-------------------+               +-------------------+
   |                   |               |                   |
   |   Plasma Watcher  |               |  Plasma Contract  |
   |                   |               |                   |
   +-------------------+               +-------------------+
                |                                ^
                |                                |
           invalid_exit                  challengeStandardExit
                |                                |
                |                                |
                |    +------------------+        |
                +--->|                  |--------+
                     |  Plasma Process  |
                     |                  |
                     +------------------+
                     | PRIVATE_KEY      |
                     +------------------+

Start the Plasma Guard

If you don't already have mesg you should install and run it with:

npm i -g mesg-cli
mesg-cli daemon:start

more information

mesg-cli process:dev ./invalid-exit.yml \
     --env PRIVATE_KEY=$ALICE_PRIVATE_KEY \
     --env PROVIDER_ENDPOINT=$PROVIDER_ENDPOINT \
     --env PLASMA_ADDRESS=$PLASMA_ADDRESS \
     --env PLASMA_ABI="$(curl -s https://raw.githubusercontent.com/omisego/omg-js/v2.0.0-v0.2/packages/omg-js-rootchain/src/contracts/RootChain.json | jq .abi)"

Create an invalid exit

Check how to create an invalid exit