github Agoric/agoric-sdk agoric-upgrade-14

latest releases: agoric-upgrade-18-rc2, v0.35.0-u18.2, fast-usdc@0.1.1-u18.2...
8 months ago

The Agoric OpCo engineering team is pleased to publish the agoric-upgrade-14 release. This release is primarily intended to update interchain stack dependencies, and update the Smart wallet and Zoe to support future contract upgrades.

The following new features are included in this release:

  • #7992 and #8095: enable executing JavaScript core proposals during a chain software upgrade
  • #8224: incremental major upgrade of the interchain stack (see new versions below)

The release contains at least the following fixes:

  • #8292, #8293, and #8286: WalletFactory survive upgrades and repair outstanding purses and offers
  • #8387, #8265, and #8263: Zoe survive upgrades and handles upgrades of vatAdmin
  • #9036: eliminate fee double-charge by using configurable decorator

The full set of changes in this release can be found at #9003 and #9073.

The upgrade to cosmos 0.46 includes a new index being created during the upgrade, which we estimate can take from one to two hours for chains with a large IAVL state like the agoric-3 chain.
During that time, no progress is shown on the output, but the process will consume 100% of a CPU core.

This code has satisfied all pre-release/testnet validation checks, and is now recommended for chains to upgrade from the previous agoric-upgrade-13 release. As a state-machine-breaking upgrade, once approved, all chain validators will need to upgrade from agoric-upgrade-13 to this new version (after the chain halts due to reaching the height required in a governance proposal).

Since the agoric-upgrade-11 release, state-sync snapshots include more data than before. Nodes which have inadvertently pruned this data (e.g. those created from a state-sync before the agoric-upgrade-11 release) will not be able to produce such snapshots, and will need to be restored from state-sync. We are aware of continued performance issues related to state-sync. In particular, we've observed that on some deployments, the current implementation can require 100 GB of temporary free disk space and 16GB of memory.

Below is the cosmos upgrade handler name for this release. This is the name that can be used in governance proposals to deploy this upgrade.

Cosmos Upgrade Handler Name: agoric-upgrade-14

Below is the git information related to this software release. Note the git tag and cosmos upgrade handler name differ.

Git Tag: agoric-upgrade-14
Git Commit: d69c011001d300735546dcb74a9ae21e306e4789
@agoric/cosmos package version: 0.35.0-u14.1
Docker: ghcr.io/agoric/agoric-sdk:41

As shown in go.mod this release is based on:

ibc-go v6.2.1
cosmos-sdk v0.46.16
cometbft v0.34.30

How to upgrade

Presuming that your node is running agorictest-upgrade-13, once the upgrade height for a subsequent proposal to upgrade to agorictest-upgrade-14 has been reached, your node will halt automatically allowing you to upgrade the agoric stack.

# prepare by installing Go 1.20.2 or higher, Node 16 or 18, clang 10 or gcc 10
# stop the agd service
cd agoric-sdk
git fetch --all
git checkout agoric-upgrade-14
yarn install
yarn build
(cd packages/cosmic-swingset && make)
#start the agd service

Do not copy the agd script or Go binary to another location. If you would like to have an executable agd in another location, then create a symlink in that location pointing to agoric-sdk/bin/agd.

Node Version

Node.js 16.13 or higher (previous LTS) or Node.js 18.12 or higher (maintenance LTS).
Please note the current active LTS of Node 20 is not yet officially supported.

Golang Version

The agoric-upgrade-14 release requires Go 1.20.2 or higher.

C Compiler Version

Clang version 10 or GCC version 10 required.

Troubleshooting repoconfig.sh: No such file or directory

Unlike typical cosmos-sdk chains where the daemon is a single executable file, Agoric's use of cosmos-sdk depends on many components of agoric-sdk at runtime. Copying agd to /usr/local/bin or the like is unlikely to produce a working installation. For more detail, see: #7825

Troubleshooting Cannot find dependency ... in systemd

If you have LimitNOFILE=4096 in your systemd unit file, change it to LimitNOFILE=65536. For more detail, see #7817

Specifying --upgrade-info for the software upgrade proposal

The ./scripts/gen-upgrade-proposal.sh is designed to aid in composing a agd tx submit-proposal software-upgrade ... command. In particular, it captures package checksums to verify integrity of downloaded software.

Don't miss a new agoric-sdk release

NewReleases is sending notifications on new releases.