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

Determine the epoch to use safely (by client/server) #141

Open
greatect opened this issue May 24, 2022 · 0 comments
Open

Determine the epoch to use safely (by client/server) #141

greatect opened this issue May 24, 2022 · 0 comments

Comments

@greatect
Copy link
Contributor

greatect commented May 24, 2022

We define the following terms. The default epoch is an epoch whose document is used to generate new messages. We say that an epoch is active if messages corresponding to this epoch is accepted. The current epoch design looks like:

Epoch Tag Has Doc Default Is Active
n katzenmint::currentEpoch x x x
n-1 epochtime::Now v v v
n-2 v x v
n-3 v x v
n-4 v x x

Maybe we can set the default epoch as n-2 (and set epochtime::Now = n-2). Using the newest doc (epoch n-1) as default has several downsides.

  1. Servers need time to react to epoch progression. For example, they have to make new connections or re-authenticate connections with each other in order to transit epoch smoothly. It is easier for them to do so when the next default epoch has the document already there.
  2. We know that servers using different default epochs will degrade the level of anonymity. If the default is the latest epoch, then there is no way for a delayed node to use the latest epoch because it does not have its document. So the problem is more severe. In contrast, if one set the default epoch as one with the second latest document, the servers can use other strategies to switch the default epoch, slightly mitigating the issue.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant