Skip to content

Commit

Permalink
feat: add upgrade test for v12 (cosmos#2678)
Browse files Browse the repository at this point in the history
  • Loading branch information
yaruwangway committed Jul 31, 2023
1 parent 581ef19 commit 8769bb3
Show file tree
Hide file tree
Showing 3 changed files with 157 additions and 12 deletions.
20 changes: 8 additions & 12 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,37 +146,33 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: 1.20.x
- name: Install GaiaV10
- name: Install GaiaV11
run: |
git checkout v10.0.0
git checkout v11.0.0
make build
cp ./build/gaiad ./build/gaiad10
cp ./build/gaiad ./build/gaiad11
go clean -modcache
if: env.GIT_DIFF
- name: Install GaiaV11
- name: Install GaiaV12
run: |
git checkout -
make build
cp ./build/gaiad ./build/gaiad11
cp ./build/gaiad ./build/gaiad12
if: env.GIT_DIFF
- name: Install Cosmovisor
run: |
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@latest
if: env.GIT_DIFF
- name: Start GaiaV10
- name: Start GaiaV11
run: |
go env GOPATH
./contrib/scripts/upgrade_test_scripts/v11/run_gaia_v10.sh
./contrib/scripts/upgrade_test_scripts/v12/run_gaia_v11.sh
if: env.GIT_DIFF
- name: Submit Upgrade Commands
run: |
./contrib/scripts/upgrade_test_scripts/v11/run_upgrade_commands_v11.sh 15
./contrib/scripts/upgrade_test_scripts/v12/run_upgrade_commands_v12.sh 15
if: env.GIT_DIFF
- name: Check for successful upgrade
run: |
./contrib/scripts/upgrade_test_scripts/test_upgrade.sh 20 5 16 localhost
if: env.GIT_DIFF
- name: Check for successful migration
run: |
./contrib/scripts/upgrade_test_scripts/v11/test_migration_v11.sh localhost
if: env.GIT_DIFF
75 changes: 75 additions & 0 deletions contrib/scripts/upgrade_test_scripts/v12/run_gaia_v11.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#!/bin/sh

set -o errexit -o nounset
set -x

NODE_HOME=$(realpath ./build/.gaia)
rm -r $NODE_HOME
echo "NODE_HOME = ${NODE_HOME}"
BINARY=$NODE_HOME/cosmovisor/genesis/bin/gaiad
echo "BINARY = ${BINARY}"
CHAINID=cosmoshub-4

USER_MNEMONIC="abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art"

if ! test -f "./build/gaiad11"; then
echo "gaiad v11 does not exist"
exit
fi


rm -rf ./build/.gaia

mkdir -p "$NODE_HOME"/cosmovisor/genesis/bin
cp ./build/gaiad11 "$NODE_HOME"/cosmovisor/genesis/bin/gaiad
$BINARY init upgrader --chain-id $CHAINID --home "$NODE_HOME"


if ! test -f "./build/gaiad12"; then
echo "gaiad v12 does not exist"
exit
fi

mkdir -p "$NODE_HOME"/cosmovisor/upgrades/v12/bin
cp ./build/gaiad12 "$NODE_HOME"/cosmovisor/upgrades/v12/bin/gaiad

GOPATH=$(go env GOPATH)

export DAEMON_NAME=gaiad
export DAEMON_HOME=$NODE_HOME
COSMOVISOR=$GOPATH/bin/cosmovisor


$BINARY config chain-id $CHAINID --home $NODE_HOME
$BINARY config keyring-backend test --home $NODE_HOME
tmp=$(mktemp)

# add bank part of genesis
jq --argjson foo "$(jq -c '.' contrib/denom.json)" '.app_state.bank.denom_metadata = $foo' $NODE_HOME/config/genesis.json > "$tmp" && mv "$tmp" $NODE_HOME/config/genesis.json

# replace default stake token with uatom
sed -i -e 's/stake/uatom/g' $NODE_HOME/config/genesis.json
# min deposition amount (this one isn't working)
sed -i -e 's%"amount": "10000000",%"amount": "1",%g' $NODE_HOME/config/genesis.json
# min voting power that a proposal requires in order to be a valid proposal
sed -i -e 's%"quorum": "0.334000000000000000",%"quorum": "0.000000000000000001",%g' $NODE_HOME/config/genesis.json
# the minimum proportion of "yes" votes requires for the proposal to pass
sed -i -e 's%"threshold": "0.500000000000000000",%"threshold": "0.000000000000000001",%g' $NODE_HOME/config/genesis.json
# voting period to 30s
sed -i -e 's%"voting_period": "172800s"%"voting_period": "30s"%g' $NODE_HOME/config/genesis.json

echo $USER_MNEMONIC | $BINARY --home $NODE_HOME keys add val --recover --keyring-backend=test
$BINARY add-genesis-account val 10000000000000000000000000uatom --home $NODE_HOME --keyring-backend test
$BINARY gentx val 1000000000uatom --home $NODE_HOME --chain-id $CHAINID
$BINARY collect-gentxs --home $NODE_HOME

sed -i.bak'' 's/minimum-gas-prices = ""/minimum-gas-prices = "0uatom"/' $NODE_HOME/config/app.toml

perl -i~ -0777 -pe 's/# Enable defines if the API server should be enabled.
enable = false/# Enable defines if the API server should be enabled.
enable = true/g' $NODE_HOME/config/app.toml

pwd
ls $NODE_HOME

$COSMOVISOR run start --home $NODE_HOME --x-crisis-skip-assert-invariants
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#!/bin/sh
set -x
# set -o errexit -o nounset

UPGRADE_HEIGHT=$1

if [ -z "$1" ]; then
echo "Need to add an upgrade height"
exit 1
fi

NODE_HOME=$(realpath ./build/.gaia)

echo "NODE_HOME = ${NODE_HOME}"

BINARY=$NODE_HOME/cosmovisor/genesis/bin/gaiad
echo "BINARY = ${BINARY}"

$BINARY version

USER_MNEMONIC="abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art"
CHAINID=cosmoshub-4

if test -f "$BINARY"; then

echo "wait 10 seconds for blockchain to start"
sleep 10

$BINARY config chain-id $CHAINID --home $NODE_HOME
$BINARY config output json --home $NODE_HOME
$BINARY config keyring-backend test --home $NODE_HOME
# $BINARY config --home $NODE_HOME
$BINARY config broadcast-mode block --home $NODE_HOME

key=$($BINARY keys show val --home $NODE_HOME)
if [ -z "$key" ]; then
echo $USER_MNEMONIC | $BINARY --home $NODE_HOME keys add val --recover --keyring-backend=test
fi


echo "\n"
echo "Submitting proposal... \n"
$BINARY tx gov submit-proposal software-upgrade v12 \
--title v12 \
--deposit 10000000uatom \
--upgrade-height $UPGRADE_HEIGHT \
--upgrade-info "upgrade to v12" \
--description "upgrade to v12" \
--fees 400uatom \
--from val \
--keyring-backend test \
--chain-id $CHAINID \
--home $NODE_HOME \
--node tcp://localhost:26657 \
--yes
echo "Done \n"

sleep 6
echo "Casting vote... \n"

$BINARY tx gov vote 1 yes \
--from val \
--keyring-backend test \
--chain-id $CHAINID \
--home $NODE_HOME \
--fees 400uatom \
--node tcp://localhost:26657 \
--yes

echo "Done \n"

else
echo "Please build gaia v11 and move to ./build/gaiad11"
fi

0 comments on commit 8769bb3

Please sign in to comment.