Closed mystenmark closed 3 days ago
The latest updates on your projects. Learn more about Vercel for Git ↗︎
Could you double check how this would be used differently than the executed_effects
table in AuthorityStore?
Could you double check how this would be used differently than the
executed_effects
table in AuthorityStore?
The main difference is that the executed_effects
table can be pruned. Really the only purpose of storing this info in the epoch store is so that the checkpoint builder knows when to stop causal completion. Any dependency that is not executed in the current epoch is omitted from the checkpoint.
In theory, we could accomplish the same thing by looking up the effects in the perpetual store. If they are present, the executed_in_epoch
field would tell us which epoch the effects are from. If they are absent, they must be from a prior epoch, since we don't prune that table in the same epoch. However, I wouldn't want to do things that way, since it would mean a pruner bug could cause a checkpoint fork.
This is the first step of a change to remove effects signing from the execution path and adding effects equivocation prevention (necessary for WB cache on validators).