-
Notifications
You must be signed in to change notification settings - Fork 30
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
[Research] CosmWasm path to production (mainnet) #59
Comments
I could be wrong, but I believe the only thing required would be StoreCodeProposal |
The next two questions could be part of the issue above
Basically, it's our job before we integrate Osmosis with a contract, to verify the hash matches what their Official repo says. Eventually to have on chain verification would be a beautiful thing but a lot more complex. |
|
[ ? 2 ] Unfortunately, it seems unlikely that the state machine can safely contain the Rust -> Wasm compiler under reasonable tradeoffs. [ ? 3] I think for 3, this can even be a URL, and we can spend time iterating on steps to improve this. I don't really view the exact steps as a blocker for first contract deploy, but I moreso view it as a thing we need to figure out / experiment with. (I currently don't know steps to get reproducible wasm hash) [ ? 4] [ ? 5] For now I think there should be a PR link with some fields left blank to the contract list entry. I don't think this is a blocker for intiial contracts, but should be a standard we better form with a couple iterations. [ ? 7] great question! I have no idea whats supported in wasmd today, we can look at the code / ask confio if they want to add it natively. Otherwise we can fork to add multi-uploads and in the interrim people do multiple proposals. [ ? 8] Yup[ |
Thanks for all the answers ! will use these info the come up with the mainnet flow with Beaker. With that being said, one big question is still unanswered:
@czarcas7ic mentioned that
Wondering how could we know for sure? It there any other way to test it, or only need to do actual mainnet deployment to confirm? |
It's in the pipeline for us to automate a testnet that mirrors all the params of mainnet. If this is needed soon I can spin one up manually |
@czarcas7ic that would be great if that's possible, alternatively, if you can point me to some resource to make mirroring params happens in localosmosis, that also works. Please let me know :) |
@iboss-ptk I just realized today that despite wasm being permissionless on the testnet, you should still be able to submit a wasm prop just like before (I approved one this morning, see prop 181 on the testnet) |
@czarcas7ic yes, I'm aware of that, just that we can't verify this question
|
Ah, well some of the other individuals that deployed contracts when testnet params matched mainnet (ion dao for example) were able to deploy with just the single gov prop. Unsure if that answers your question |
Oh cool, I think I've found it @czarcas7ic thank you!! |
I think the information needed is enough to proceed now, closing the issue. |
This issue is for tracking the clarification of the path to production (mainnet) for CosmWasm. Since Osmosis implements permissioned CosmWasm, See what are the steps to take, who is involved in order to have clear understanding on what Beaker should support, who else needs to be involved, what system needs to eventually be upgraded and later we can have a clear documentation for the dapps developer.
The following is my attempt to flesh out the understandings along with ❓ questions and 💡 ideas.
Grouping for wasm gov proposal types
According to the wasm gov docs, there are additional proposal types for wasm gov. Grouping by their functions for further reference:
Deployment and Migration (**main focus for this issue)
StoreCodeProposal
InstantiateContractProposal
MigrateContractProposal
Code Permission
UpdateAdminProposal
ClearAdminProposal
UpdateInstantiateConfigProposal
Code Pinning
PinCodes
UnpinCodes
Execution
SudoContractProposal
ExecuteContractProposal
For Code Pinning and Execution, if the [❓ 1] is clear, it doesn't seem to be important for this issue. Let's move on to the main topic.
Deployment and migration
StoreCode requirements
There was a discussion with @ValarDragon @daniel-farina about hash verification and contract-list
This is what I imagine would happen if there is a need to store code:
📝 Answer 2 by @daniel-farina
The
StoreCodeProposal
already contains wasm byte code, one can get that by querying the proposal.For
Submit source and metadata
this would trigger a question:Deployment
This is normally a 2 steps process of
StoreCode -> InitiateContract
, but common pattern of a dapp has the following:StoreCode -> InitiateContract
tends to happen sequentially.The following graph is a general execution plan for a deploying a dapp.
Migration
The following graph is a general execution plan for a migrating multiple contract for a dapp. It shares the same question as for the deployment.
Lastly:
Let me know your thoughts.
The text was updated successfully, but these errors were encountered: