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

This folder is the release for aeva-1's software upgrade **`v1.1.1`**: from
`v1.1.0-locks` to `v1.1.1`. The upgrade happens at the height named by the
software-upgrade proposal (plan `v1.1.1`); 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.1-linux-amd64`, `-arm64` | the node binary (sha256 `a62c27a4601029ced581e24a54e77037920cb690d38fd6e893016fe5870bd088`, `0e4a06e2875972d60da5fd2359569673d65e63935c4baa738af1aad99aa734c0`) |
| `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.com/v1.1.1
curl -fsSLO "$REL/aevad-v1.1.1-linux-$ARCH" -O "$REL/SHA256SUMS" -O "$REL/SHA256SUMS.minisig"
minisign -Vm SHA256SUMS -P RWTs15h7y1RvG7qjUf4pzjpT4HVqmexAoScwZ7AhEMaxVKDMKhRdvBb+
grep " aevad-v1.1.1-linux-$ARCH\$" SHA256SUMS | sha256sum -c -
sudo install -m 0755 "aevad-v1.1.1-linux-$ARCH" /usr/local/bin/aevad-v1.1.1
/usr/local/bin/aevad-v1.1.1 version    # v1.1.1
```

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.1-linux-$ARCH" "$DAEMON_HOME/cosmovisor/upgrades/v1.1.1/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.1" 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.1 /usr/local/bin/aevad
sudo systemctl restart aevad
journalctl -u aevad -f     # "applying upgrade v1.1.1", 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.0-locks` is the one before this release), then
this release from the `v1.1.1` height.
