2023-08-23 21:20:28 +00:00
|
|
|
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
if [ -n "$CERC_SCRIPT_DEBUG" ]; then
|
|
|
|
set -x
|
|
|
|
fi
|
|
|
|
|
2024-07-31 13:51:28 +00:00
|
|
|
set_ownership () {
|
|
|
|
sudo chown $USER: -R $1
|
|
|
|
}
|
|
|
|
|
2023-08-23 21:20:28 +00:00
|
|
|
node_count=4
|
|
|
|
node_dir_prefix="laconic-network-dir"
|
|
|
|
chain_id="laconic_81337-6"
|
|
|
|
node_moniker_prefix="node"
|
|
|
|
|
|
|
|
echo "Deleting any existing network directories..."
|
|
|
|
for (( i=1 ; i<=$node_count ; i++ ));
|
|
|
|
do
|
|
|
|
node_network_dir=${node_dir_prefix}${i}
|
|
|
|
if [[ -d $node_network_dir ]]; then
|
|
|
|
echo "Deleting ${node_network_dir}"
|
2024-07-31 13:51:28 +00:00
|
|
|
sudo rm -rf ${node_network_dir}
|
2023-08-23 21:20:28 +00:00
|
|
|
fi
|
|
|
|
done
|
2024-07-15 05:23:18 +00:00
|
|
|
echo "Deleting any existing deployments..."
|
|
|
|
for (( i=1 ; i<=$node_count ; i++ ));
|
|
|
|
do
|
|
|
|
node_deployment_dir=${node_dir_prefix}${i}-deployment
|
|
|
|
node_spec_file=${node_dir_prefix}${i}-spec.yml
|
|
|
|
if [[ -d $node_deployment_dir ]]; then
|
|
|
|
echo "Deleting ${node_deployment_dir}"
|
|
|
|
rm -rf ${node_deployment_dir}
|
|
|
|
fi
|
|
|
|
if [[ -f $node_spec_file ]]; then
|
|
|
|
echo "Deleting ${node_spec_file}"
|
|
|
|
rm ${node_spec_file}
|
|
|
|
fi
|
|
|
|
done
|
2023-08-23 21:20:28 +00:00
|
|
|
|
|
|
|
echo "Initalizing ${node_count} nodes networks..."
|
|
|
|
for (( i=1 ; i<=$node_count ; i++ ));
|
|
|
|
do
|
|
|
|
node_network_dir=${node_dir_prefix}${i}
|
|
|
|
node_moniker=${node_moniker_prefix}${i}
|
|
|
|
laconic-so --stack mainnet-laconic deploy setup --network-dir ${node_network_dir} --initialize-network --chain-id ${chain_id} --node-moniker ${node_moniker}
|
2024-07-31 13:51:28 +00:00
|
|
|
set_ownership ${node_network_dir}
|
2023-08-23 21:20:28 +00:00
|
|
|
done
|
|
|
|
|
|
|
|
echo "Joining ${node_count} nodes to the network..."
|
|
|
|
for (( i=1 ; i<=$node_count ; i++ ));
|
|
|
|
do
|
|
|
|
node_network_dir=${node_dir_prefix}${i}
|
|
|
|
node_moniker=${node_moniker_prefix}${i}
|
|
|
|
laconic-so --stack mainnet-laconic deploy setup --network-dir ${node_network_dir} --join-network --key-name ${node_moniker}
|
2024-07-31 13:51:28 +00:00
|
|
|
set_ownership ${node_network_dir}
|
2023-08-23 21:20:28 +00:00
|
|
|
done
|
|
|
|
|
|
|
|
echo "Merging ${node_count} nodes genesis txns..."
|
|
|
|
gentx_files=""
|
|
|
|
delimeter=""
|
|
|
|
# Note: start at node 2 here because we're going to copy to node 1
|
|
|
|
for (( i=2 ; i<=$node_count ; i++ ));
|
|
|
|
do
|
|
|
|
node_network_dir=${node_dir_prefix}${i}
|
|
|
|
node_gentx_file=$(ls ${node_network_dir}/config/gentx/*.json)
|
2024-07-31 13:51:28 +00:00
|
|
|
node_gentx_address=$(grep address ${node_network_dir}/config/genesis.json | head -1 | cut -d '"' -f 4)
|
2023-08-23 21:20:28 +00:00
|
|
|
gentx_files+=${delimeter}${node_gentx_file}
|
2024-07-31 13:51:28 +00:00
|
|
|
gentx_addresses+=${delimeter}${node_gentx_address}
|
2023-08-23 21:20:28 +00:00
|
|
|
delimeter=","
|
|
|
|
done
|
2024-07-31 13:51:28 +00:00
|
|
|
echo "gentx files:"
|
|
|
|
echo ${gentx_files}
|
2023-08-23 21:20:28 +00:00
|
|
|
# Generate the genesis file on node 1
|
2024-07-31 13:51:28 +00:00
|
|
|
laconic-so --stack mainnet-laconic deploy setup --network-dir ${node_dir_prefix}1 --create-network --gentx-files ${gentx_files} --gentx-addresses ${gentx_addresses}
|
2023-08-23 21:20:28 +00:00
|
|
|
genesis_file=${node_dir_prefix}1/config/genesis.json
|
|
|
|
# Now import the genesis file to the other nodes
|
|
|
|
for (( i=2 ; i<=$node_count ; i++ ));
|
|
|
|
do
|
|
|
|
echo "Importing genesis.json into node ${i}"
|
|
|
|
node_network_dir=${node_dir_prefix}${i}
|
|
|
|
laconic-so --stack mainnet-laconic deploy setup --network-dir ${node_network_dir} --create-network --genesis-file ${genesis_file}
|
2024-07-31 13:51:28 +00:00
|
|
|
set_ownership ${node_network_dir}
|
2023-08-23 21:20:28 +00:00
|
|
|
done
|
2024-07-15 05:23:18 +00:00
|
|
|
|
|
|
|
# Create deployments
|
|
|
|
echo "Creating ${node_count} deployments..."
|
|
|
|
for (( i=1 ; i<=$node_count ; i++ ));
|
|
|
|
do
|
|
|
|
node_network_dir=${node_dir_prefix}${i}
|
|
|
|
laconic-so --stack mainnet-laconic deploy init --output ${node_network_dir}-spec.yml
|
|
|
|
laconic-so --stack mainnet-laconic deploy create --deployment-dir ${node_network_dir}-deployment --spec-file ${node_dir_prefix}${i}-spec.yml --network-dir ${node_network_dir}
|
|
|
|
done
|