Skip to content

Commit

Permalink
Merge branch 'master' into sean/channel-upgradability
Browse files Browse the repository at this point in the history
  • Loading branch information
ljoss17 committed Mar 6, 2024
2 parents 09181fe + 40d74f6 commit c3deea4
Show file tree
Hide file tree
Showing 60 changed files with 878 additions and 410 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- Allow relaying ICS-04 packets with non-UTF-8 payloads ([\#3770](https://github.com/informalsystems/hermes/issues/3770))
Hermes does not assume anymore that an ICS-04 packet data is valid UTF-8,
by using the `packet_data_hex` attribute when assembling a packet from events, instead of the deprecated `packet_data` attribute.
Relying on the `packet_data` attribute enforces a UTF-8 encoded payload (eg. JSON), disallowing eg. Protobuf-encoded payloads.
The `packet_data` atttribute [has been deprecated][0] in favor of `packet_data_hex` since IBC-Go v1.0.0.
[0]: https://github.com/cosmos/ibc-go/blob/fadf8f2b0ab184798d021d220d877e00c7634e26/CHANGELOG.md?plain=1#L1417
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Improve reliability of compatibility check and fix parsing of expected modules
versions ([\#3831](https://github.com/informalsystems/hermes/issues/3831))
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Add a per-chain configuration `memo_overwrite` allowing users
to overwite the relayer memo used for each transaction
([\#3811](https://github.com/informalsystems/hermes/issues/3811))
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
- Added a new Prometheus metric `simulate_errors` for tracking when a transaction simulation fails, with the following labels:
* `recoverable` (can the execution continue if this happened?)
* `account` (account from which the tx was sent)
* `error_description` (description of the error)
([\#3845](https://github.com/informalsystems/hermes/issues/3845))

```
# HELP simulate_errors_total Number of errors observed by Hermes when simulating a Tx
# TYPE simulate_errors_total counter
simulate_errors_total{account="osmo17ndx5qfku28ymxgmq6zq4a6d02dvpfjjul0hyh",error_description="Unknown error",recoverable="false",service_name="unknown_service",otel_scope_name="hermes",otel_scope_version=""} 4
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Recover from gas simulation failures on legacy chains.
([\#3792](https://github.com/informalsystems/hermes/issues/3792))
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- Improve resilience when relaying on ordered channels.
When relaying packets on an ordered channel, Hermes will now attempt
to detect whether the next message to send has the sequence number
expected on that channel. If there is a mismatch, then Hermes will trigger a packet
clear on the channel to unblock it before resuming operations on that channel.
([\#3540](https://github.com/informalsystems/hermes/issues/3540))
2 changes: 1 addition & 1 deletion .github/workflows/cargo-doc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2023-07-13
toolchain: nightly-2024-03-03
override: true

- name: Build API documentation
Expand Down
93 changes: 19 additions & 74 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,9 @@ env:

jobs:
docker-build:
runs-on: ubuntu-latest
runs-on: macos-14
strategy:
fail-fast: false
matrix:
platform:
- id: linux/amd64
name: amd64
- id: linux/arm64
name: arm64
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -31,92 +25,43 @@ jobs:
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
tags: |
type=ref,event=tag
type=ref,event=workflow_dispatch
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
with:
platforms: linux/amd64,linux/arm64

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

- name: Build and push by digest
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
id: build
uses: docker/build-push-action@v5
with:
context: .
file: ./ci/release/hermes.Dockerfile
platforms: ${{ matrix.platform.id }}
labels: ${{ steps.meta.outputs.labels }}
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
platforms: linux/amd64,linux/arm64
push: true
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Export digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-${{ matrix.platform.name }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1

docker-merge:
runs-on: ubuntu-latest
needs:
- docker-build
steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
pattern: digests-*
merge-multiple: true
path: /tmp/digests

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

- name: Create manifest list and push
working-directory: /tmp/digests
run: |
docker buildx imagetools create --tag ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }} \
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
tags: |
${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
ghcr.io/${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Push image to GHCR
run: |
docker buildx imagetools create \
--tag ghcr.io/${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }} \
${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
16 changes: 8 additions & 8 deletions .github/workflows/misbehaviour.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
substituters = https://cache.nixos.org https://cosmosnix-store.s3.us-east-2.amazonaws.com
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= cosmosnix.store-1:O28HneR1MPtgY3WYruWFuXCimRPwY7em5s0iynkQxdk=
- name: Install sconfig
uses: jaxxstorm/action-install-gh-release@v1.10.0
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: freshautomations/sconfig
platform: linux
Expand All @@ -64,7 +64,7 @@ jobs:
rename-to: sconfig
chmod: 0755
- name: Install stoml
uses: jaxxstorm/action-install-gh-release@v1.10.0
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: freshautomations/stoml
platform: linux
Expand Down Expand Up @@ -106,7 +106,7 @@ jobs:
substituters = https://cache.nixos.org https://cosmosnix-store.s3.us-east-2.amazonaws.com
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= cosmosnix.store-1:O28HneR1MPtgY3WYruWFuXCimRPwY7em5s0iynkQxdk=
- name: Install sconfig
uses: jaxxstorm/action-install-gh-release@v1.10.0
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: freshautomations/sconfig
platform: linux
Expand All @@ -115,7 +115,7 @@ jobs:
rename-to: sconfig
chmod: 0755
- name: Install stoml
uses: jaxxstorm/action-install-gh-release@v1.10.0
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: freshautomations/stoml
platform: linux
Expand Down Expand Up @@ -157,7 +157,7 @@ jobs:
substituters = https://cache.nixos.org https://cosmosnix-store.s3.us-east-2.amazonaws.com
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= cosmosnix.store-1:O28HneR1MPtgY3WYruWFuXCimRPwY7em5s0iynkQxdk=
- name: Install sconfig
uses: jaxxstorm/action-install-gh-release@v1.10.0
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: freshautomations/sconfig
platform: linux
Expand All @@ -166,7 +166,7 @@ jobs:
rename-to: sconfig
chmod: 0755
- name: Install stoml
uses: jaxxstorm/action-install-gh-release@v1.10.0
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: freshautomations/stoml
platform: linux
Expand Down Expand Up @@ -209,7 +209,7 @@ jobs:
substituters = https://cache.nixos.org https://cosmosnix-store.s3.us-east-2.amazonaws.com
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= cosmosnix.store-1:O28HneR1MPtgY3WYruWFuXCimRPwY7em5s0iynkQxdk=
- name: Install sconfig
uses: jaxxstorm/action-install-gh-release@v1.10.0
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: freshautomations/sconfig
platform: linux
Expand All @@ -218,7 +218,7 @@ jobs:
rename-to: sconfig
chmod: 0755
- name: Install stoml
uses: jaxxstorm/action-install-gh-release@v1.10.0
uses: jaxxstorm/action-install-gh-release@v1.11.0
with:
repo: freshautomations/stoml
platform: linux
Expand Down
Loading

0 comments on commit c3deea4

Please sign in to comment.