Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to Cosmos SDK v0.44 #501

Closed
tomtau opened this issue Apr 27, 2021 · 28 comments · Fixed by #717
Closed

Update to Cosmos SDK v0.44 #501

tomtau opened this issue Apr 27, 2021 · 28 comments · Fixed by #717

Comments

@tomtau
Copy link

tomtau commented Apr 27, 2021

Currently, pre-release
https://github.com/cosmos/cosmos-sdk/releases/tag/v0.43.0-alpha1

may be worth basing 1.0 RFC off here, as it contains quite a few breaking changes and the future state sync hook patch will be on top of it

@ethanfrey
Copy link
Member

This is way too unstable to consider for our release coming out in the next few days.

I would consider this stable once it is live on multiple testnets and has been heavily tested by the community. (It was already v0.42.1 or so that was really the stable Stargate release).

Depending on the QA process, we could consider updating for 1.0. Otherwise, a stable 1.0 based on 0.42.x and make a 1.1 wasmd release with 0.43.x (with a migration path and same contract structure)

@ethanfrey
Copy link
Member

I have my eye on this release for quite some time. It was supposed to have an rc about 4 weeks ago, and there is quite a list of work to do: https://github.com/cosmos/cosmos-sdk/milestone/26

Having been burnt by Stargate releases a number of times, we will be conservative in updating deps.

@iramiller
Copy link
Contributor

I would consider this stable once it is live on multiple testnets and has been heavily tested by the community.

I concur with this sentiment.

It is worth considering that at least for the Provenance networks we will not have testnets running the 0.43 version until we have some sort of wasm dependency (xxxx-alpha?) available that is compatible.

@robert-zaremba
Copy link

I would strongly encourage updating on 0.43. We released alpha 1.5 week ago. Beta is over the corner (hopefully 2 more days to go). Gravity will be also based on 0.43.
It's important to lead the 0.43 adoption. We spend last 2-3 weeks on testing and code audit so hopefully it will go smooth.

0.43 update is far from complexity of Stargate. There are few breaking changes (notably the Codec / Marshaller interface), which can be fixed with sed.

@robert-zaremba
Copy link

BTW - the tasks you can see in the milestone are related to checklists, tests and audits, which are mostly wrapped up.
Next up will be simulation tests which we will start right after beta release.

@ethanfrey
Copy link
Member

ethanfrey commented May 7, 2021

Thanks for the input @robert-zaremba
Yeah, that list looked quite long and far from release. Hope it is much quicker as you say.

Has a similarly thorough audit gone through ibc-go 1.0 or how is that being coordinated?
I assume any real app will need cosmos sdk 0.43 and ibc-go 1.0 and that it needs a 0.43 final before ibc-go 1.0 can be published.

@robert-zaremba
Copy link

I have no idea about ibc-go release flow. I will need to check with ibc-go.

@robert-zaremba
Copy link

I was checking with IBC team - they are following the SDK releases and are already testing with 0.43-beta

@alpe alpe added this to the v1.x.0 milestone May 28, 2021
@tomtau
Copy link
Author

tomtau commented Jul 15, 2021

Thanks for the input @robert-zaremba
Yeah, that list looked quite long and far from release. Hope it is much quicker as you say.

Has a similarly thorough audit gone through ibc-go 1.0 or how is that being coordinated?
I assume any real app will need cosmos sdk 0.43 and ibc-go 1.0 and that it needs a 0.43 final before ibc-go 1.0 can be published.

for reference, since then -- https://github.com/cosmos/cosmos-sdk/releases/tag/v0.43.0-rc1 -- final release soon.
https://github.com/cosmos/ibc-go/releases/tag/v1.0.0-rc0

@ethanfrey
Copy link
Member

Yeah, good update.
May be good looking at again before 1.0.

Is there any chain that would want to use CosmWasm 1.0 with CosmosSDK 0.42?

@iramiller
Copy link
Contributor

Provenance is beginning a pretty significant set of changes to support 0.43. The headline features of feegrant and authz are driving the desire to adopt this release sooner than later.

Our existing 0.42 testnet/mainnet release with Cosmwasm is slated for bugfixes only going forward.

@tomtau
Copy link
Author

tomtau commented Jul 16, 2021

One nice thing in 0.43 is https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-041-in-place-store-migrations.md that modules are versioned -- so it may be good to have 1.0 based on that even if feegrant/authz aren't initially supported.

One more compelling item is that there's a corresponding ibc-go 1.0.0 aligned with 0.43: https://github.com/cosmos/ibc-go/releases which, among other things, contains fixes to the solo machine client (solo machine client doesn't work in 0.42)

@ethanfrey
Copy link
Member

It is now at rc2...

may be worth basing 1.0 RFC off here, as it contains quite a few breaking changes and the future state sync hook patch will be on top of it

btw, just reviewing cosmos/cosmos-sdk#7340 (comment) and it seems there isn't even a design for this, much less a plan to integrate it. I do not think this will end up in the Cosmos SDK this year unless some CosmWasm-based chain champions it. And I kind of doubt it would make it in 0.43

@ethanfrey
Copy link
Member

We have feature and api freeze for cosmwasm 0.16, which is 1.0 RFC

We are finalizing wasmd 0.18 in the next few weeks. Only api changes expected are around events, but there may be a few others. It should be cut in max 2 weeks.

Both those are 1.0 RFC and we plan to test those with other chains.

0.43.0 is still in rc and it is too risky to include it now. 1.0 will base on 0.42.x

That said, once we cut a 1.0, we could start a new branch with 0.43 support. Confio doesn't have much energy motivation on this until 0.43 is on the Cosmos Hub. Based on past experience only versions deployed to gaia have LTS promises.

