-
Notifications
You must be signed in to change notification settings - Fork 248
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
The main branch is not compatible with gemini-3g network #2211
Comments
That is unfortunate. Can you confirm the if One approach I'm seeing here is to introduce the custom Decode and Encode functions until the runtime is upgraded. |
Yeah, it also affects
It is still hard to get the runtime version within the encode/decode function. Since the new field causes the incompatible, other approaches would be:
|
@vedhavyas @NingLin-P I want to make a new snapshot, do we have a solution here? |
So, the decode can selectively chose fields depending on older or newer runtime and for bundle submission, we can introduce the api version check to submit older type or newer type. This will take some time to implement. If you @nazar-pc want to make a snapshot right now, then fastest way is to just comment the field and the verification like @NingLin-P suggested |
I do want to make snapshot once #2208 is merged, so please un-break it somehow so we can move forward. |
We are trying to |
We already have some operators on the network and it is not that unlikely that people will attempt to upgrade when new release comes out, so if we can fix it quickly we probably should. |
I found another change that cause the main not compatible with gemini-3g, which is we have change the which will cause the operator of the main branch produced a different ER than the gemini-3g's operator, I think this is what cause the TLDR; The incompatible is not solve completely by #2214, and we can take the |
Recently, we have introduced a new field to the
ProofOfElection
:https://github.com/subspace/subspace/blob/53dca169379e65b4fb97b5c7753f5d00bded2ef2/crates/sp-domains/src/lib.rs#L546-L547
This causes the main branch not compatible with the gemini-3g, because when we use runtime API to extract bundle/ER from the consensus chain, it will return the old struct that doesn't have the new field while the client will try to parse it with the new field, thus failed and cause the node shut down.
In this case, I'm not sure what is the best practice to handle this, do we need to keep the old struct definition in the code and use the runtime API version to determine parsing the old struct or new struct? cc @vedhavyas
The text was updated successfully, but these errors were encountered: