Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion services/archive-node/fly.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,16 @@ primary_region = 'iad'
type = 'http'
interval = '15s'
timeout = '2s'
grace_period = '5s'
# grace_period MUST exceed boot-to-listening. Measured 2026-07-29 from the
# Fly logs: "Starting init" 08:57:14 -> "atrib-archive listening" 08:57:18,
# so 4 seconds against a 5 second grace. One second of margin is not margin.
#
# Startup replays the archived record bodies ("replayed 13 archived
# records"), so it grows with opt-in submissions. 13 is small today, which
# is exactly why the tight value has not bitten yet.
#
# 30s is ~7x the measured boot. Fly clamps this field at 60s, so that is the
# ceiling; past it the fix is a cheaper startup, not a longer grace.
grace_period = '30s'
method = 'GET'
path = '/v1/retention'
8 changes: 8 additions & 0 deletions services/directory-node/fly.toml
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,12 @@ primary_region = 'iad'
path = '/v6/anchor'
interval = '30s'
timeout = '5s'
# Left at 15s: measured 2026-07-29, "Starting init" 08:56:59 -> "directory-node
# listening" 08:57:02, so 3 seconds with 5x margin. Unlike log-node and
# archive-node, which were sitting at zero and one second of margin and were
# raised in the same change, this one has room.
#
# It is not fixed forever. Startup replays persisted claims into a fresh
# in-memory AKD ("replayed 20 persisted claims"), so re-measure if claim
# volume grows by an order of magnitude. Fly clamps this field at 60s.
grace_period = '15s'
17 changes: 16 additions & 1 deletion services/log-node/fly.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,22 @@ primary_region = 'iad'
type = 'http'
interval = '15s'
timeout = '2s'
grace_period = '5s'
# grace_period MUST exceed boot-to-listening. Measured 2026-07-29 from the
# Fly logs: "Starting init" 08:57:02 -> "atrib-log listening" 08:57:07, so
# 5 seconds against a 5 second grace, i.e. no margin at all. Any slower
# boot fails the check on a service that is merely starting.
#
# It also grows: as the comment on [[vm]] memory below says, the persisted
# log is replayed into the in-memory Merkle tree at startup, so this scales
# with tree_size (~115k entries on the measurement date, replaying at
# roughly 23k entries/sec).
#
# 45s is ~9x the measured boot and covers on the order of a million entries
# before it needs revisiting. Fly clamps this field at 60s (`flyctl config
# validate` warns "this will be lowered to 1 minute"), so 60s is the hard
# ceiling, not a value to reach for casually: past it the only fix is
# making startup cheaper.
grace_period = '45s'
method = 'GET'
# /v1/pubkey always returns 200 (even with an empty tree); /v1/checkpoint
# returns 404 until the first entry lands. With persistence in place a
Expand Down
Loading