But if Provenance wants to do such work, we are happy to review and maintain such a 0.43 branch. I would wait until 0.18 is release to start it, so we'd only have to merge in bugfixes from master.

@iramiller
Copy link
Contributor

Currently we have a patched up version that is letting us build and test the rest of our system but soon we need to focus on finishing our smart contract integration so we can get to release.

I have a couple of engineering resources that we are able to dedicate to this. I would like to work close with the cosmwasm team if we were to contribute work on a 0.43 solution. Let's chat Monday @ethanfrey

@ethanfrey
Copy link
Member

I added a related issue in CosmJS, which is likely needed for any full-stack cosmwasm solution based on 0.43 as well: cosmos/cosmjs#865

You can add questions there and maybe Simon can explain better what happened, but the SDK team seemed to have made client API breaking changes leaving it very difficult for a client to support both 0.42 and 0.43 at the same time... we have to pick one, not both.

@robert-zaremba
Copy link

We are releasing RC3 today, IBC / x/capability bug is merged (which is also related to 0.42.8). The CosmoJS issue shouldn't be a problem.

Many chains are going to upgrade to 0.43 and it has lot of great things which didn't make it into Stargate (due to Stargate bugs fix releases 0.40-0.42). 0.43 has been in feature freeze since beginning of May. Features like new keys (secp256r1), authz and feegrant are very useful and it will be great to have cosmwasm joining the party for the stable release!

@tomtau
Copy link
Author

tomtau commented Aug 11, 2021

For reference: https://github.com/terra-money/core/tree/master/x/wasm Terra is on 0.43

@iramiller
Copy link
Contributor

Provenance has been keeping a branch of the wasm module for 0.43 current with frequent merges from the master cosmwasm upstream branch. Remaining tasks include some updated IBC test contracts to ensure the entire go-ibc 1.0.0 suite passes. We intend to continue merging updates from upstream in until the final 0.18 is released. Testing and certification work with our existing contracts is on going.

https://github.com/provenance-io/wasmd/tree/provenance-409-cosmos-v0.43

@ethanfrey
Copy link
Member

The recently tagged v0.18.0-rc3 is complete except for some minor tweaks in how we handle events in submessages. But that should be a good place to base on. We should cut v0.18.0 next week.

Once we cut that, if you want to rebase your branch on it and make a PR, we can take a look at the code. (You don't have to rebase, but any approach that shows the minimal diff... sometimes lots of merges from master can make hard PR reviews).

Thank you for this initiative.

@alpe
Copy link
Member

alpe commented Sep 1, 2021

I will rename the issue to v0.44

the v0.44 release (hopefully today) which will be the v0.43 + a breaking security patch.

https://discord.com/channels/669268347736686612/680435043570941973/882217645708050442

0.42 is vulnerable.

https://discord.com/channels/669268347736686612/680435043570941973/882576862528831488

Update:

v0.42 will be supported until 6 months after v0.43 release
https://discord.com/channels/669268347736686612/669274997264613376/883101095264653342

@alpe alpe changed the title Update to Cosmos SDK v0.43 Update to Cosmos SDK v0.44 Sep 1, 2021
@ethanfrey ethanfrey modified the milestones: v1.x.0, v2.0.0 Oct 7, 2021
@ethanfrey
Copy link
Member

We are preparing a v1 release very shortly.

This will be the primary feature in the v2 release, which we will hope to get out in a few months after v1.
They will have the same contracts and the normal sdk upgrade path

@ethanfrey
Copy link
Member

ethanfrey commented Nov 16, 2021

Whereas:

  • we have not yet hit 1.0 (due to hunting down security issues and sdk integration details)
  • and there are 4 networks running with a fork of wasmd to add 0.44 sdk comptability
  • and the gaia testnet is using Cosmos SDK 0.44 (promising better support)

We propose to:

  • close all known code-related (non-doc) issues in the v1.0 milestone and tag a 0.21 release
  • make a PR to update wasmd to use Cosmos SDK 0.44
  • tag a 0.22 release and get some feedback and testing on it
  • pull select issues from the v1.x milestone and v2.0 milestone
  • tag 1.0.0-beta
  • Audit time

We cannot promise a timeline, but we can promise the priority list. Issues not on these milestones that are not security related will not be considered for v1.0 unless there are exceptional circumstances.

If you have a fork that added 0.44 support that we should use as reference, feel free to add a link in the comments.

If you have a strong objection to this and plan to run CosmWasm 1.0 with Cosmos SDK 0.42 in production (or already have it in production), please let us know ASAP so we can take that into consideration before committing to this proposal.

@ethanfrey
Copy link
Member

Please note that this code will in no way be ready for some network's planned Dec 15 upgrade and that plan was made without any consultation to Confio or our roadmap.

We have pulled this up in priority and included it in 1.0 by popular demand, but not for any particular release date. It should be ready sometime in January (after holidays).

@iramiller
Copy link
Contributor

It should be ready sometime in January (after holidays).

Does ready in this case mean 'code complete' or does it mean 'tested and official release cut'

In either case a consuming project would need to budget time for their own integration and testing which would likely mean a best case dependent project upgrade no earlier than February or so...

@ethanfrey
Copy link
Member

I would assume an official release of wasmd based on the 0.45 "bug fix" release in January. Not necessarily 1.0 (likely 0.22), but a tested integration including with IBC and contracts.

@robert-zaremba
Copy link

robert-zaremba commented Jan 19, 2022

Cosmos SDK v0.45 Released!

@ethanfrey
Copy link
Member

Wonderful!

#721 is on the rc. Time to merge

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants