Install

What is compared

After every transaction, the two builds must have left the same observable state.

What is compared

Compared
Account bytesEvery account's data, byte for byte.
LamportsEvery account's balance.
Ownership and metadataEach account's owner, executable flag and rent metadata.
LogsEvery log line, events included.
Return dataThe program that set it and its bytes.
ErrorsThe transaction error, exactly as the runtime reports it.

The one line that is not compared

The runtime’s own Program <address> consumed N of M compute units lines differ by design: that difference is the tare. Nothing else in the logs is skipped.

How the two runs are set up

  • Each build is loaded at the same program address.
  • Both start from the same accounts, built-ins, SPL programs and sysvars, under the same metering.
  • Sibling programs in the workspace use the same stock binary on both sides.
  • State is kept across the transactions of a sequence, on each side separately.

Comparison counts

The report counts the comparisons actually made: inputs, account bytes, lamports, logs, return data and errors. They are in proof.json.