laconic-network-bootstrap/scripts/03-merge-genesis-txns.sh
2024-07-08 06:22:16 -06:00

82 lines
2.7 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
if [ -n "$CERC_SCRIPT_DEBUG" ]; then
set -x
fi
if [[ -n "$1" ]]; then
machine_name_prefix=$1
else
echo "Usage: $0 <machine-name-prefix>"
exit 1
fi
machine_domain=borgboxes.network
node_count=4
node_network_dir=testnet-dir
chain_id=laconic_81337-6a
p2p_port="26656"
so_command=/home/laconic/bin/laconic-so
gentx_dir=${node_network_dir}/config/gentx
local_gentx_dir=gentx-${machine_name_prefix}
echo "Fetch node ids and node ips for persistent-peers"
for (( i=1 ; i<=$node_count ; i++ ));
do
node_name=${machine_name_prefix}-${i}
node_host_name=${node_name}.${machine_domain}
gentx_file_name=$(ssh laconic@${node_host_name} ls /home/laconic/${gentx_dir} | head -1)
node_id=$(echo ${gentx_file_name} | sed -e 's/^gentx-//' -e 's/.json$//')
node_ip=$(dig +short ${node_host_name})
peer=${node_id}@${node_ip}:${p2p_port}
persistent_peers+=${peer}
if [[ ${i} -lt ${node_count} ]]; then
persistent_peers+=','
fi
done
echo "Copying gentx from all nodes except 1"
rm -rf ${local_gentx_dir}
mkdir ${local_gentx_dir}
# Note: start at node 2 here because we're going to copy to node 1
for (( i=2 ; i<=$node_count ; i++ ));
do
node_name=${machine_name_prefix}-${i}
node_host_name=${node_name}.${machine_domain}
echo "Copying ${gentx_dir} on ${node_name} to ${local_gentx_dir}"
scp laconic@${node_host_name}:~/${gentx_dir}/* ${local_gentx_dir}
done
echo "Copying gentx files to node 1"
node_1_host_name=${machine_name_prefix}-1.${machine_domain}
ssh laconic@${node_1_host_name} rm -rf ${local_gentx_dir}
ssh laconic@${node_1_host_name} mkdir ${local_gentx_dir}
scp ${local_gentx_dir}/* laconic@${node_1_host_name}:~/${local_gentx_dir}
gentx_file_list=$(ssh laconic@${node_1_host_name} ls -m ${local_gentx_dir}/*)
echo "Node 1 now has: ${gentx_file_list}"
gentx_files=$(echo ${gentx_file_list} | tr -d ' ' | tr -d '\n')
echo "Generate genesis on node 1"
ssh laconic@${node_1_host_name} ${so_command} --stack mainnet-laconic deploy setup --network-dir ${node_network_dir} --create-network --gentx-files ${gentx_files}
echo "Fetching genesis file from node 1"
local_genesis_file=${local_gentx_dir}/genesis.json
scp laconic@${node_1_host_name}:~/${node_network_dir}/config/genesis.json ${local_gentx_dir}
echo "Copying genesis file to other nodes"
# Note: start at node 2 here because we're going to copy to node 1
for (( i=2 ; i<=$node_count ; i++ ));
do
node_name=${machine_name_prefix}-${i}
node_host_name=${node_name}.${machine_domain}
echo "Copying ${local_genesis_file} to ${node_name} to ${node_name}"
scp ${local_genesis_file} laconic@${node_host_name}:~/${node_network_dir}/config
done
echo "Use this for persistent_peers:"
echo ${persistent_peers}