-
Notifications
You must be signed in to change notification settings - Fork 114
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
Mechanism for implementing code-level protocol upgrades with backward compatibility #269
Comments
I believe there is some linkage between It sounds like maybe this ticket is asking for official client version binding. There is no way a client that does not support new hash algorithm can process new DIDs, nor a new client old ones if an old hash algorithm is dropped. There is this ticket for defining protocol version: #265 We've thought about this a lot with element, in particular, can we support a great UX on top of multiple versions of the sidetree protocol? The pruning / dos change being a good example of a major change. We'd like to be able to support ongoing use and the upgraded version. Protocol version could be embedded in the anchorFile. Old clients could ignore new protocol version anchorFiles, but the state they built should probably not be trusted. I think we need to test a series of client upgrades in integration tests, where the structure of files changes. Probably a blocking dependency for #266 |
The way Henry is implementing this assumes that upgrades to the protocol that result in breaking/forking changes require nodes to run the upgraded version to remain in the same 'network'. There are upgrades that can be optional, if they only are optimizations to existing protocol rules that do not result in forking conditions, but anything that changes the state of what a node sees as valid DIDs, ops, and resulting DID Document state will require network-wide upgrades. |
…h backward compatibility (#273) * Issue #269 - Added VersionManager and TransactionProcessor. * Issue #269 - Introduced IProtocolVersion. * Issue #269 - Implemented version loading. * Issue #269 - Fixed incomplete initialization for VersionManager. * Issue #269 & #166 - Split Operation class into an additional AnchoredOperation class. * Issue #269 & #272 - Moved Resolver to orchestration layer & Renamed interfaces. * Issue #269 - Removed dummy test file. * #272 - Updated README.
Implemented. |
No description provided.
The text was updated successfully, but these errors were encountered: