@@ -423,23 +423,25 @@ cargo run --release --bin openmina-node-testing -- scenarios-run --name "Scenari
423
423
424
424
### 1. Non-Deterministic Failures
425
425
426
- ** Issue** : Test passes sometimes but fails others ** Solution** : Ensure all
427
- randomness uses fixed seeds, check for timing dependencies
426
+ - ** Issue** : Test passes sometimes but fails others
427
+ - ** Solution** : Ensure all randomness uses fixed seeds, check for timing
428
+ dependencies
428
429
429
430
### 2. Port Conflicts
430
431
431
- ** Issue** : "Address already in use" errors ** Solution ** : Use unique port ranges
432
- per test, ensure proper cleanup
432
+ - ** Issue** : "Address already in use" errors
433
+ - ** Solution ** : Use unique port ranges per test, ensure proper cleanup
433
434
434
435
### 3. Slow Test Execution
435
436
436
- ** Issue** : Tests take too long ** Solution ** : Use dummy proofs, reduce node
437
- count, optimize wait conditions
437
+ - ** Issue** : Tests take too long
438
+ - ** Solution ** : Use dummy proofs, reduce node count, optimize wait conditions
438
439
439
440
### 4. Invariant Violations
440
441
441
- ** Issue** : Invariant check fails during test ** Solution** : Check logs for
442
- violation details, add debugging, fix state inconsistency
442
+ - ** Issue** : Invariant check fails during test
443
+ - ** Solution** : Check logs for violation details, add debugging, fix state
444
+ inconsistency
443
445
444
446
## Advanced Features
445
447
@@ -491,3 +493,34 @@ For additional examples and patterns, refer to:
491
493
- Testing documentation: [ ` docs/testing/ ` ] ( ../../testing/ ) - Contains detailed
492
494
test descriptions, troubleshooting guides, and testing methodology
493
495
documentation
496
+
497
+ ## Appendix: Block Replayer Tool
498
+
499
+ ** Current Status** : An unfinished prototype exists in the
500
+ ` tools/block-replayer/ ` directory on the ` feat/basic-block-replayer ` branch but
501
+ was never integrated into the testing workflow.
502
+
503
+ ** Purpose** : Sequential block replay from genesis to validate that the node's
504
+ transaction logic, ledger operations, and block processing are correct against
505
+ real blockchain data. Could also be used to test proof verification (blocks,
506
+ completed works) and on devnet, for blocks produced by accounts of which the
507
+ private key is available, to reproduce the proof and ensure the prover works
508
+ correctly by ensuring it should have been able to produce all those proofs by
509
+ itself.
510
+
511
+ ** Value Proposition** :
512
+
513
+ - ** Transaction Logic Validation** : Ensures transaction processing matches
514
+ expected behavior from historical blocks
515
+ - ** Ledger Operation Testing** : Validates ledger state transitions and account
516
+ updates
517
+ - ** Block Processing Verification** : Tests the complete block application
518
+ pipeline
519
+ - ** Real-World Coverage** : Uses actual blockchain data rather than synthetic
520
+ test scenarios
521
+ - ** Regression Testing** : Catches regressions in core blockchain logic
522
+
523
+ ** Recommendation** : The new team should complete or rewrite this tool as a
524
+ standalone testing utility. This would provide validation of core blockchain
525
+ logic that is complementary to but separate from the scenario-based testing
526
+ framework.
0 commit comments