|
| 1 | +#!/usr/bin/env bash |
| 2 | + |
| 3 | +source ./common.sh |
| 4 | + |
| 5 | +$DC stop blockchain |
| 6 | +$DC rm -f blockchain |
| 7 | +$DC stop chain-{0..2}-validator chain-seed |
| 8 | +$DC rm -f chain-{0..2}-validator chain-seed |
| 9 | + |
| 10 | +${BB} rm -rf data/chain-{0..2}-validator data/chain-seed |
| 11 | +${BB} mkdir -p data/chain-{0..2}-validator/config data/chain-seed/config |
| 12 | +${BB} chmod -R a+rwX data/chain-{0..2}-validator/config data/chain-seed/config |
| 13 | +${BB} rm -rf data/deployments |
| 14 | + |
| 15 | +# has blockchain as dependency |
| 16 | +$DC up -d blockchain |
| 17 | +sleep 5 |
| 18 | +$DC up deploy-contracts |
| 19 | + |
| 20 | +bash get-contracts.sh |
| 21 | +# setup chain-seed |
| 22 | +$DC run --rm --no-deps chain-seed init \ |
| 23 | + --root /chain \ |
| 24 | + --blocktime 1 \ |
| 25 | + --listen-address tcp://0.0.0.0:${TM_RPC_PORT} \ |
| 26 | + --role seed |
| 27 | + |
| 28 | +seed_node=$(cat data/chain-seed/config/node_key.json.id)@chain-seed:${TM_P2P_PORT} |
| 29 | + |
| 30 | +${BB} sed -i "/^moniker/c\moniker = \"chain-seed\"" data/chain-seed/config/config.toml |
| 31 | + |
| 32 | +# configure validators and keypers 0-2 |
| 33 | +for num in {0..2}; do |
| 34 | + validator_cmd=chain-$num-validator |
| 35 | + |
| 36 | + $DC run --rm --no-deps ${validator_cmd} init \ |
| 37 | + --root /chain \ |
| 38 | + --genesis-keyper 0x440Dc6F164e9241F04d282215ceF2780cd0B755e \ |
| 39 | + --blocktime 1 \ |
| 40 | + --listen-address tcp://0.0.0.0:${TM_RPC_PORT} \ |
| 41 | + --role validator |
| 42 | + |
| 43 | + validator_id=$(cat data/${validator_cmd}/config/node_key.json.id) |
| 44 | + validator_node=${validator_id}@${validator_cmd}:${TM_P2P_PORT} |
| 45 | + validator_config_path=data/${validator_cmd}/config/config.toml |
| 46 | + |
| 47 | + # share genesis |
| 48 | + if [ $num -eq 0 ]; then |
| 49 | + for destination in data/chain-seed/config/ data/chain-{1..2}-validator/config/; do |
| 50 | + ${BB} cp -v data/chain-0-validator/config/genesis.json "${destination}" |
| 51 | + done |
| 52 | + fi |
| 53 | + |
| 54 | + # set validator publickey for keyper |
| 55 | + ${BB} sed -i "/ValidatorPublicKey/c\ValidatorPublicKey = \"$(cat data/${validator_cmd}/config/priv_validator_pubkey.hex)\"" /config/keyper-${num}.toml |
| 56 | + |
| 57 | + # set seed node for chain bootstrap |
| 58 | + ${BB} sed -i "/^seeds =/c\seeds = \"${seed_node}\"" "${validator_config_path}" |
| 59 | + # fix external address for docker internal communication |
| 60 | + ${BB} sed -i "/^external_address =/c\external_address = \"${validator_cmd}:${TM_P2P_PORT}\"" "${validator_config_path}" |
| 61 | + # give a nice name |
| 62 | + ${BB} sed -i "/^moniker/c\moniker = \"${validator_cmd}\"" "${validator_config_path}" |
| 63 | + |
| 64 | +done |
| 65 | + |
| 66 | +$DC stop -t 30 |
0 commit comments