Skip to content

Historical ledger correctness #63

@apenzk

Description

@apenzk

While the current state of the ledger may be identical, when transferred, semantically the data values may have a different meaning.

A more complete correctness check (that considers the semantics) is to replay from genesis and identify at what block height (and why) the value entries differ between the state created by 1) movement and 2) aptos.

Criteria:

  • get ExecutableBlock at each block height and execute with 1) . Record the state root root(1,h)
  • get ExecutableBlock at each block height and execute with 2) . Record the state root root(2,h)
  • Compare the roots.

If they differ at some height lowestErrorHeight, we have identified a height, at which the VMs would produce differing results.

Optimistically, this passes all the way to the current height.

Metadata

Metadata

Assignees

Labels

featureThis issue introduces new behaviorpriority:highThis issue should be worked on actively but progress on other issues can take place.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions