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
tosubstate-cli db-rr0.3-to-rr0.4
orsubstate-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 runninggeth export genesis.rlp 0
with any version of initialized Geth. - Since v1.12, Geth expects
TerminalTotalDifficultyPassed
in chain configs to betrue
, while Geth v1.10 sets it tofalse
. Geth v1.11.6 can changeTerminalTotalDifficultyPassed
fromfalse
totrue
.
- One simple solution is importing the genesis block,
- 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