Docker-compose based Ethereum Network Validator Nodes set up as a private network (example uses IBFT consensus) with nodes connecting to each other via the public internet.
- Start the network with
docker-compose upin one terminal npm installnpm run compile(Optional, the compiled contract is committed)node deploy.jsnode index.js
Install go: https://golang.org/dl/
Install the actual tool: go get github.com/getamis/istanbul-tools/cmd/istanbul
This will install it under your $GOPATH, so in order to be able to use istanbul you need to make sure $GOPATH/bin is in your $PATH
Now if you type istanbul, you should see:
NAME:
istanbul - the istanbul-tools command line interface
USAGE:
istanbul [global options] command [command options] [arguments...]
VERSION:
v1.0.0
COMMANDS:
extra Istanbul extraData manipulation
setup Setup your Istanbul network in seconds
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help
--version, -v print the version
COPYRIGHT:
Copyright 2017 The AMIS Authorsistanbul setup --num 4 --docker-compose --save
docker-compose up- Install geth
geth attach http://localhost:8545- Run
personnal.newAccount, enter a password - log into validator-0 container and retrieve the account
- modify docker-compose to include that file in validator-0
- modify docker-compose to give eth to the new account in the genesis block(for each nodes)
- modify docker-compose to unlock at start up(
--unlock '0' --password '/eth/password.txt') - if you want the chain data to persist, add a volume for each validator and map it to
/ethin each validator(or node)
You can look at docker-compose.yml for the end result.