You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: equivalence — make account-asset/contract diffs non-blocking (#168)
The equivalence gate now runs end-to-end and is byte-strict on 6 of 8
stores (witness, witness_schedule, account [3.6M keys], properties,
asset-issue-v2, storage-row [17M keys]) — all byte-identical to java
DbFork. Only account-asset and contract diverge, and EC2 forensics
proved that divergence is a test-harness artifact with ZERO runtime
effect (#168):
- Both stores carry pre-existing DELETE tombstones + multi-version
keys from normal java-tron operation; the fork.conf never touches
the divergent keys.
- The test reads BOTH outputs via goleveldb, but java-tron reads via
leveldbjni. On a real Nile store, goleveldb and leveldbjni return
the IDENTICAL newest value for every multi-version key, and
leveldbjni reading the goleveldb-compacted ("Go output") store
returns the same newest values as java's output. Tombstoned keys
read as deleted from both. So a shadow-fork booted from either
output serves byte-identical query results.
Rather than disable the whole gate, downgrade ONLY account-asset and
contract to non-strict: their diffs are logged with a "#168 KNOWN-
ARTIFACT" prefix but do not fail the run. The other 6 stores stay
strict and blocking, so a real regression in any fork.conf-driven
mutation still fails the gate. diffStore/reportKeySetDiff now take a
reportf reporter (t.Errorf when strict, #168-tagged t.Logf when not).
Follow-up (#168): scope the diff to fork.conf-mutated keys so account-
asset/contract can return to strict.
0 commit comments