Add scripts to generate genesis file for mainnet
This commit is contained in:
parent
404951bda7
commit
afd2082f6e
51
scripts/generate-mainnet-genesis.sh
Executable file
51
scripts/generate-mainnet-genesis.sh
Executable file
@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Exit on error
|
||||
set -e
|
||||
set -u
|
||||
|
||||
# Check args
|
||||
if [ "$#" -ne 2 ]; then
|
||||
echo "Usage: $0 <testnet-deployment-dir-absolute>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TESTNET_DEPLOYMENT_DIR="$1"
|
||||
MAINNET_GENESIS_DIR=mainnet-genesis
|
||||
|
||||
# Create a temporary target directory
|
||||
mkdir -p $MAINNET_GENESIS_DIR
|
||||
|
||||
# --------
|
||||
|
||||
# Export state from testnet chain
|
||||
# Use cerc/laconicd-testnet:local image for testnet laconicd build
|
||||
|
||||
testnet_state_file="$MAINNET_GENESIS_DIR/testnet-state.json"
|
||||
docker run -it \
|
||||
-v ${TESTNET_DEPLOYMENT_DIR}/data/laconicd-data:/root/testnet-deployment/.laconicd \
|
||||
cerc/laconicd-testnet:local bash -c "laconicd export --home /root/testnet-deployment/.laconicd" \
|
||||
| jq .app_state.onboarding > "$testnet_state_file"
|
||||
|
||||
echo "Exported state from testnet"
|
||||
|
||||
# --------
|
||||
|
||||
# Run a script with cerc/laconicd:local to generate the genesis file
|
||||
# with onboarding module state and given allocations
|
||||
docker run -it \
|
||||
-v ./$MAINNET_GENESIS_DIR:/root/.laconicd \
|
||||
-v ./scripts:/scripts \
|
||||
cerc/laconicd:local bash -c "/scripts/genesis.sh"
|
||||
|
||||
# Copy over the genesis file to output folder
|
||||
OUTPUT_DIR=output
|
||||
mkdir -p $OUTPUT_DIR
|
||||
cp ./$MAINNET_GENESIS_DIR/config/genesis.json $OUTPUT_DIR/genesis.json
|
||||
|
||||
echo "Genesis file for mainnet written to $OUTPUT_DIR/genesis.json"
|
||||
|
||||
# --------
|
||||
|
||||
# Clean up
|
||||
echo "Please remove the temporary data directory: sudo rm -rf $MAINNET_GENESIS_DIR"
|
28
scripts/genesis.sh
Executable file
28
scripts/genesis.sh
Executable file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Exit on error
|
||||
set -e
|
||||
set -u
|
||||
|
||||
# Note: Needs to be run in a docker container with image cerc/laconicd:local
|
||||
|
||||
CHAINID=${CHAINID:-"laconic-mainnet"}
|
||||
MONIKER=${MONIKER:-"mainnet-node"}
|
||||
NODE_HOME="/root/.laconicd"
|
||||
|
||||
testnet_state_file="$NODE_HOME/testnet-state.json"
|
||||
mainnet_genesis_file="$NODE_HOME/config/genesis.json"
|
||||
|
||||
laconicd config set client chain-id $CHAINID
|
||||
laconicd init $MONIKER --chain-id $CHAINID --default-denom alnt
|
||||
|
||||
# Import required state
|
||||
jq --slurpfile nested $testnet_state_file '.app_state.auth = $nested[0].app_state' "$mainnet_genesis_file" > tmp.$$.json && mv tmp.$$.json "$mainnet_genesis_file"
|
||||
jq --slurpfile nested $testnet_state_file '.consensus.auth = $nested[0].consensus' "$mainnet_genesis_file" > tmp.$$.json && mv tmp.$$.json "$mainnet_genesis_file"
|
||||
|
||||
# Update any module params if required here
|
||||
|
||||
# TODO: Perform alps allocations
|
||||
|
||||
# Ensure that resulting genesis file is valid
|
||||
laconicd genesis validate
|
Loading…
Reference in New Issue
Block a user