#!/usr/bin/env bash ############ ## Settings GENESIS_HOST=root@147.75.80.29 BOOTSTRAPPERS=( root@147.75.80.17 ) ############ read -p "You are about to deploy new DevNet, killing bootstrap nodes. Proceed? (y/n)? " r case "$r" in y|Y ) echo "Proceding";; n|N ) exit 0;; * ) exit 1;; esac log() { echo -e "\e[33m$1\e[39m" } rm -f build/bootstrap/*.pi log '> Generating genesis' make GENPATH=$(mktemp -d) log 'staring temp daemon' ./lotus --repo="${GENPATH}" daemon --lotus-make-random-genesis="${GENPATH}/devnet.car" & GDPID=$! sleep 3 log 'Extracting genesis miner prvate key' ADDR=$(./lotus --repo="${GENPATH}" wallet list) ./lotus --repo="${GENPATH}" wallet export "$ADDR" > "${GENPATH}/wallet.key" kill "$GDPID" wait log '> Creating genesis binary' cp "${GENPATH}/devnet.car" build/genesis/devnet.car rm -f build/bootstrap/*.pi make log '> Deploying and starting genesis miner' ssh $GENESIS_HOST 'systemctl stop lotus-daemon' & ssh $GENESIS_HOST 'systemctl stop lotus-storage-miner' & wait ssh $GENESIS_HOST 'rm -rf .lotus' & ssh $GENESIS_HOST 'rm -rf .lotusstorage' & scp -C lotus "${GENESIS_HOST}":/usr/local/bin/lotus & scp -C lotus-storage-miner "${GENESIS_HOST}":/usr/local/bin/lotus-storage-miner & wait log 'Initializing genesis miner repo' ssh $GENESIS_HOST 'systemctl start lotus-daemon' scp scripts/bootstrap.toml "${GENESIS_HOST}:.lotus/config.toml" & ssh < "${GENPATH}/wallet.key" $GENESIS_HOST '/usr/local/bin/lotus wallet import' & wait ssh $GENESIS_HOST "echo -e '[Metrics]\nNickname=\"Boot-genesis\"' >> .lotus/config.toml" ssh $GENESIS_HOST 'systemctl restart lotus-daemon' log 'Starting genesis mining' ssh $GENESIS_HOST '/usr/local/bin/lotus-storage-miner init --genesis-miner --actor=t0101' ssh $GENESIS_HOST 'systemctl start lotus-storage-miner' log 'Getting genesis addr info' ssh $GENESIS_HOST 'lotus net listen' | grep -v '/10' | grep -v '/127' > build/bootstrap/root.pi log '> Creating bootstrap binaries' make for host in "${BOOTSTRAPPERS[@]}" do log "> Deploying bootstrap node $host" log "Stopping lotus daemon" ssh "$host" 'systemctl stop lotus-daemon' & ssh "$host" 'systemctl stop lotus-storage-miner' & wait ssh "$host" 'rm -rf .lotus' & ssh "$host" 'rm -rf .lotusstorage' & scp -C lotus "${host}":/usr/local/bin/lotus & scp -C lotus-storage-miner "${host}":/usr/local/bin/lotus-storage-miner & wait log 'Initializing repo' ssh "$host" 'systemctl start lotus-daemon' scp scripts/bootstrap.toml "${host}:.lotus/config.toml" ssh "$host" "echo -e '[Metrics]\nNickname=\"Boot-$host\"' >> .lotus/config.toml" ssh "$host" 'systemctl restart lotus-daemon' log 'Extracting addr info' ssh "$host" 'lotus net listen' | grep -v '/10' | grep -v '/127' >> build/bootstrap/bootstrappers.pi done log 'Updating genesis node with bootstrapable binaries' ssh "$GENESIS_HOST" 'systemctl stop lotus-daemon' & ssh "$GENESIS_HOST" 'systemctl stop lotus-storage-miner' & wait scp -C lotus "${GENESIS_HOST}":/usr/local/bin/lotus & scp -C lotus-storage-miner "${GENESIS_HOST}":/usr/local/bin/lotus-storage-miner & wait ssh "$GENESIS_HOST" 'systemctl start lotus-daemon' & ssh "$GENESIS_HOST" 'systemctl start lotus-storage-miner' & wait