Skip to content

Commit

Permalink
Adding gaiad v5.0.5 support on CI (#1176)
Browse files Browse the repository at this point in the history
* Adding gaiad v5.0.0 support to CI e2e (#1175)

* Fix gaiad version for relayer service (#1175)

* Adding additional log output for relayer container (#1175)

* Upgrade to gaia v5.0.5 (#1175)

* Removing gaia v5.0.0 files (#1176)

* add changelog

Co-authored-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: Adi Seredinschi <adi@informal.systems>
  • Loading branch information
3 people authored Aug 10, 2021
1 parent 4c90044 commit 2122c86
Show file tree
Hide file tree
Showing 41 changed files with 1,939 additions and 19 deletions.
4 changes: 4 additions & 0 deletions .changelog/unreleased/features/1175-update-ci.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- Update CI to test with gaiad v5.0.5 ([#1175])


[#1175]: https://github.com/informalsystems/ibc-rs/issues/1175
15 changes: 9 additions & 6 deletions ci/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,10 @@ Removing network ibc-rs_relaynet
### [Upgrading the gaia chains release and generating new container images](#upgrading-chains)
The repository stores the files used to configure and build the chains for the containers. For example, the files for a `gaia` chain release `v3.0.0` can be seen [here](./chains/gaia)
The repository stores the files used to configure and build the chains for the containers. For example, the files for a `gaia` chain release `v5.0.0` can be seen [here](./chains/gaia)
> Note: Please ensure you have gaiad installed on your machine and it matches the version that you're trying to upgrade.
> You can check but running `gaiad version` in your machine

If you need to generate configuration files for a new gaia release and new containers, please follow the steps below:

Expand All @@ -172,8 +175,8 @@ If you need to generate configuration files for a new gaia release and new conta
`cd ci`


2. Open the `build-ibc-chains.sh` file and change the release. Just replace the value for the `GAIA_BRANCH` parameter. For example to set it to release `v3.0.0` use:
`GAIA_BRANCH="v3.0.0"`
2. Open the `build-ibc-chains.sh` file and change the release. Just replace the value for the `GAIA_BRANCH` parameter. For example to set it to release `v5.0.0` use:
`GAIA_BRANCH="v5.0.0"`


3. Run the `build-ibc-chains.sh` script:
Expand All @@ -187,17 +190,17 @@ __Note__: This will generate the files for the chains in the `/ci/chains/gaia` f
4. Committing the release files. **You have to** add the new chain files generated to the ibc-rs repository, just `git commit` the files, otherwise the CI might fail because private keys don't match.


5. Update the release for Docker Compose. If this new release should be the default release for running the end to end (e2e) test you need to update the release version in the `docker-compose.yml` file in the `ci` folder of the repository. Open the file and change the release version in all the places required (image name and RELEASE variables. For example, if current release is `v3.0.0` and the new one is `v4.0.0` just do a find and replace with these two values.
5. Update the release for Docker Compose. If this new release should be the default release for running the end to end (e2e) test you need to update the release version in the `docker-compose.yml` file in the `ci` folder of the repository. Open the file and change the release version in all the places required (image name and RELEASE variables. For example, if current release is `v4.0.0` and the new one is `v5.0.0` just do a find and replace with these two values.

Change the version in the image for ibc-0 and ibc-1 services:

```
image: "informaldev/ibc-0:v4.1.0"
image: "informaldev/ibc-0:v4.0.0"
```

And in the relayer service:

```
args:
RELEASE: v4.1.0
RELEASE: v4.0.0
```
18 changes: 17 additions & 1 deletion ci/build-ibc-chains.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,23 @@ set -eou pipefail
## After updating the gaia version below, double-check the following (see readme.md also):
## - the new version made it to docker hub, and is available for download, e.g. `docker pull informaldev/ibc-1:v4.0.0`
## - the image versions and the relayer release in `docker-compose.yml` are consistent with the new version
GAIA_BRANCH="v4.2.0" # Requires a version with the `--keyring-backend` option. v2.1 and above.
GAIA_BRANCH="v5.0.5" # Requires a version with the `--keyring-backend` option. v2.1 and above.

# Check if gaiad is installed and if the versions match
if ! [ -x "$(command -v gaiad)" ]; then
echo 'Error: gaiad is not installed.' >&2
exit 1
fi

CURRENT_GAIA="$(gaiad version)"
echo "Current Gaia Version: $CURRENT_GAIA"

if [ "$GAIA_BRANCH" != "$CURRENT_GAIA" ]; then
echo "Error: gaiad installed is different than target gaiad ($CURRENT_GAIA != $GAIA_BRANCH)"
exit 1
else
echo "Gaiad installed matches desired version ($CURRENT_GAIA = $GAIA_BRANCH)"
fi

BASE_DIR="$(dirname $0)"
ONE_CHAIN="$BASE_DIR/../scripts/one-chain"
Expand Down
4 changes: 4 additions & 0 deletions ci/chains/gaia/v5.0.5/ibc-0/config/addrbook.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"key": "d551bab9ec950b3c71733c80",
"addrs": []
}
152 changes: 152 additions & 0 deletions ci/chains/gaia/v5.0.5/ibc-0/config/app.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml

###############################################################################
### Base Configuration ###
###############################################################################

# The minimum gas prices a validator is willing to accept for processing a
# transaction. A transaction's fees must meet the minimum of any denomination
# specified in this config (e.g. 0.25token1;0.0001token2).
minimum-gas-prices = ""

# default: the last 100 states are kept in addition to every 500th state; pruning at 10 block intervals
# nothing: all historic states will be saved, nothing will be deleted (i.e. archiving node)
# everything: all saved states will be deleted, storing only the current state; pruning at 10 block intervals
# custom: allow pruning options to be manually specified through 'pruning-keep-recent', 'pruning-keep-every', and 'pruning-interval'
pruning = "default"

# These are applied if and only if the pruning strategy is custom.
pruning-keep-recent = "0"
pruning-keep-every = "0"
pruning-interval = "0"

# HaltHeight contains a non-zero block height at which a node will gracefully
# halt and shutdown that can be used to assist upgrades and testing.
#
# Note: Commitment of state will be attempted on the corresponding block.
halt-height = 0

# HaltTime contains a non-zero minimum block time (in Unix seconds) at which
# a node will gracefully halt and shutdown that can be used to assist upgrades
# and testing.
#
# Note: Commitment of state will be attempted on the corresponding block.
halt-time = 0

# MinRetainBlocks defines the minimum block height offset from the current
# block being committed, such that all blocks past this offset are pruned
# from Tendermint. It is used as part of the process of determining the
# ResponseCommit.RetainHeight value during ABCI Commit. A value of 0 indicates
# that no blocks should be pruned.
#
# This configuration value is only responsible for pruning Tendermint blocks.
# It has no bearing on application state pruning which is determined by the
# "pruning-*" configurations.
#
# Note: Tendermint block pruning is dependant on this parameter in conunction
# with the unbonding (safety threshold) period, state pruning and state sync
# snapshot parameters to determine the correct minimum value of
# ResponseCommit.RetainHeight.
min-retain-blocks = 0

# InterBlockCache enables inter-block caching.
inter-block-cache = true

# IndexEvents defines the set of events in the form {eventType}.{attributeKey},
# which informs Tendermint what to index. If empty, all events will be indexed.
#
# Example:
# ["message.sender", "message.recipient"]
index-events = []

###############################################################################
### Telemetry Configuration ###
###############################################################################

[telemetry]

# Prefixed with keys to separate services.
service-name = ""

# Enabled enables the application telemetry functionality. When enabled,
# an in-memory sink is also enabled by default. Operators may also enabled
# other sinks such as Prometheus.
enabled = false

# Enable prefixing gauge values with hostname.
enable-hostname = false

# Enable adding hostname to labels.
enable-hostname-label = false

# Enable adding service to labels.
enable-service-label = false

# PrometheusRetentionTime, when positive, enables a Prometheus metrics sink.
prometheus-retention-time = 0

# GlobalLabels defines a global set of name/value label tuples applied to all
# metrics emitted using the wrapper functions defined in telemetry package.
#
# Example:
# [["chain_id", "cosmoshub-1"]]
global-labels = [
]

###############################################################################
### API Configuration ###
###############################################################################

[api]

# Enable defines if the API server should be enabled.
enable = false

# Swagger defines if swagger documentation should automatically be registered.
swagger = false

# Address defines the API server to listen on.
address = "tcp://0.0.0.0:1317"

# MaxOpenConnections defines the number of maximum open connections.
max-open-connections = 1000

# RPCReadTimeout defines the Tendermint RPC read timeout (in seconds).
rpc-read-timeout = 10

# RPCWriteTimeout defines the Tendermint RPC write timeout (in seconds).
rpc-write-timeout = 0

# RPCMaxBodyBytes defines the Tendermint maximum response body (in bytes).
rpc-max-body-bytes = 1000000

# EnableUnsafeCORS defines if CORS should be enabled (unsafe - use it at your own risk).
enabled-unsafe-cors = false

###############################################################################
### gRPC Configuration ###
###############################################################################

[grpc]

# Enable defines if the gRPC server should be enabled.
enable = true

# Address defines the gRPC server address to bind to.
address = "0.0.0.0:9090"

###############################################################################
### State Sync Configuration ###
###############################################################################

# State sync snapshots allow other nodes to rapidly join the network without replaying historical
# blocks, instead downloading and applying a snapshot of the application state at a given height.
[state-sync]

# snapshot-interval specifies the block interval at which local state sync snapshots are
# taken (0 to disable). Must be a multiple of pruning-keep-every.
snapshot-interval = 0

# snapshot-keep-recent specifies the number of recent snapshots to keep and serve (0 to keep all).
snapshot-keep-recent = 2
17 changes: 17 additions & 0 deletions ci/chains/gaia/v5.0.5/ibc-0/config/client.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml

###############################################################################
### Client Configuration ###
###############################################################################

# The network chain ID
chain-id = ""
# The keyring's backend, where the keys are stored (os|file|kwallet|pass|test|memory)
keyring-backend = "os"
# CLI output format (text|json)
output = "text"
# <host>:<port> to Tendermint RPC interface for this chain
node = "tcp://localhost:26657"
# Transaction broadcasting mode (sync|async|block)
broadcast-mode = "sync"
Loading

0 comments on commit 2122c86

Please sign in to comment.