Skip to content

agoric-upgrade-11

Compare
Choose a tag to compare
@warner warner released this 06 Sep 01:07
· 1949 commits to master since this release

The Agoric OpCo engineering team is pleased to publish the agoric-upgrade-11 release. This is a promotion of agoric-upgrade-11-rc0 to full release status, and contains the same code (and uses the same Git commit ID) as agoric-upgrade-11-rc0. This release is primarily intended to fix state-sync and data-encoding formats, and does not change the behavior of any contracts. It fixes at least the following issues:

  • #8031 : the JavaScript VM export data is now stored more efficiently, without encoding
  • #8081 : using state-sync import to create a new node no longer breaks an hour later
  • #8025 : state-sync import now repopulates all metadata, enabling a later state-sync export
  • #7929 : remove Golang version from in-consensus messages
  • #7829/#7834/#7836 : assume all compiler builtins are present
  • #6527 : enable genesis export with JS VM data

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

When this upgrade is activated, there will be a slight pause while some database contents are migrated.

After the upgrade, state-sync snapshots will include more data than before. Nodes which have inadvertently pruned this data (e.g. those created from an earlier state-sync) will not be able to produce such snapshots, and will need to be restored from a state-sync snapshot made with the agoric-upgrade-11 software. Please see the forum post for more details.

Discussion for this release will take place in the Agoric community forum.

Tag: agoric-upgrade-11
Commit: 92b6cd7
Docker: ghcr.io/agoric/agoric-sdk:36

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

ibc-go v3.4.0
cosmos-sdk v0.45.11
tendermint v0.34.23

How to upgrade

Presuming that your node is running mainnet1B, once the upgrade height for a subsequent proposal to upgrade to agoric-upgrade-11 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, clang 10 or gcc 10
# stop the agd service
cd agoric-sdk
git fetch --all
git checkout agoric-upgrade-11
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 LTS (version 16.13.0 or higher).

Golang Version

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

C Compiler Version

In general, Clang version 10 or GCC version 10 required, however this release may work with GCC version 9.

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.