Deployment

Chain setup for testing

Note - you can change RPC/IPC chain connection, timeout parameters etc. in contracts/project.json

privtest

  1. Start the geth-node from the commandline:
geth --ipcpath="~/Library/Ethereum/privtest/geth.ipc" \
     --datadir="~/Library/Ethereum/privtest" \
    --dev \
    ---rpc --rpccorsdomain '\*' --rpcport 8545 \
    --rpcapi eth,net,web3,personal \
    --unlock 0xf590ee24CbFB67d1ca212e21294f967130909A5a \
    --password ~/password.txt

# the geth console will show up
# you have to mine yourself:
miner.start()
geth attach ipc:~/Library/Ethereum/privtest/geth.ipc

The --unlock argument specifies which geth account should be unlocked for RPC access. This assumes that 0xf590ee24CbFB67d1ca212e21294f967130909A5a is your account’s address, and has to be changed accordingly. More info can be found here.

The --password argument specifies the file that contains the passphrase the geth account has been locked with. The ~/password.txt file has to be changed accordingly to your password file location. More info can be found here.

kovan

  1. Get some testnet-Ether at the kovan-faucet
  2. Modify the project.json to change the default account
  3. Start the Parity node from the commandline:
parity --geth \
       --chain kovan \
       --force-ui --reseal-min-period 0 \
       --jsonrpc-cors http://localhost \
       --jsonrpc-apis web3,eth,net,parity,traces,rpc,personal \
       --unlock 0x5601Ea8445A5d96EEeBF89A67C4199FbB7a43Fbb \
       --password ~/password.txt \
       --author 0x5601Ea8445A5d96EEeBF89A67C4199FbB7a43Fbb

The --unlock argument specifies which parity account should be unlocked for RPC access. This assumes that 0x5601Ea8445A5d96EEeBF89A67C4199FbB7a43Fbb is your account’s address, and has to be changed accordingly. More info can be found here.

The --password argument specifies the file that contains the passphrase the geth account has been locked with. The ~/password.txt file has to be changed accordingly to your password file location. More info can be found here.

The --author argument specifies what the coinbase address should be. Set this to the same address as with the --unlock argument. This assumes that 0x5601Ea8445A5d96EEeBF89A67C4199FbB7a43Fbb is your account’s address, and has to be changed accordingly. More info can be found here.

ropsten

  1. Get some testnet-Ether at the ropsten-faucet
  2. Modify the project.json to change the default account
  3. Start the geth node from the commandline:
geth --testnet \
     --rpc --rpcport 8545 \
     --unlock 0xf590ee24CbFB67d1ca212e21294f967130909A5a \
     --password ~/password.txt

The --unlock argument specifies which geth account should be unlocked for RPC access. This assumes that 0xf590ee24CbFB67d1ca212e21294f967130909A5a is your account’s address, and has to be changed accordingly. More info can be found here.

The --password argument specifies the file that contains the passphrase the geth account has been locked with. The ~/password.txt file has to be changed accordingly to your password file location. More info can be found here.

rinkeby

  1. Get some testnet-Ether at the rinkeby-faucet
  2. Modify the /contracts/project.json to change the default account

Fast deployment

There are some scripts to provide you with convenient ways to setup a quick deployment.

# Fast deploy on kovan | ropsten | rinkeby | tester | privtest

cd microraiden/contracts

# Following two calls are equivalent
python -m deploy.deploy_testnet  # --owner is web.eth.accounts[0]
python -m deploy.deploy_testnet \
  --chain kovan \
  --owner `0xf590ee24CbFB67d1ca212e21294f967130909A5a` \
  --challenge-period 500 \
  --token-name CustomToken --token-symbol TKN \
  --supply 10000000 --token-decimals 18

# Provide an already deployed, custom token:
python -m deploy.deploy_testnet --token-address TOKEN_ADDRESS

Apart from the --owner argument, above are the default values. The script provides the following command-line options:

python -m deploy.deploy_testnet

python -m deploy.deploy_testnet [OPTIONS]

Options

--chain <chain>

Chain to deploy on: kovan | ropsten | rinkeby | tester | privtest

--owner <owner>

Contracts owner, default: web3.eth.accounts[0]

--challenge-period <challenge_period>

Challenge period in number of blocks.

--supply <supply>

Token contract supply (number of total issued tokens).

--token-name <token_name>

Token contract name.

--token-decimals <token_decimals>

Token contract number of decimals.

--token-symbol <token_symbol>

Token contract symbol.

--token-address <token_address>

Already deployed token address.