booter: synthesize seed capabilities so more peers mirror MBR block 0
After a successful swarm boot, fill seedCapabilityInfo with stock kernelCapabilityWords when the pre-MBR capabilities RPC was skipped, failed, or lacked words, so peer system seed eligibility passes and localRAM can serve block 0. Add BARE_OS_PEER_SEED_SYNTHETIC_CAPABILITIES (opt-out) and BARE_OS_PEER_SEED_ADVERTISE_IMAGE_TIP_ID; document tip propagation in env appendix, users manual, and handbook. Extend peer seed tests.
This commit is contained in:
@@ -198,6 +198,8 @@ The list below is one **bullet per variable** in the form **name — component
|
||||
- `BARE_OS_SEED_IMAGE_TIP_ID` — Seeder — Optional short string (≤256 chars) echoed on **`bare_os.capabilities`** as **`imageTipId`** so booted peers can prove they match the same release tip when **`BARE_OS_PEER_SEED_IMAGE_TIP_ID`** is set on helpers.
|
||||
- `BARE_OS_PEER_SYSTEM_SEED` — Booter (host) — **Default: enabled** (unset). When enabled, a **fully booted** node may **serve block 0 (MBR)** from its boot-time copy and mirror **publisher `bare_os.*` RPC** payloads captured at boot (**`capabilities`**, **`replication_status`**, wave hints, …) to other cold booters on the same Hyperswarm topic. Set **`0`**, **`false`**, **`no`**, or **`off`** to disable. Same trust model as replication (“who you peer with”). Eligibility requires a successful pre-MBR seed handshake, **`kernelCapabilityWords`**, primary MBR drive key match, and optional gates below. If you set an affirmative value (**`1`** / **`true`** / **`yes`**) and eligibility still fails, the host logs a warning with the reason.
|
||||
- `BARE_OS_PEER_SEED_IMAGE_TIP_ID` — Booter (host) — When non-empty, peer seeding is allowed only if **`bare_os.capabilities.imageTipId`** from the publisher at boot equals this string (set **`BARE_OS_SEED_IMAGE_TIP_ID`** on the seeder to publish the tip).
|
||||
- `BARE_OS_PEER_SEED_ADVERTISE_IMAGE_TIP_ID` — Booter (host) — Optional **`imageTipId`** for **synthetic** peer capabilities (when **`BARE_OS_PEER_SEED_SYNTHETIC_CAPABILITIES`** is on): used if **`BARE_OS_SEED_IMAGE_TIP_ID`** is unset. Align with the seeder tip so helpers pass **`BARE_OS_PEER_SEED_IMAGE_TIP_ID`** gates and cold joiners see a consistent tip.
|
||||
- `BARE_OS_PEER_SEED_SYNTHETIC_CAPABILITIES` — Booter (host) — Default **on** (unset). When **on**, after a successful swarm boot the booter may fill **`seedCapabilityInfo`** with **stock** **`kernelCapabilityWords`** if the publisher **`bare_os.capabilities`** handshake was skipped (**`BARE_OS_SEED_RPC_HANDSHAKE`**, no early peers), failed, or returned no words — maximizing peers that can mirror **MBR block 0**. Set **`0`** / **`false`** / **`no`** / **`off`** to keep the legacy strict requirement for a complete publisher capability snapshot.
|
||||
- `BARE_OS_PEER_SEED_REQUIRE_REVISION_ID` — Booter (host) — When non-empty, peer seeding requires **`BARE_OS_SYSTEM_REVISION_ID`** (guest env) to equal this value after boot.
|
||||
- `BARE_OS_SWARM_RPC_TRY_PEERS` — Booter — When **`1`** / **`true`** (default), **`bare_os.*`** **`SwarmDisk.rpc`** tries each connected peer in order until one succeeds; for **`capabilities`**, responses without **`kernelCapabilityWords`** are skipped. Set **`0`** / **`false`** to use only the first peer (legacy behavior).
|
||||
- `BARE_OS_OFFLINE_LKG_BOOT` — Booter — With **`BARE_OS_LKG_SYSTEM_KEY_HEX`** (64 hex chars), skip swarm peer wait and open the system Hyperdrive from the local Corestore (**`/boot/init.js`** must already be replicated).
|
||||
|
||||
Reference in New Issue
Block a user