Skip to content

fix(hosting): nodes remember site records across restarts and keep short sites gossiped - #229

Merged
ralyodio merged 1 commit into
masterfrom
fix/hosting-records-survive-restart
Nov 9, 2026
Merged

ralyodio merged 1 commit into
masterfrom
fix/hosting-records-survive-restart

Conversation

@ralyodio

@ralyodio ralyodio commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to #225 (merged before this commit landed). brongva vanished from gateway.c0mpute.com because dev2 forgot its record on an auto-update restart and only holders re-gossip records.

  • records.json persisted next to the catalog (loaded + re-verified at start; written on new records and every records round; newest 20k)
  • every node re-gossips up to 50 known, not-held records under target copies

No version bump: master is already 0.3.5 (untagged); v0.3.5 gets tagged on this merge.

🤖 Generated with Claude Code

…ort sites gossiped

brongva sat at 'no such site' on gateway.c0mpute.com: dev2 got its record
at 12:53:23, then restarted (auto-update) at 12:56 and forgot it, and only
HOLDERS re-gossip records, so a site held by gossip-quiet nodes whose
publisher has exited vanished from every node that restarted.

- records.json next to the catalog: loaded (re-verified) at start, written
  when a new record arrives (dirty flag, per announce loop) and every
  records round, newest 20,000 kept
- every node also re-gossips up to 50 known records it does not hold whose
  sites are under the target copy count, so the fill can still find them

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown

ThreatCrush Security Scan

13 finding(s)

HIGH/CRITICAL: 1 | MEDIUM: 8 | LOW: 4

Severity Rule Location
HIGH js-ssrf-outbound-request apps/web/public/sw.js:24
MEDIUM js-unescaped-html-sink apps/web/src/app/blog/[slug]/page.tsx:53
MEDIUM js-unescaped-html-sink apps/web/src/app/layout.tsx:89
MEDIUM sh-remote-script-execution scripts/dev-setup.sh:25
MEDIUM sh-eval-expansion scripts/dev-setup.sh:35
MEDIUM sh-remote-script-execution scripts/install.sh:181
MEDIUM sh-remote-script-execution scripts/install.sh:206
MEDIUM sh-remote-script-execution scripts/install.sh:399
MEDIUM sh-remote-script-execution scripts/install.sh:441
LOW py-ssrf-outbound-request examples/business-strategist-agent/chat.py:37
LOW py-ssrf-outbound-request examples/business-strategist-agent/train.py:54
LOW secret-generic-credential node/crates/c0mpute-core/src/webhook.rs:1171
LOW py-path-traversal node/crates/c0mpute-core/tests/fixtures/fake-infernet-text:29

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio merged commit 2b176f9 into master Nov 9, 2026
11 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant