Ethereum as a TMSP application.
This means running an Ethereum EVM-based network that uses Tendermint consesnsus instead of proof-of-work. The way it's built makes it easy to use existing Ethereum tools (geth attach, web3) to interact with the node.
An easy way to get started is to use the docker image:
docker run kobigurk/ethermint
If you prefer instead to build locally, go to the docker
directory and run docker built -t ethermint .
.
After running the container, you can attach to it:
- First, find its ID using
docker ps
and use it to find its IP usingdocker inspect CONTAINER_ID | grep IPAddress
. - Use the IP address to attach with
geth attach rpc:http://CONTAINER_IP:8545
.
You can build the ethermint
executable by running go install cmd/ethermint
. For vendored packages, Ethermint uses glide.
You need to init the genesis block for tendermint and geth. This part is still very much a work-in-progress, but it's possible to work with it now.
By running ./ethermint -datadir data init genesis.json
, both the tendermint genesis and geth genesis will be generated. The tendermint genesis resides in ~/.tendermint
. I recommend using the genesis.json
that exists in the dev
directory as it gives an initial balance to an address whose private key is in the geth_data
folder. Its password is 123
.
Ethermint implements hooks that can be customized for mining rewards and validator management. The default at this point is to not reward and not change the validator set. Example strategies can be found in the strategies
folder.