[forge] saturate encrypted max-load test (backlog 100 -> 4000)#19892
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Reviewed by Cursor Bugbot for commit 885180e. Configure here.
| })) | ||
| .with_pfn_override_node_config_fn(Arc::new(|config, _| { | ||
| config.api.allow_encrypted_txns_submission = true; | ||
| })) |
There was a problem hiding this comment.
PFN config missing consensus observer and connectivity settings
Medium Severity
The newly added with_pfn_override_node_config_fn only sets allow_encrypted_txns_submission but is missing the standard PFN settings that every other test with PFNs includes: enable_validator_pfn_connections, observer_enabled, and the consensus observer fallback thresholds. Additionally, the validator override is missing enable_validator_pfn_connections = true. Since ENABLE_ON_PUBLIC_FULLNODES is false, observer_enabled won't auto-enable, so the 3 PFNs likely can't sync via consensus observer — potentially making them non-functional.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 885180e. Configure here.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
mempool_backlog=100 was throttling the inner traffic well below peak encrypted TPS (~2k). Bump to 4000 so the test actually measures max throughput. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
At 100 validators with backlog 4000, encrypted MaxLoad committed ~960 TPS with P50 latency 3.6s — backlog saturated below peak. Bump to 8000 to give the pipeline more headroom for benchmarking peak throughput on longer runs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
At 100 validators with backlog 8000, execution wasn't saturated and no backpressure was firing — bottleneck was the single fullnode submission path. Add 3 PFNs so the emitter can spread submissions and actually load consensus/execution. PFN config also opts into encrypted txn submission. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Backlog 8000 overran the chain's saturation point (~960 TPS at 100 validators) and triggered an unrecoverable expiration cascade. 4000 sits right at the saturation knee with stable commit throughput. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
885180e to
dea3dd8
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ Forge suite
|
This comment has been minimized.
This comment has been minimized.
✅ Forge suite
|
This comment has been minimized.
This comment has been minimized.
✅ Forge suite
|


Summary
realistic_env_max_load_encryptedhadmempool_backlog = 100, throttling the inner traffic well below the ~2k peak encrypted TPS — so despite the name it wasn't actually a max-load test.4000(~2s of work outstanding at peak), so the test now actually saturates the encrypted-txn pipeline.Run at 100 validators by passing
FORGE_NUM_VALIDATORS=100to the adhoc-forge workflow — no separate test variant needed (mainnet_calibrated_for_validator_countonly branches at>100, so chaos is identical at 5 vs 100).Test plan
FORGE_TEST_SUITE=realistic_env_max_load_encrypted,FORGE_NUM_VALIDATORS=100🤖 Generated with Claude Code