igneum/docs/plans/node-changes.md

23 lines
1.5 KiB
Markdown

# Node changes filed by the app work (for the devnet-v4 worktree owner)
Filed 4 October 2026 from the Igneum Miner app. The app does not patch the node.
## 1. One clear clock-skew line (from PC 2's first install)
A node whose clock is 60 s slow connects, refuses every relayed block with
`HandleRelayInvsFlow flow error: the block timestamp is too far into the future: block timestamp is X but maximum
timestamp allowed is Y` (one WARN per block, two millisecond numbers) and processes nothing. A person reading the log
cannot tell that the clock is the cause.
Wanted: in the relay flow, when a header is refused for being ahead of the local clock, keep a running median of
(header timestamp minus local now) over the refused headers of the last minute and log ONCE per minute at WARN:
clock skew: local time is N s behind the median peer block time (blocks are being refused; set the clock)
and the mirror case (own templates refused by peers as too old, or peers' headers far in the past while the DAA
window is empty): `clock skew: local time is N s ahead of the median peer block time`. Also worth exposing in
`getBlockDagInfo` (or a new RPC field) so launchers and the app can read it without parsing logs.
Where: `vendor/igneum-node-v4`, `protocol/flows/src/v10/blockrelay/flow.rs` (the relay error path) and
`consensus/core/src/errors/block.rs` (the error text). The app's current reading of the error line is in
`app/igneum-app/src/engine.rs` (`node_line`, `behind_from_warning`) and will keep working after the change.