-
Notifications
You must be signed in to change notification settings - Fork 43
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
(Epic) Define semantics (and testing strategy) when host version is revved #310
Comments
The core part of this of this is started in stellar/stellar-core#3471 |
Bumping this as there were recent discussions that should be impacted by this. Additional things to think about:
|
Talking to @dmkozhI realized that I should have been a bit more explicit on what the problems are wrt multi versions. The "protocol version" attached to a contract is not really a protocol version, more like an ABI version. All changes to the protocol change "the protocol version", but there are really two kind of changes:
For the later scenario, there are multiple possible strategies there:
Regardless of which kind of runtimes are available at a specific "protocol version", we need:
|
stellar/stellar-core#3471 was merged which sets the foundation for multi-version support -- work remaining is to figure out how to also implement this consistently between core, soroban-rpc and potentially cli |
Re downstream systems, @anupsdf just ran a test where we approached this problem how I (roughly) previously thought it would work, and it worked:
|
I think this is mostly complete. |
Created a tracking issue for adding automated test. |
Ok, if that residue was all there was left here, closing this. |
Context:
Scenarios:
* Even if we have both runtimes on the core side during switchover, the current plan is to pretty much guarantee that version 21 supports 20 semantics so that we don't have to keep a dependency from core on all historical releases
* this implies that we also have conditionals "in the right spot" to switch behavior (ie: there is a "config" of sorts that allows to switch between protocol versions at runtime).
This is somewhat related to #289
The text was updated successfully, but these errors were encountered: