Skip to content

Commit 34c83df

Browse files
tizocdannywillems
authored andcommitted
docs(handover): Mention the block replayer tool branch
1 parent a39857b commit 34c83df

File tree

1 file changed

+41
-8
lines changed

1 file changed

+41
-8
lines changed

docs/handover/testing-infrastructure.md

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -423,23 +423,25 @@ cargo run --release --bin openmina-node-testing -- scenarios-run --name "Scenari
423423

424424
### 1. Non-Deterministic Failures
425425

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
428429

429430
### 2. Port Conflicts
430431

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
433434

434435
### 3. Slow Test Execution
435436

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
438439

439440
### 4. Invariant Violations
440441

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
443445

444446
## Advanced Features
445447

@@ -491,3 +493,34 @@ For additional examples and patterns, refer to:
491493
- Testing documentation: [`docs/testing/`](../../testing/) - Contains detailed
492494
test descriptions, troubleshooting guides, and testing methodology
493495
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

Comments
 (0)