Adds tests/continuous, a black-box monitor that runs the full time-based round against a deployed API on a loop: get_data_for_encryption, encrypt locally, register_identity, wait for the decryption timestamp, get_decryption_key, decrypt. A round passes only if the plaintext round-trips, so a key that is present but
wrong fails rather than passes. Needed because tests/integration builds the router in process and so cannot say anything about a deployment.
Done
- Bounded (TEST_DURATION=26h) or unbounded (0) from the same code
- Failed rounds recorded, run continues; ALLOWED_FAILURES sets the verdict
- One log line per round with full identity, tx hash and decryption timestamp
- Summary with pass/fail counts and p50/p95/max release latency
- Behind the
live build tag, so go test ./... never starts it
- Self-contained docker: own compose file, multi-stage build
- /metrics endpoint for a vmagent to scrape, matching the keyper deployments
- Polls only after the timestamp: ~2 reads per round instead of ~12
- Deployed on its own droplet, shutter-api-monitor-1003, separate region from 1003
Findings
- Release latency is 4.3s or 6.4s and nothing else: Gnosis block time. So >7s would be a real signal, not jitter.
Follow-ups
- Metrics off (METRICS_PORT=0); needs vmagent.yaml, REMOTE_WRITE_URL, alert rule
- No restart policy by design, so a standing monitor won't survive a reboot
- Raised rate limits are still a manual host edit; a clean redeploy reverts to 500/day and would break a multi-day run. Separate issue.
Adds
tests/continuous, a black-box monitor that runs the full time-based round against a deployed API on a loop: get_data_for_encryption, encrypt locally, register_identity, wait for the decryption timestamp, get_decryption_key, decrypt. A round passes only if the plaintext round-trips, so a key that is present butwrong fails rather than passes. Needed because tests/integration builds the router in process and so cannot say anything about a deployment.
Done
livebuild tag, sogo test ./...never starts itFindings
Follow-ups