Skip to content

rr0.5.0

Latest
Compare
Choose a tag to compare
@alkorang alkorang released this 18 Apr 09:42
· 3 commits to master since this release

record-replay 0.5.0 release note

Full Changelog: rr0.4.2...rr0.5.0

Updates

  • Based on Geth v1.13.15. geth-v1.13.15...rr0.5.0
  • Support hard fork Cancun (19_426_587).
  • Fixed the critical issue of substate-cli replay-fork in reporting correct outputs as misc errors.
  • Renamed substate-cli db-upgrade to substate-cli db-rr0.3-to-rr0.4 or substate-cli db-rlp2proto to avoid any confusion.
  • New substate-cli db-export to save hashed/unhashed substates in binary/JSON(Base64)

Important notes

  • Geth v1.13 cannot run geth import directly on Geth v1.10 DB (--datadir) because PoS support is marked unavailable. We should run Geth v1.11.6 to upgrade the old Geth DB to mark that PoS support is available.
    • One simple solution is importing the genesis block, ./geth-1.11.6 --datadir datadir.geth-1.10 import genesis.rlp. We can obtain the genesis block running geth export genesis.rlp 0 with any version of initialized Geth.
    • Since v1.12, Geth expects TerminalTotalDifficultyPassed in chain configs to be true, while Geth v1.10 sets it to false. Geth v1.11.6 can change TerminalTotalDifficultyPassed from false to true.
  • Although Geth v1.13.15 supports Goleveldb or Pebble for its DB engine, rr0.5 recorder and replayer support only Goleveldb for its substate DB (--substatedir).

Faithful replay check

  • rr0.5.0 recorder, rr0.5.0 replayer
    • --block-segment 1-19_000_000 (--block-segment 0-19M): OK
    • --block-segment 19_000_001-19_500_000 (--block-segment 19000-19500k): OK
  • rr0.4.2 recorder, rr0.5.0 replayer (backward compatibility)
    • --block-segment 1-18_000_000 (--block-segment 0-18M): OK
  • rr0.5.0 recorder, rr0.4.2 replayer (forward compatibility)
    • --block-segment 1-19_000_000 (--block-segment 0-19M): OK
    • --block-segment 19_000_001-19_426_586: OK