mirror of
https://github.com/Vateron-Media/XC_VM.git
synced 2026-10-31 11:03:22 +01:00
MAIN read other servers' files with getFile and the stream secret (its source probe, a node's certbot log, the movies and created channels it runs) and pulled streams from load balancer parents with the password, so DataPlane::legacyApiRetired() never held for any node. `cluster:main-dataplane on|off|rekey|status` (MAIN only): - MAIN gets a data-plane key of its own through `xc_agent keygen` (config/cluster/main_agent.json), recorded in cluster_meta with a generation a re-key raises; the panel key stays in xcvm_core; - while on, the signed node list carries MAIN's entry (active, DATAPLANE), so parents and owners check its proofs as any node's, and the nodes are told at once; - MainDataPlane mints MAIN's own relay and file tickets (TicketService::relayTicket/fileTicket, split out of forRecord) into replica/tickets.json: when DataPlane::relayUrl/fileUrl build a URL on MAIN, and at each epoch from cron:cluster for the streams MAIN holds and the files it read on demand within a day; - run.sh, service and cron:root_signals start `xc_agent run -role main` whenever config/cluster/main.json exists; - checkSource and getSSLLog read through DataPlane::fileUrl. Off (the default) nothing changes. A pull MAIN cannot mint for (no licence, a legacy owner or parent) and MAIN's own files keep the legacy URLs. A proxy is never a node, so a cluster with one keeps every node's /api. ProcessRunner gains capture() for the keygen's output. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rd3c2wqDi5UqJsvHBFRWUn