Wasmd 0.40 released

Pino Surace
CosmWasm
Published in
3 min readMay 31, 2023

We want to give a huge shout-out to all the contributors and teams who brought their ideas, features, and hard work to make this release happen.

Thank you all for putting in so much effort and energy!

Photo by Tim Mossholder on Unsplash

Huckleberry security fix

The IBC-Go security patch was applied to fix the “huckleberry” security issue. This issue is categorized as low severity, with a limited impact and a low likelihood of being exploited. However, it is important to note that depending on the architecture of a full node, this issue has the potential to result in a vulnerability of high or critical severity.

Further reading:

Cosmos SDK 47

This represents a significant leap forward from the previously supported version of Cosmos SDK 45. Indeed it introduces many changes, such as:

  • Deprecation of the x/params module: modules params are now handled directly by the modules themselves via the MsgUpdateParams message. Wasmd was migrated away from using x/params as well as all core SDK modules. Ensure that all `ParameterChangeProposal` are executed before the upgrade or migrate them to `v1.gov`. SDK and wasm modules execute a migration before so that these proposals would not be affected.
  • Upgrade to CometBFT v0.37.1, which introduces changes of events keys and values from []byte to string, and ABCI 1.0, which supports the new PrepareProposal and ProcessProposal ABCI methods.

The SDK version includes some key store migration for the CLI. Make sure you back up your private keys before testing this!

  • Take care that you use the goleveldb version used in the SDK. A transitive dependency may change it, which causes failing queries on a running server: `Error: rpc error: code = InvalidArgument desc = failed to load state at height 1; version does not exist (latest height: 1): invalid request`

Ensure replace directive in go.mod:

replace github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1–0.20210819022825–2ae1ddf74ef7

  • With custom modules, use the new proto-builder version in the Makefile to let proto-types register with the correct registry

Further reading:

CLI

  • To submit wasm proposals, the command “wasmd tx gov submit-proposal” is replaced by “wasmd tx wasm submit-proposal
  • “add-genesis-account”, “gentx”, “add-genesis-account”, “collect-gentxs” and others are now under genesis command
  • The “broadcast-mode block” flag option was removed. To query the result for a TX, the following command can be used “wasmd q tx <hash>

Further reading:

Dependency updates

  • Upgrade IBC-Go to v7.0.1, which includes Huckleberry security fix
  • Upgrade Cosmos-SDK to v0.47.2, which is the latest release for cosmos-sdk 0.47x
  • Upgrade CometBFT to v0.37.1, which is the latest stable release, and includes some bug fixes and enhancements

State breaking

As the version number indicates already, wasmd v0.40.0 is not a drop-in replacement for v0.32.0. The changes in this release require a coordinated chain upgrade. This release contains a state migration for the wasmd module that stores the params in the module store.

Please also see the changes in Cosmos-SDK and IBC-Go and carefully read the upgrade/migration guides:

Get Involved

Like what you see? Let the world know on Twitter or join the discussion on Discord. To stay informed, make sure to follow us on Medium and keep an eye out for upcoming CosmWasm Academy cohorts that can help you elevate your skills.

Lastly, be sure to join us in Berlin for AwesomWasm 2023 and HackWasm 2023.

--

--