Skip to content
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

Ensuring backward compatibility between changes in the protocol #8

Open
FantasticoFox opened this issue Mar 14, 2022 · 1 comment
Open
Assignees
Labels
enhancement New feature or request

Comments

@FantasticoFox
Copy link

If Aqua Protocol provides a way to add value to data by anchoring it in time in space, losing the ability to verify that data because of inability to remain backward capabilities with the verification tools is increasing tx costs for verification.

As the solution would be to use an old verifier (software) which is compatible with the verification protocol version.
This also means there is no way to mix data sets with different versions, forward facing. E.g.:

  • revision 1 AQUA protocol version 1.1
  • revision 2 AQUA protocol version 1.1
  • revision 3 AQUA protocol version 1.2

But this is obviously desirable as it

  • secures future compatibility
  • this allows to build up on data sets and ensure they are gathering a longer history.

On a personal node, the reason that we don't have backwards capabilities, is the main reason why I did not use our solution more extensively for personal note-taking.

Therefore this is the proposal to upgrade the protocol and the current reference implementation to guarantee future backwards capabilities by abstracting the verification scheme out into the library which holds the recipe for the current version of the protocol. Where the protocol version acts as the index for the recipe. All elements of the recipe need to be implemented as stand alone functions and should be atomic so, we reduce size and complexity while having freedom to rearrange elements in future versions of the protocol.

This also requires a new data field within each revision. Which contains the version of the protocol. E.g. APv1.1 (Aqua Protocol Version 1.1).

@FantasticoFox FantasticoFox added the enhancement New feature or request label Mar 14, 2022
@FantasticoFox FantasticoFox self-assigned this Mar 14, 2022
@rht
Copy link

rht commented Mar 14, 2022

IMO a protocol version should be assigned to a single hashchain, not a single revision. If you want to port an existing hashchain to a new protocol version, you simply turn the original hashchain last hash into the content of the first revision of a new hashchain that uses the newer protocol.

@FantasticoFox FantasticoFox transferred this issue from inblockio/aqua-docs Sep 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants