zeekay and Hanzo Dev
48962ce4f6
chain: set cert retention by what recovery costs, not by what felt tidy
...
maxServedCerts is the recovery ceiling. A behind node can only be caught up through
heights some peer still holds a cert for, and every node evicts on the same rule, so
a straggler below the window finds the cert nowhere rather than on a slower peer.
At 4096 against a live chain that is a few hours of history. Measured on lux-testnet:
tip ~36300, so the fleet held certs back to ~32200 while the stranded validator needed
23935. It was served every block it asked for and no cert for any of them, and no
amount of fetching could have helped — the proof it needed had been evicted fleet-wide.
A cert is a few hundred bytes, so depth is cheap here in a way block retention is not.
64Ki heights is tens of megabytes per chain and covers gaps far beyond what a restart,
a rollout or a node replacement produces. The bound still exists and eviction is
unchanged; only the number moved.
Note: TestCertStoreKeepsTheNewestWindow now seeds a full window as files and takes
~45s. It seeds by hand rather than through Put for that reason.
Co-authored-by: Hanzo Dev <[email protected] >
2026-08-14 08:16:43 -07:00
..
2026-03-03 12:00:00 -08:00
2026-07-09 10:50:09 -07:00
2025-09-27 03:26:38 +00:00
2025-12-03 23:56:12 -08:00
2025-09-27 03:26:38 +00:00
2026-02-15 14:08:02 -08:00
2026-08-13 18:57:42 -07:00
2026-08-13 22:29:04 -07:00
2026-08-08 08:01:16 -07:00
2026-07-09 10:14:15 -07:00
2026-07-10 05:14:27 -07:00
2026-08-01 08:18:52 -07:00
2026-07-31 21:06:03 -07:00
2026-07-31 21:06:03 -07:00
2026-07-10 01:17:22 -07:00
2026-06-22 16:32:28 -07:00
2026-06-25 22:58:39 -07:00
2026-06-28 15:14:16 -07:00
2026-08-08 06:21:06 -07:00
2026-06-26 19:37:04 -07:00
2026-07-10 03:58:20 -07:00
2026-07-03 21:07:04 -07:00
2026-08-14 08:16:43 -07:00
2026-08-14 08:13:22 -07:00
2026-08-01 00:58:56 -07:00
2026-07-10 03:58:20 -07:00
2026-07-07 12:25:14 -07:00
2026-07-10 03:58:20 -07:00
2026-07-10 03:58:20 -07:00
2026-07-10 03:58:20 -07:00
2026-06-30 13:45:42 -07:00
2026-08-14 07:56:43 -07:00
2026-08-14 04:30:07 -07:00
2026-08-13 18:18:53 -07:00
2026-08-13 18:18:53 -07:00
2026-08-13 22:29:04 -07:00
2026-07-28 08:52:38 -07:00
2026-08-08 06:26:50 -07:00
2026-07-10 01:17:22 -07:00
2026-07-09 11:02:44 -07:00
2026-07-31 20:56:06 -07:00
2026-07-31 20:56:06 -07:00
2026-07-28 09:12:46 -07:00
2026-08-13 18:44:15 -07:00
2026-07-09 11:02:44 -07:00
2026-07-01 15:02:48 -07:00
2026-07-31 20:56:06 -07:00
2026-07-31 20:56:06 -07:00
2025-09-27 03:26:38 +00:00
2026-07-31 20:56:06 -07:00
2026-07-17 10:54:48 -07:00
2026-08-14 08:13:22 -07:00
2026-07-10 03:58:20 -07:00
2026-07-31 20:56:06 -07:00
2026-06-28 15:14:16 -07:00
2026-03-01 23:00:51 -08:00
2026-06-28 15:14:16 -07:00
2026-06-28 15:14:16 -07:00
2026-06-28 15:14:16 -07:00
2026-08-13 18:44:15 -07:00
2026-07-31 20:56:06 -07:00
2026-07-10 01:17:22 -07:00
2026-07-30 07:03:57 -07:00
2026-08-14 07:56:43 -07:00
2026-06-28 15:14:16 -07:00
2026-07-31 20:56:06 -07:00
2026-07-31 20:56:06 -07:00
2026-06-22 16:32:28 -07:00
2026-07-10 03:58:20 -07:00
2026-08-13 22:29:04 -07:00
2026-07-10 15:28:01 -07:00
2026-07-10 15:28:01 -07:00
2026-07-10 15:28:01 -07:00
2026-08-14 07:56:43 -07:00
2026-07-02 16:48:30 -07:00
2026-07-02 17:48:59 -07:00
2026-07-05 12:17:43 -07:00
2026-08-01 02:28:27 -07:00
2026-06-30 23:18:15 -07:00
2026-07-10 01:17:22 -07:00
2026-07-10 03:58:20 -07:00
2026-07-05 11:59:22 -07:00
2026-08-13 22:29:04 -07:00
2026-08-13 22:29:04 -07:00
2026-07-28 03:10:10 -07:00
2026-07-31 20:56:06 -07:00
2026-06-28 15:14:16 -07:00
2026-07-09 10:50:09 -07:00
2026-08-13 22:29:04 -07:00
2026-07-03 19:53:01 -07:00
2026-07-10 03:58:20 -07:00
2026-06-30 20:36:31 -07:00
2026-06-28 15:14:16 -07:00
2026-07-30 07:03:57 -07:00
2026-07-10 03:58:20 -07:00
2026-06-28 15:14:16 -07:00
2026-07-10 01:17:22 -07:00
2026-07-10 03:58:20 -07:00
2026-08-13 22:29:04 -07:00
2026-07-01 13:13:34 -07:00
2026-07-01 13:13:34 -07:00
2026-07-10 00:25:16 -07:00
2026-07-31 18:05:01 -07:00
2026-06-30 16:45:49 -07:00
2026-07-30 07:03:57 -07:00
2026-06-30 22:03:12 -07:00
2026-07-09 10:50:09 -07:00
2026-07-09 10:50:09 -07:00
2026-07-31 18:05:01 -07:00
2026-07-31 18:05:01 -07:00
2026-07-02 15:29:14 -07:00
2026-07-02 15:29:14 -07:00
2026-08-13 22:29:04 -07:00
2026-06-28 15:14:16 -07:00
2026-07-10 00:25:16 -07:00
2026-07-10 03:58:20 -07:00
2026-08-13 18:44:15 -07:00
2026-08-13 22:29:04 -07:00
2026-07-10 03:58:20 -07:00
2026-01-03 07:01:00 -08:00
2026-07-10 03:58:20 -07:00
2026-07-30 07:03:57 -07:00
2026-08-13 18:18:53 -07:00
2026-07-31 20:56:06 -07:00
2026-07-10 03:58:20 -07:00
2026-07-09 10:50:09 -07:00
2026-07-10 15:28:01 -07:00