CosmWasm 1.0, coming soon(tm)

Ethan Frey
CosmWasm
Published in
4 min readSep 20, 2021

Important update for any project planning working with CosmWasm

About a month ago, we gave our roadmap to CosmWasm 1.0. Since then, we have been hard at work, but we will not be finished by mid-September. Here is the latest update on our roadmap.

Photo by Jeffery Wong on Unsplash

Feature Requests and Bugfixes

When we released CosmWasm 0.16 and wasmd 0.18, we asked all chains who plan to use it to test it out and give feedback. And we got some feedback, from Secret Network. Their integration is considerably different than most, as they use a different runtime that can fit inside an Intel SGX enclave. In the past, they had some custom modifications to cosmwasm_std and basically had to maintain a parallel stack. We have had a number of discussions and made some API modifications to be a bit more flexible and allow the same contracts to run in Secret Network as in other CosmWasm networks… as long as you don’t use iterators (which don’t work with their storage encryption). It is great to get these changes in before 1.0, for the greater long-term ecosystem, but they were quite last-minute and have caused some delays.

We have also been surprised by the lack of bugs reported by other chains running CosmWasm 0.16 (notably Terra testnet) but have been busy testing it ourselves in a number of apps. We did find a few minor bugs in wasmd, which have since been fixed. (These were usability issues and a loss-of-function bug, meaning a call failed that should succeed… no security issues). We did some last polish to the CosmWasm types, but have found no bugs there.

These feature requests and the extra testing we have done internally (in the absence of feedback from the community), coupled with late summer vacations have caused some delays to our original goals. We still hope to have a v1.0.0-beta tagged by the first week of October.

You may have noticed the v1.0.0-soon tag floating around on some of our repos. This is a “mostly finished” version, which we tagged, so we can do integrations between the multiple repos required for the release. There are still some more changes needed for v1.0.0-beta, and this tag is only intended for internal use.

Compatibility with 0.16

While we have previously promised that contracts built with v1.0.0-beta will be compatible with any 1.x runtime, many people have asked if 0.16 contracts will be compatible. The answer is no — CosmWasm 0.16 contracts will not run in CosmWasm v1.0.0-beta runtimes. Some of the changes we made to accomodate Secret have broken the Wasm-VM ABI and change the versioning.

They are not major breaks and it may be possible to make a runtime that supports both 0.16 and 1.0 contract, but we don’t have the dev resources for that. We highly encourage everyone to wait until v1.0.0-beta to launch CosmWasm contracts to mainnet. Otherwise, you should plan on your own team adding some backwards compatibility layer, which is a lot of work to avoid waiting a few weeks.

Auditing Schedule

As we previously stated, v1.0.0-beta is a finalized API and fully reviewed and tested code on our end. However, it will not have had a formal security audit, so we will maintain a beta label. We know there is a strong demand for a proper audit and have scheduled a reputable auditing company to audit the cosmwasm and wasmvm repos (the core Rust code) starting late October. Once they have made their final report and we have fixed any security issues they have found, we can declare a final v1.0.0. It will be compatible with v1.0.0-beta, the only difference is the audit and resultant fixes.

CosmWasm was generously funded by ICF and enabled the Cosmos community to embrace Smart Contracts and launch many successful businesses. The ICF funding ended in March and placed the burden on Confio to continue the development on this key project from its own funds, including making many changes requested by the projects using CosmWasm.

Given the importance of the Audit to the ecosystem of chains already using CosmWasm and those who have CosmWasm on their roadmaps we need all projects to step up and fund this valuable initiative. The benefits of the audit are considerable and it is reasonable to ask the beneficiaries to contribute and not expect Confio to bear all the costs. We ask those who are using or plan to use CosmWasm to get in touch, together we can build a robust ecosystem.

Ecosystem Development

We are also moving towards a more collaborative funding mechanism and decentralized development for CosmWasm post-1.0. Confio will continue to maintain the code quality in the core repos, but many of the feature requests, especially in the tooling and documentation, come from external stakeholders and would move faster if the ownership was decentralized. We will explain this plan more in detail in the next article.

For announcements on the final release, you can watch us here, on Twitter, or join our Discord channel.

--

--