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.MaxBytes
size 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.