feat: M3 peer gossip protocol
Refs #1 - peers table (peer_id, addr, cursor, last_handshake) - watch serves HTTP API: GET /v1/ping (knowledge vector), GET /v1/log?node=&after= (cursor-paged pull), POST /v1/obs/batch - anti-entropy sweep (Run): ping, pull what we lack, push own obs; echo suppressed by node_id ownership; reconcile-on-pull - config via KNOX_PEERS / KNOX_PEER_ADDR; knox gossip status - db: GossipObservation wire type, PushObservations, ObservationsAfter, KnowledgeVector, peer upsert/list - integration tests: bidirectional convergence + idempotency
This commit is contained in:
@@ -113,6 +113,16 @@ CREATE TABLE IF NOT EXISTS settings (
|
||||
value TEXT
|
||||
);
|
||||
|
||||
-- PEERS: other knox nodes known to this one (gossip ring)
|
||||
CREATE TABLE IF NOT EXISTS peers (
|
||||
peer_id TEXT PRIMARY KEY, -- remote node_id
|
||||
addr TEXT, -- e.g. http://192.168.1.20:8931
|
||||
name TEXT,
|
||||
last_handshake TEXT,
|
||||
cursor INTEGER DEFAULT 0, -- remote's max_hcl we've seen (knowledge)
|
||||
created_at TEXT DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_threads_status ON threads(status);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS thread_observations (
|
||||
|
||||
Reference in New Issue
Block a user