https://gitlab.synchro.net/main/sbbs/-/commit/6986ac66b74162b2c4c2ff0a
Modified Files:
exec/ircd.js exec/load/ircd/PROTOCOL.md core.js exec/tests/ircd/clock.js state.js
Log Message:
ircd: replace periodic clock probes with negotiated announcements
CLOCK replies taking more than two seconds were discarded and immediately retried, allowing synchronized hubs to disconnect for lack of a fresh verification despite receiving every response.
Negotiate CLOCKPUSH between upgraded hubs. Retain reciprocal probes for admission, then publish CLOCK -1 timestamps every 15 seconds and disconnect after more than 30 seconds without a valid announcement. This halves
periodic CLOCK traffic while preserving the existing wire protocol for
older hubs and the clock exemptions for leaves and services.
Accept delayed probe replies when their entire skew uncertainty range fits within MaxSkew, instead of discarding them at two seconds or accepting a
range that only partially overlaps the limit.
Switch pending receive callbacks to unthrottled processing once a server authenticates. Reused registration queues could otherwise retain the
client limit of four commands per two seconds and delay CLOCK traffic.
Document the protocol and cover admission, periodic cadence, skew bounds, missing announcements, callback stalls, queue handoff and compatibility. Validation: 76 state, 10 live clock, 37 client connection and 9 mixed v2.4 network tests passed; git diff --check passed.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net