Quicr / old-quicrq

BSD 2-Clause "Simplified" License
4 stars 2 forks source link

Implement versionining #63

Closed suhasHere closed 2 years ago

suhasHere commented 2 years ago

It would be beneficial to display some form of version when origin/relay is started. This can be used to validate when quicr instances are deployed across multiple regions

huitema commented 2 years ago

Should we also make that part of the protocol handshake? Currently, the ALPN is set to

#define QUICRQ_ALPN "quicr-h00"

I think that if we update the version number, we should also update the ALPN. That means:

1) Format the version string as version (0), minor(e.g. 10) and update level (maybe a letter), as in: "0.10a" 2) Update the minor if the protocol formats change, reset the letter to a 3) Update only the letter if change does not affect protocol formats 4) For version 0, format the ALPN = quicr-h<minor>

That way, there will be no way to establish a connection between two prototypes with different versions, because the ALPN negotiation will fail

suhasHere commented 2 years ago

good point .. Having version negotiation fail when incompatible will be pretty useful on a longer run.

huitema commented 2 years ago

I revised the PR #65 to update the ALPN.

huitema commented 2 years ago

Implemented in PR #65