-
Notifications
You must be signed in to change notification settings - Fork 38
Description
Log checkpoints are published on two triggers:
- when the tree root is updated due to new entries being integrated
- periodically
Currently, both of these are controlled via a single option: https://pkg.go.dev/github.com/transparency-dev/trillian-tessera#AppendOptions.WithCheckpointInterval
This options ensures that:
- active logs (i.e. the tree frequently has new leaves integrated): checkpoints will be published no more frequently than this setting
- passive logs (i.e. the tree is not being updated): checkpoints will periodically be published at this schedule
The net effect of this is that whether a log is active or passive, the log checkpoint will be re-published at the interval set. This is clear and has the benefits of a small control plane.
The main downside is that log operators are likely to tune this setting to be as small as they can get away with, in order that new additions to a log are available via a published checkpoint ASAP. A small setting for this means that for passive logs, there is surprise that checkpoints are updating frequently; this costs a minor amount to the log operator, but also puts a cost on the witness network.
Another proposal is:
Add another setting: WithCheckpointPeriodicInterval that controls the periodic part of it. The default setting for this should be in the order of an hour. We would leave the other setting at 10s. It would be an error to set the periodic setting to be less than the other interval (except to set it to 0, to disable periodic publishing).
Benefits:
- passive logs are cheaper for the log operator and witnesses
- purely test logs with no witnesses could disable the re-publishing
- log verifiers (aka auditors/monitors) can still verify that checkpoints are recent
From the TrustFabric perspective, this is a low priority feature and we won't work on this without demand signal. This issue is raised to be a demand signal for people looking for a feature like this. Please upvote to prioritize.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status