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
Event | Task | Implementation |
---|---|---|
invalid_exit | challengeStandardExit | invalid-exit.yml |
unchallenged_exit | startInFlightExit | TODO |
invalid_block | startInFlightExit | TODO |
block_withholding | startInFlightExit | TODO |
noncanonical_ife | challengeInFlightExitNotCanonical | TODO |
invalid_ife_challenge | respondToNonCanonicalChallenge | TODO |
+-------------------+ +-------------------+
| | | |
| Plasma Watcher | | Plasma Contract |
| | | |
+-------------------+ +-------------------+
| ^
| |
invalid_exit challengeStandardExit
| |
| |
| +------------------+ |
+--->| |--------+
| Plasma Process |
| |
+------------------+
| PRIVATE_KEY |
+------------------+
If you don't already have mesg you should install and run it with:
npm i -g mesg-cli
mesg-cli daemon:start
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)"