bare-os-protocol
Shared wire format and constants for the Bare operating system monorepo: Hyperswarm topic, 512-byte MBR layout, and Protomux bare-os-v1 seed-channel message shapes.
What it provides
Export (from index.js) |
Role |
|---|---|
PROTOCOL_NAME, TOPIC_STRING |
Protomux channel name and swarm topic input string (bare-os-v1) |
topicKey() |
32-byte topic for swarm.join() |
BLOCK_SIZE, MBR_MAGIC |
512-byte MBR, magic BIOS at offset 0 |
buildMbr / parseMbr |
Pack/unpack primary + optional failover Hyperdrive keys |
setupSeedChannel |
Wire Protomux messages 0–6 for RAM block reads, gossip bitfield, manifest path search, RPC (incl. bare_os.capabilities, bare_os.replication_status, bare_os.gossip), and drive.replicate |
Subpath exports: bare-os-protocol/constants.js, bare-os-protocol/messages (compact-encoding schemas), bare-os-protocol/kernel-feature-bits.js (documented booter capability bitmask; surfaced in /proc/bare_os_features and /proc/bare_os/), bare-os-protocol/protocol-meta.js (BARE_OS_PROTOCOL_PACKAGE_VERSION for the seed handshake).
Consumers
- bare-os-seeder — builds MBR, serves block 0 over the channel, replicates the system Hyperdrive.
- bare-os-booter — parses MBR from
SwarmDisk, opens system drives, uses the same channel on the client side.
Tests
npm test -w bare-os-protocol
Runs brittle-bare against test.js (topic stability, MBR roundtrip, encodings).
Dependencies
b4a, compact-encoding, hypercore-crypto (via constants/topic). No Hyperdrive or Hyperswarm here — this package stays small and testable.
See also
- Repo root README.md and protocol reference §10.
- Handbook — Blueprints § protocol (high-level).