What does the Cred. Schema version number mean


#1

As far as I understand, every credential schema has an attached version number.

I have a bunch of questions relating to these version numbers:

  1. Does the version number act as an arbitrary string “tag” to make it easier for humans to disambiguate between similar schemas or does it have any extra practical functionality?
  2. In this sense, do the Sovrin nodes verify that the schema version is ever-increasing before accepting a SCHEMA transaction with the same name/did-creator ?
  3. Is there any semantic versioning enforced by the nodes? E.g. a minor version that only adds extra fields and does not modify existing ones.

#2

Excellent questions. The correct person to field them is Alexander Shcherbakov. I’ll see if I can get him to comment.


#3

Does the version number act as an arbitrary string “tag” to make it easier for humans to disambiguate between similar schemas or does it have any extra practical functionality?

As of now this is rather a tag for humans to distinguish different Schemas.
The only check against version is that there can be only one Schema with the same name, version and author (DID-creator).

In this sense, do the Sovrin nodes verify that the schema version is ever-increasing before accepting a SCHEMA transaction with the same name/did-creator
No, they don’t

Is there any semantic versioning enforced by the nodes? E.g. a minor version that only adds extra fields and does not modify existing ones
There is no semantic versioning now, but I think it was discussed as one of the possible features (it’s questionable whether Nodes should have this kind of restrictions, or it’s up to the Schema sender).