From 55d6fa9cfbf8add1723cb7b6cf8bb39507d21b6b Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Tue, 23 Apr 2024 14:17:02 +0200 Subject: [PATCH 01/13] run token-transfer after upgrade-client --- ci/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/Makefile b/ci/Makefile index 72d3efab..46c5c498 100644 --- a/ci/Makefile +++ b/ci/Makefile @@ -8,7 +8,7 @@ create-channel: bash ~/tests/create-channel.sh @echo "Channel created" -token-transfer: create-channel +token-transfer: upgrade-client @echo "Transferring tokens..." bash ~/tests/token-transfer.sh @echo "Tokens transferred" From ab37c008a3d57c562acefbfd82034fc4a8fabdb7 Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Tue, 23 Apr 2024 16:50:10 +0200 Subject: [PATCH 02/13] exit on error --- .github/workflows/integration.yml | 10 +++++----- ci/one-chain | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 430ca4f4..b3873ad9 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -17,11 +17,11 @@ jobs: ibc-integration: runs-on: ubuntu-latest env: - COMETBFT_VERSION: 0.37.1 - GAIA_VERSION: 7.1.1 - HERMES_VERSION: 1.8.0 - GRPCURL_VERSION: 1.8.7 - RUST_VERSION: 1.65 + COMETBFT_VERSION: 0.37.4 + GAIA_VERSION: 15.2.0 + HERMES_VERSION: 1.8.2 + GRPCURL_VERSION: 1.9.1 + RUST_VERSION: 1.77.2 IBC_COMMITISH: master steps: - uses: actions/checkout@v3 diff --git a/ci/one-chain b/ci/one-chain index 548f9572..5842dd78 100755 --- a/ci/one-chain +++ b/ci/one-chain @@ -1,4 +1,6 @@ #!/bin/bash +set -euo pipefail + # Copied from https://github.com/cosmos/relayer/tree/master/scripts usage() { From 3c263a8333a377644c9f18948d371778c097d605 Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Tue, 23 Apr 2024 16:51:10 +0200 Subject: [PATCH 03/13] use genesis sub-cmd --- ci/one-chain | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ci/one-chain b/ci/one-chain index 5842dd78..8ed9d256 100755 --- a/ci/one-chain +++ b/ci/one-chain @@ -91,25 +91,25 @@ sleep 1 # Add samoleans to user USER=$($BINARY --home $CHAIN_DIR/$CHAIN_ID keys --keyring-backend="test" show user -a) -$BINARY --home $CHAIN_DIR/$CHAIN_ID add-genesis-account $USER $USER_COINS &> /dev/null +$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis add-genesis-account $USER $USER_COINS &> /dev/null sleep 1 # Add samoleans to user2 USER2=$($BINARY --home $CHAIN_DIR/$CHAIN_ID keys --keyring-backend="test" show user2 -a) -$BINARY --home $CHAIN_DIR/$CHAIN_ID add-genesis-account $USER2 $USER_COINS &> /dev/null +$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis add-genesis-account $USER2 $USER_COINS &> /dev/null sleep 1 # Add stake to validator VALIDATOR=$($BINARY --home $CHAIN_DIR/$CHAIN_ID keys --keyring-backend="test" show validator -a) -$BINARY --home $CHAIN_DIR/$CHAIN_ID add-genesis-account $VALIDATOR $STAKE &> /dev/null +$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis add-genesis-account $VALIDATOR $STAKE &> /dev/null sleep 1 # Stake everything -$BINARY --home $CHAIN_DIR/$CHAIN_ID gentx validator --keyring-backend="test" --chain-id $CHAIN_ID $STAKE &> /dev/null +$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis gentx validator --keyring-backend="test" --chain-id $CHAIN_ID $STAKE &> /dev/null sleep 1 -$BINARY --home $CHAIN_DIR/$CHAIN_ID collect-gentxs &> /dev/null +$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis collect-gentxs &> /dev/null sleep 1 # Check platform From c166baf1b609f89e7dc3204e465038d48342777a Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Tue, 23 Apr 2024 16:51:42 +0200 Subject: [PATCH 04/13] do not pipe output to /dev/null --- ci/one-chain | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ci/one-chain b/ci/one-chain index 8ed9d256..3c9c6153 100755 --- a/ci/one-chain +++ b/ci/one-chain @@ -77,7 +77,7 @@ USER_COINS="${STAKE},${SAMOLEANS}samoleans" # Hermes also needs stake to perform actions HERMES_COINS="${STAKE},${SAMOLEANS}samoleans" -$BINARY --home $CHAIN_DIR/$CHAIN_ID --chain-id $CHAIN_ID init $CHAIN_ID &> /dev/null +$BINARY --home $CHAIN_DIR/$CHAIN_ID --chain-id $CHAIN_ID init $CHAIN_ID sleep 1 echo "Creating validator key" $BINARY --home $CHAIN_DIR/$CHAIN_ID keys add validator --keyring-backend="test" --output json > $CHAIN_DIR/$CHAIN_ID/validator_seed.json 2>&1 @@ -91,25 +91,25 @@ sleep 1 # Add samoleans to user USER=$($BINARY --home $CHAIN_DIR/$CHAIN_ID keys --keyring-backend="test" show user -a) -$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis add-genesis-account $USER $USER_COINS &> /dev/null +$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis add-genesis-account $USER $USER_COINS sleep 1 # Add samoleans to user2 USER2=$($BINARY --home $CHAIN_DIR/$CHAIN_ID keys --keyring-backend="test" show user2 -a) -$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis add-genesis-account $USER2 $USER_COINS &> /dev/null +$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis add-genesis-account $USER2 $USER_COINS sleep 1 # Add stake to validator VALIDATOR=$($BINARY --home $CHAIN_DIR/$CHAIN_ID keys --keyring-backend="test" show validator -a) -$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis add-genesis-account $VALIDATOR $STAKE &> /dev/null +$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis add-genesis-account $VALIDATOR $STAKE sleep 1 # Stake everything -$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis gentx validator --keyring-backend="test" --chain-id $CHAIN_ID $STAKE &> /dev/null +$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis gentx validator --keyring-backend="test" --chain-id $CHAIN_ID $STAKE sleep 1 -$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis collect-gentxs &> /dev/null +$BINARY --home $CHAIN_DIR/$CHAIN_ID genesis collect-gentxs sleep 1 # Check platform From 9e6c33decd91387e988167b31a8bf8c5407c3ee0 Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Tue, 23 Apr 2024 16:52:03 +0200 Subject: [PATCH 05/13] add minimum-gas-price arg --- ci/one-chain | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/one-chain b/ci/one-chain index 3c9c6153..bb864d09 100755 --- a/ci/one-chain +++ b/ci/one-chain @@ -148,7 +148,7 @@ fi # Start gaia echo "Start gaia on grpc port: $GRPC_PORT..." -$BINARY --home $CHAIN_DIR/$CHAIN_ID start --pruning=nothing --grpc.address="0.0.0.0:$GRPC_PORT" --log_level error > $CHAIN_DIR/$CHAIN_ID.log 2>&1 & +$BINARY --home $CHAIN_DIR/$CHAIN_ID start --minimum-gas-prices=0stake --pruning=nothing --grpc.address="0.0.0.0:$GRPC_PORT" --log_level=error > $CHAIN_DIR/$CHAIN_ID.log 2>&1 & # Show validator's and user's balance sleep 3 From d4983685873a5e86260557c97e5f47cbcfe04bbd Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Tue, 23 Apr 2024 16:56:13 +0200 Subject: [PATCH 06/13] one-chain to one-chain.sh --- .github/workflows/integration.yml | 2 +- ci/Dockerfile | 2 +- ci/entrypoint.sh | 2 +- ci/{one-chain => one-chain.sh} | 2 -- 4 files changed, 3 insertions(+), 5 deletions(-) rename ci/{one-chain => one-chain.sh} (98%) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index b3873ad9..9b93c8ef 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -64,7 +64,7 @@ jobs: cp -r cometbft-config/ ~/.cometbft/config mkdir -p ~/.hermes cp hermes-config.toml ~/.hermes/config.toml - cp one-chain ~ + cp one-chain.sh ~ cp user_seed.json ~ cp Makefile .. cp -r tests/ ~ diff --git a/ci/Dockerfile b/ci/Dockerfile index b369848f..665982be 100644 --- a/ci/Dockerfile +++ b/ci/Dockerfile @@ -19,7 +19,7 @@ ENV IBC_COMMITISH=master COPY entrypoint.sh /usr/bin/entrypoint.sh COPY cometbft-config/ /basecoin/.cometbft/config COPY hermes-config.toml /basecoin/.hermes/config.toml -COPY one-chain /basecoin/one-chain +COPY one-chain.sh /basecoin/one-chain.sh COPY user_seed.json /basecoin/user_seed.json COPY tests/ /basecoin/tests diff --git a/ci/entrypoint.sh b/ci/entrypoint.sh index 70a14155..95770645 100755 --- a/ci/entrypoint.sh +++ b/ci/entrypoint.sh @@ -23,7 +23,7 @@ cargo build --bin basecoin --target-dir "${BASECOIN_BUILD}" echo "" echo "Setting up chain ibc-0..." mkdir -p "${CHAIN_DATA}" -"${HOME}/one-chain" gaiad ibc-0 "${CHAIN_DATA}" 26657 26656 6060 9090 100000000000 +"${HOME}/one-chain.sh" gaiad ibc-0 "${CHAIN_DATA}" 26657 26656 6060 9090 100000000000 echo "" echo "Configuring Hermes..." diff --git a/ci/one-chain b/ci/one-chain.sh similarity index 98% rename from ci/one-chain rename to ci/one-chain.sh index bb864d09..93265c34 100755 --- a/ci/one-chain +++ b/ci/one-chain.sh @@ -1,8 +1,6 @@ #!/bin/bash set -euo pipefail -# Copied from https://github.com/cosmos/relayer/tree/master/scripts - usage() { echo "Usage: $0 BINARY CHAIN_ID CHAIN_DIR RPC_PORT P2P_PORT PROFILING_PORT GRPC_PORT SAMOLEANS" echo "Example: $0 gaiad ibc-0 ./data 26657 26656 6060 9090 100" From 8762b97f207e2362e60b90d1973a2fe5050de85f Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Tue, 23 Apr 2024 17:31:18 +0200 Subject: [PATCH 07/13] impl get_syncing --- basecoin/app/src/service.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basecoin/app/src/service.rs b/basecoin/app/src/service.rs index b7eb0739..cfa286f5 100644 --- a/basecoin/app/src/service.rs +++ b/basecoin/app/src/service.rs @@ -66,7 +66,7 @@ impl HealthService for BaseCoinApp { &self, _request: Request, ) -> Result, Status> { - unimplemented!() + Ok(Response::new(GetSyncingResponse { syncing: false })) } async fn get_latest_block( From 247c543abd8ad3e16e1fd39f8eb6cb060b6f1586 Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Tue, 23 Apr 2024 17:31:29 +0200 Subject: [PATCH 08/13] inc gas_mul --- ci/hermes-config.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/hermes-config.toml b/ci/hermes-config.toml index 81fb77df..59fa2d55 100644 --- a/ci/hermes-config.toml +++ b/ci/hermes-config.toml @@ -14,7 +14,7 @@ store_prefix = 'ibc' default_gas = 100000 max_gas = 4000000 gas_price = { price = 0.001, denom = 'stake' } -gas_multiplier = 1.1 +gas_multiplier = 1.5 max_msg_num = 30 max_tx_size = 2097152 clock_drift = '5s' @@ -37,7 +37,7 @@ store_prefix = 'ibc' default_gas = 100000 max_gas = 4000000 gas_price = { price = 0.001, denom = 'basecoin' } -gas_multiplier = 1.1 +gas_multiplier = 1.5 max_msg_num = 30 max_tx_size = 2097152 clock_drift = '5s' From 8d4fa7c55da59eb8f39c14ee47eaada86263f5ff Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Tue, 23 Apr 2024 17:32:48 +0200 Subject: [PATCH 09/13] use workflow concurrency --- .github/workflows/integration.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 9b93c8ef..18e2e0e8 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -5,15 +5,11 @@ on: branches: - main -jobs: - cleanup-runs: - runs-on: ubuntu-latest - steps: - - uses: rokroskar/workflow-run-cleanup-action@master - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - if: ${{ !startsWith(github.ref, 'refs/tags/') && github.ref != 'refs/heads/master' }} +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true +jobs: ibc-integration: runs-on: ubuntu-latest env: From e35bfe8887af40e250a4b0d66f73e0bb2eeb9c0c Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Tue, 23 Apr 2024 17:33:32 +0200 Subject: [PATCH 10/13] use actions-rust-lang --- .github/workflows/integration.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 18e2e0e8..5b0d6aad 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -95,10 +95,9 @@ jobs: restore-keys: | ${{ runner.os }}-rust- - - uses: actions-rs/toolchain@v1 + - uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: stable - override: true - name: Set environment variables run: | From 8d8e8d790d132acfd16ef8bde552593260281441 Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Tue, 23 Apr 2024 17:38:24 +0200 Subject: [PATCH 11/13] print logs --- .github/workflows/integration.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 5b0d6aad..ea484b9d 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -108,4 +108,17 @@ jobs: working-directory: ~ run: | mkdir -p "${LOG_DIR}" - entrypoint.sh make test -j4 + if ! entrypoint.sh make test -j4; then + echo "" + echo "Tests failed. Printing logs..." + echo "" + echo "Gaia logs:" + tail -100 "${HOME}/data/ibc-0.log" + echo "" + echo "Basecoin logs:" + tail -100 "${LOG_DIR}/basecoin.log" + echo "" + echo "CometBFT logs:" + tail -100 "${LOG_DIR}/cometbft.log" + exit 1 + fi From 16b4a9a1d5a5c21443ccbd5b0529dfeec1f1195c Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Wed, 24 Apr 2024 18:41:21 +0200 Subject: [PATCH 12/13] reorder e2e test order --- ci/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ci/Makefile b/ci/Makefile index 46c5c498..b7433047 100644 --- a/ci/Makefile +++ b/ci/Makefile @@ -8,12 +8,14 @@ create-channel: bash ~/tests/create-channel.sh @echo "Channel created" -token-transfer: upgrade-client +token-transfer: create-channel @echo "Transferring tokens..." bash ~/tests/token-transfer.sh @echo "Tokens transferred" -upgrade-client: create-channel +# This test halts `gaiad` at the end. +# So, this must be the last test that involves `gaiad`. +upgrade-client: token-transfer @echo "Upgrading client..." bash ~/tests/upgrade-client.sh @echo "Client upgraded" From b1562ab687f437f91152a1f02c3a652d1d576e3b Mon Sep 17 00:00:00 2001 From: Ranadeep Biswas Date: Wed, 24 Apr 2024 19:55:56 +0200 Subject: [PATCH 13/13] use active client --- ci/tests/upgrade-client.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/tests/upgrade-client.sh b/ci/tests/upgrade-client.sh index e06eed74..927a1ab0 100644 --- a/ci/tests/upgrade-client.sh +++ b/ci/tests/upgrade-client.sh @@ -5,11 +5,11 @@ BASECOIN_BIN=${BASECOIN_BIN:-${HOME}/build/basecoin-rs/debug/basecoin} echo "Test client upgradability of basecoin-0 on ibc-0" -hermes tx upgrade-chain --reference-chain basecoin-0 --host-chain ibc-0 --host-client 07-tendermint-0 --amount 10000000 --height-offset 20 +hermes tx upgrade-chain --reference-chain basecoin-0 --host-chain ibc-0 --host-client 07-tendermint-1 --amount 10000000 --height-offset 20 sleep 3s plan_height=$("${BASECOIN_BIN}" query upgrade plan | grep -o 'height: [0-9]*' | awk '{print $2}') echo "Waiting for upgrade plan to execute at height $plan_height..." -hermes upgrade client --host-chain ibc-0 --client 07-tendermint-0 --upgrade-height $plan_height +hermes upgrade client --host-chain ibc-0 --client 07-tendermint-1 --upgrade-height $plan_height echo "Test client upgradability of ibc-0 on basecoin-0"