The Agoric OpCo engineering team is pleased to publish the agoric-upgrade-12-rc0 release. This release is primarily intended to fix state-sync and NPM published packages. It does not change the behavior of any contracts, but includes the smart wallet changes published in the agoric-upgrade-11wf release. It fixes at least the following issues:
- #8325: enable restore from state-sync with payloads larger than 64 MB
- #8423: avoid a potential consensus failure when the node is restarted during busy blocks
- #8321: allow a brand new chain to start with a functioning walletFactory contract
- #8501: allow usage of outgoing IBC messages in JS contracts
- #8380: make NPM published packages more usable for dapp development
Additionally the new software contains the following noteworthy changes:
- #8483: reduce the consensus
BlockParams.MaxBytessize to 5MB as a mitigation for the ASA-2023-002 security advisory impacting the cosmos ecosystem.
Assuming agoric-upgrade-12-rc0 satisfies all pre-release/testnet validation checks, it will be promoted to agoric-upgrade-12, and recommended for chains to upgrade from the previous agoric-upgrade-11 release. As a state-machine-breaking upgrade, once approved, all chain validators will need to upgrade from agoric-upgrade-11 to this new version (after the chain halts due to reaching the height required in a governance proposal).
Unlike the agoric-upgrade-11 release, no data is migrated during this upgrade.
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 using this release. Please see the forum post for more details.
Discussion for this release will take place in the Agoric community forum.
Tag: agoric-upgrade-12-rc0
Commit: ee5a5fd
Docker: ghcr.io/agoric/agoric-sdk:38
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 agoric-upgrade-11, once the upgrade height for a subsequent proposal to upgrade to agoric-upgrade-12 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-12-rc0
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-12 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.