Replies: 3 comments 4 replies
-
Since I made this comment in Discord, I had a discussion with @m00sey where imagined that it would be possible to identify a 1.x "freeze version" of the whole KERI stack that all QVIs must be compatible with. I think this is a very positive step, and I welcome it. However, I feel a need to for a 1.x version that is not frozen, but rather is receiving bug fixes (possibly not all, but at least those that are for bugs disruptive to production use of vLEIs) and enhancements (likely not all, but perhaps a few that are required to make production vLEI usage practical). I don't feel like I have a practical path to an update to a CESR 2.0 dependency, if I am just looking for a bug fix or a critical enhancement. My concern about upgrading to CESR 2.0 is mostly not about code compatibility. Rather, it is about data compatibility. I don't want to have to re-issue credentials, or rebuild witness history. Possibly, the data compatibility issue could be made much less of a concern by making CESR 2.0 code capable of handling 1.x data structures? |
Beta Was this translation helpful? Give feedback.
-
Just to be clear, there are two versions. Each message in a CESR stream has a message version, this is different from the CESR stream version. So when you say v1 aware I don't know for sure which of these versions you mean. Messages never change their own message version at the time they were created. This is because they are signed/anchored-signed and changing their serialization would break the signatures (i.e. make them unverifiable). So no matter what any replay of those messages will alwyas preserve the message version at the origninal time of creation. A CESR stream can support both CESR v1 and CESR v2 stream. An endpoint that someone queries (such a the host that runs a witness) may respond in whatever CESR version it chooses. The endpoint could advertise what version of CESR is supports, v1, v2 or both. The query could then indicate which one it wants.
So when you say data, I want to clarify. There are several types of data.
|
Beta Was this translation helpful? Give feedback.
-
My question was about CESR streams: "serves such data" meant "serves v1 messages inside a v2 stream". I understood that messages themselves are static.
Am I right in assuming that "could", in this context, means that the data structure design keeps open the possibility to resolve this version challenge flexibly, by writing code that is capable of the feature you describe -- but that no wallets/agents/witnesses/watchers that are currently deployed in production exhibit this feature? And that therefore, we need to upgrade our software fabric, generally, before CESR 2 data in the wild avoids triggering incompatibilities? That's what I expect, and it is a remarkable achievement that CESR is this forward-thinking, so I am not being critical. I'm just trying to understand the practical ramifications of having code in the main branches of keripy or keria that begins emitting CESR 2 data streams. |
Beta Was this translation helpful? Give feedback.
-
Yesterday's implementer's call had this topic on its agenda, but we didn't have time to cover it. @2byrds suggested that I create a discussion to pursue the topic asynchronously.
Here is my initial comment from Discord, which was intended as a seed for the discussion:
Beta Was this translation helpful? Give feedback.
All reactions