Skip to content
This repository has been archived by the owner on Dec 8, 2022. It is now read-only.

Craft Middleware refactor #114

Closed
faddat opened this issue May 20, 2022 · 3 comments
Closed

Craft Middleware refactor #114

faddat opened this issue May 20, 2022 · 3 comments

Comments

@faddat
Copy link
Contributor

faddat commented May 20, 2022

Hey guys, so there's been a decision upstream that has pretty deep effects on craft.

antehandler -> middleware -> antehandler

So basically we've got to rework craft and the promise of not breaking api's well, it won't be fulfilled. But that's okay, we won't dwell on that part.

In fact, Craft has become all of Notional's chains, will soon become Dig, and we'd like it to kick off a few hundred, or thousand chains.

Here's some relevant context, but it is fair to say that there are affects across the entire cosmos stack.

cosmos/cosmos-sdk#11979

cosmos/cosmos-sdk#11955

Specifcally, the SDK team has decided to revert to the antehandler pattern from middleware.

Here are the pieces of craft that are affected by this decision:

  • exp module
  • cosmwasm
  • ibc 3.0
  • groups module
  • app.go
  • nfts

So, that's to say that we're going to need to do significant rework here, I'd like to say that we need to give ourselves at least two weeks to sort that out, and then return to the previous release cadence.

Since Osmosis is sponsoring the use of craft as a template to be included in the sdk, and because I really want to see live integration tests across cosmos like the one that I made for Gaia that state syncs Gaia with numerous databases, I don't want to significantly change our plan or direction.

Cosmos SDK 46 reached v0.46.0-beta2, and had reached a stage where there were not supposed to be further large api breaking changes. We were actually ahead of schedule with craft, and the SDK itself was ahead of schedule, too (well, ahead of my anticipated schedule, anyhow).

Because of the reversion, some stuff will get easier, and other stuff is going to get harder.

I'd like to circle back here, and really focus in on the templating aspect of the work here:

#108

Yesterday and the day before and today as well I spent a whole lot of time pulling starport out of Juno.

CosmosContracts/juno#207

So, let's run through our next steps, given all of this new information:

  • Wait for the middleware reversion to be merged in the cosmos sdk:
  • cosmwasm
  • ibc-go
  • all modules, default in all the ways

We won't do an sdk 45 version of the base, to limit the scope of the work and lower our future technical debt.

So basically, the way that we'll be able to maintain all this code, and help others to maintain their code, is by separating the parts of developing a cosmos chain into two:

1) base
The base will include tendermint, cosmos-sdk, and ibc-go. There will be a cosmwasm flavored base, and a base without cosmwasm.

2) Features
First of all it is notable that if all features are in cosmwasm, you spin up a base, make a genesis, and just "go". Juno is a reasonable example of that playing out though I suspect that Juno will retain dominance in unpermissioned and that others will want to be a "flavored base" weather permissioned or not. We can think of osmosis as an app platform that is highly specalized around providing amm pools. It has features written in both cw and go.

Information about downstream consumers has been removed to prevent ambiguity.

@faddat faddat changed the title Craft Refactor Tiny: The craft refactor / template tool May 20, 2022
@faddat faddat mentioned this issue May 20, 2022
@faddat
Copy link
Contributor Author

faddat commented May 23, 2022

Guys work on this is currently blocked here:

cosmos/cosmos-sdk#11985

That PR has been merged.

Unblocked at sdk.

Blocked at ibc-go here:

cosmos/ibc-go#1439
cosmos/ibc-go#1412
cosmos/ibc-go#1413

@faddat
Copy link
Contributor Author

faddat commented May 26, 2022

cosmos/ibc-go#1439

Please reference this PR as a tracker and please retweet this:

https://twitter.com/gadikian/status/1529725454005174272

@faddat faddat changed the title Tiny: The craft refactor / template tool Craft Middleware refactor May 26, 2022
@Reecepbcups
Copy link
Contributor

@faddat This was completed correct? Want to double check before closing

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

No branches or pull requests

2 participants