Beacon и bootstrap
Beacon помогает KnotRoute nodes находить peers. В типовом deployment он также может запускать собственный bootstrap relay.
Что отправляет client
Заголовок раздела «Что отправляет client»Discovery announcement содержит Network ID, node identity, reachable endpoints (если они есть), timestamp и signature.
Client-only node может использовать Beacon даже без собственного inbound endpoint.
Что возвращает Beacon
Заголовок раздела «Что возвращает Beacon»Beacon возвращает кандидатов той же Network ID. Реальное peer-соединение затем проходит отдельную KnotRoute authentication/handshake.
services: beacon: image: ghcr.io/localzet/knotroute-beacon:latest restart: unless-stopped ports: - "7447:7447" expose: - "8080" volumes: - beacon-data:/data environment: KNOTROUTE_NETWORK_ID: "kn_..." KNOTROUTE_BEACON_LISTEN: "0.0.0.0:8080" KNOTROUTE_BEACON_RELAY: "true" KNOTROUTE_BEACON_RELAY_LISTEN: "0.0.0.0:7447" KNOTROUTE_BEACON_RELAY_ADVERTISE: "relay-a.example.net:7447"
volumes: beacon-data:HTTP через HTTPS
Заголовок раздела «HTTP через HTTPS»Beacon API обычно ставится за reverse proxy:
Internet :443 → Traefik → beacon:8080Relay port — raw TCP:
Internet :7447 → beacon:7447Не пытайтесь отправлять relay TCP в обычный Traefik HTTP router.
curl -fsS https://beacon.example.net/healthzОжидается JSON с ok: true.
Почему Beacon должно быть несколько
Заголовок раздела «Почему Beacon должно быть несколько»Один Beacon — простой availability SPOF для новых клиентов. Existing topology может пережить его падение благодаря peers/PEX/cache, но новые/изолированные nodes могут потерять bootstrap.
Используйте 2+ URL на разных hosts/providers.
Чего Beacon не знает
Заголовок раздела «Чего Beacon не знает»Beacon не является полным каталогом пользователей или services. Он не должен использоваться как источник списка всех .knot addresses.