Proof-of-concept Implementation of Plasma EVM, forked from Onther-Tech/plasma-evm. You can check the RootChain smart contract here.
- Make enter / exit requests
- Submit NRBs / ORBs
- Finalize block and requests
- Challenge on Null Address Transaction in NRBs
Implementing TrueBit's verification game is under research as well as challenges that requires verification game.
Building geth requires both a Go (version 1.9 or later) and a C compiler. You can install them using your favourite package manager. Once the dependencies are installed, run
We're using Onther-Tech/go-ethereum as an ethereum client instead of ganache-cli
due to the support for WebSocket JSONRPC endpoint. Especially, the client is modified with respect to genesis and developer accounts setup like ganache-cli
.
For the simple start of both clients(ethereum, plasma-evm), you can run run.rootchain.sh
in Onther-Tech/go-ethereum and run.pls.sh
in Onther-Tech/plasma-evm (this is recommended way to setup devlop and test plasma-evm).
Just run make geth
in terminal.
Here is some additional command-line options for Plasma-EVM.
ROOTCHAIN OPTIONS:
--rootchain.opeartorAddress Specify operator address as hex
--rootchain.operatorKey Specify operator key as hex
--rootchain.contract The address of RootChain contract
--rootchain.url JSONRPC endpoint of rootchain provider. Use WebSocket to subscribe events. (default: ws://localhost:8546)
DEVELOPER CHAIN OPTIONS:
--dev.key Comma seperated keys as hex for developer accounts
You can import your private key and HDwallet into new account with keystore
Inside build/bin
directory, run the following command
geth account importKey <privateKey>
Inside build/bin
directory, run the following command
geth account importHDwallet <mnemonic> <path>
Some original geth
tests may fail. You can just test plasam-evm related feature by running
$ go test pls/rootchain_manager_test.go