Changelog:
- Updated the release page link to final release with pre-release tag removed
Hello Agoric Validators & BLD Community,
Agoric OpCo engineers have released the agoric-upgrade-18a
software upgrade for the agoric-3 chain.
This release primarily addresses issues discovered after the agoric-upgrade-18
chain upgrade and includes a CometBFT update to patch a known issue.
The following changes are included in this release:
- Fix for address hooks
- Patch for ASA-2025-001 and ASA-2025-002
- Upgrade of CometBFT to 0.34.35
Important Note!!
The CometBFT upgrade requires building the Agoric SDK with Golang version 1.22 or greater . To check your Golang version, examine the output produced by running go version in your build environment.
We’ve prepared the following:
Milestone Testing
Since Emerynet is currently not viable for testing due to the previous issues encountered with agoric-upgrade-18
, this release will instead be tested on Devnet. We welcome and encourage validators to participate in the testing process to validate the stability and performance of the new software before going to mainnet.
-
Devnet Upgrade: The network will be upgraded to agoric-upgrade-18a for testing
-
Functional Testing:
- Block production and consensus stability
- Smart contract execution
- IBC and cross-chain operations
- Performance under expected network conditions
-
Observations & Reporting: Any anomalies, bugs, or performance concerns will be shared in the designated testing discussion channels.
When the testnet validation is complete, Agoric OpCo will give an update before cutting a final release for validators to propose the agoric-upgrade-18a
software upgrade for mainnet.
Creating a Mainnet upgrade proposal:
Confirm the commit hash and upgrade name BEFORE submitting a proposal.
# Edit as needed
FROM_WALLET=yourwallet
UPGRADE_HEIGHT="1234-get-blockheight-from-estimator"
# Verify values
UPGRADE_TO="agoric-upgrade-18a"
CHAIN_ID="agoric-3"
COMMIT_ID=$(git rev-parse HEAD)
ZIP_URL="[https://github.com/Agoric/agoric-sdk/archive/${COMMIT_ID}.zip](https://github.com/Agoric/agoric-sdk/archive/$%7BCOMMIT_ID%7D.zip)"
CHECKSUM=sha256:$(curl -L "$ZIP_URL" -o- | shasum -a 256 | cut -d' ' -f1)
UPGRADE_INFO="{\"binaries\":{\"any\":\"$ZIP_URL//agoric-sdk-${COMMIT_ID}?checksum=$CHECKSUM\"},\"source\":\"$ZIP_URL?checksum=$CHECKSUM\"}"
agd tx gov submit-proposal software-upgrade $UPGRADE_TO --upgrade-info="$UPGRADE_INFO" --upgrade-height="$UPGRADE_HEIGHT" --title="Upgrade to $UPGRADE_TO" --description="This proposal if voted will upgrade the chain to $UPGRADE_TO" --from=$FROM_WALLET --chain-id=$CHAIN_ID
Note for managing Node.js versions
We recommend avoiding using nvm
or similar tools to manage the Node.js version, and instead rely on a package installed globally through the system package manager. Tools like nvm
only affect the current shell session, and unless care is taken to configure the agd
service environment to also use nvm
with the same Node.js version, there is a risk that the Node.js version used when building may be different than the one when running the service, resulting in errors when trying to start the service. We are looking at ways to simplify this dependency management requirement specific to the Agoric chain.
Note for anyone generating state-sync snapshots or restoring from state-sync
State-sync snapshots now only include minimal data to restore a node, and the new configuration settings will help further reduce requirements of non-archival nodes. However, there may still be continued performance issues related to state-sync. In particular, we’ve observed that on some deployments, the snapshot taking and restoring process can take multiple hours, require about 20GB of temporary free disk space, and 16GB of memory.
Note: the agd snapshots export
command has been fixed, and can now be used to generate a snapshot export of the latest application state (while the node is not running). Combined with other snapshots commands and the agd tendermint bootstrap-state
command, this can be used to restore a node (state-sync pruning) without having to connect the node to the p2p network.