# aevad v1.1.4 — aeva-1 upgrade `v1.1.4`

This folder is the release for aeva-1's software upgrade **`v1.1.4`**: from
`v1.1.3` to `v1.1.4`. The upgrade happens at the height named by the
software-upgrade proposal (plan `v1.1.4`); follow it on
[aevachain.app/governance](https://aevachain.app/governance). What changes:
`RELEASE_NOTES.md`. How to rebuild the binaries byte for byte: `PROVENANCE.md`.

## Files

| File | What |
| --- | --- |
| `aevad-v1.1.4-linux-amd64`, `-arm64` | the node binary (sha256 `bacbcdb709fd49664406dc9b8daea77624a1a5cd5e2671b1187adcb9757d525a`, `507b2d0cfa15246349286dd6ee378a3490d98ae5d539d70109ec79b44ebc9fe3`) |
| `aeva-indexer-…`, `aeva-faucet-…` | the indexer and the faucet of the same commit |
| `upgrade-info.json` | the plan's binaries with their checksums (the proposal's `plan.info`) |
| `chain-id.txt` | `aeva-1` |
| `aeva-release-key.pub` | the Aeva release key, `1B6F54CB7B98D7EC` |
| `SHA256SUMS`, `SHA256SUMS.minisig` | every file above, signed with that key |

The genesis is unchanged: [genesis.aevachain.app/aeva-1/genesis.json](https://genesis.aevachain.app/aeva-1/genesis.json),
sha256 `d7d491b078bcb9d16f888077c95404c8f2ba35b4354a6bf853a80b9f2eaf11fa`.

## Before the height: download and check

```sh
ARCH=$(dpkg --print-architecture)
cd "$(mktemp -d)"
REL=https://releases.aevachain.app/v1.1.4
curl -fsSLO "$REL/aevad-v1.1.4-linux-$ARCH" -O "$REL/SHA256SUMS" -O "$REL/SHA256SUMS.minisig"
minisign -Vm SHA256SUMS -P RWTs15h7y1RvG7qjUf4pzjpT4HVqmexAoScwZ7AhEMaxVKDMKhRdvBb+
grep " aevad-v1.1.4-linux-$ARCH\$" SHA256SUMS | sha256sum -c -
sudo install -m 0755 "aevad-v1.1.4-linux-$ARCH" /usr/local/bin/aevad-v1.1.4
/usr/local/bin/aevad-v1.1.4 version    # v1.1.4
```

Do **not** replace `/usr/local/bin/aevad` yet: the new binary refuses to run
before the upgrade height ("BINARY UPDATED BEFORE TRIGGER").

## With cosmovisor

Place the checked binary before the height; cosmovisor switches to it when
the node stops for the plan:

```sh
sudo install -m 0755 "aevad-v1.1.4-linux-$ARCH" "$DAEMON_HOME/cosmovisor/upgrades/v1.1.4/bin/aevad"
```

With `DAEMON_ALLOW_DOWNLOAD_BINARIES=true` cosmovisor fetches it from the
plan's info (`upgrade-info.json`) and checks its sha256 itself.

## At the height without cosmovisor: swap and restart

Every node stops at the plan's height with `UPGRADE "v1.1.4" NEEDED at
height: <h>` in its log (systemd restarts it and it stops again: that is
expected). Then, on the sentry and the validator:

```sh
sudo install -m 0755 /usr/local/bin/aevad-v1.1.4 /usr/local/bin/aevad
sudo systemctl restart aevad
journalctl -u aevad -f     # "applying upgrade v1.1.4", then blocks again
```

What the upgrade changes: `RELEASE_NOTES.md`.

A node that syncs aeva-1 from genesis runs each release up to the next
upgrade's height, in order (`v1.1.3` is the one before this release), then
this release from the `v1.1.4` height.
