Files
modules/storage-autobase/hyper-p2p-autobase-fork-choice
Raven ScottandCursor a11e22badc Add storage stack modules and track them in git
The modules workspace previously ignored every path matching `storage-*`,
which kept all Hypercore, Hyperbee, Hyperdrive, and Autobase packages out
of version control. Narrow .gitignore to test-artifact patterns only so
production category trees are committed.

Storage packages (23 total):
- storage-hypercore (7): replicator, seed-policy, fork-picker, merkle-sync,
  priority-fetch, bitfield-scheduler, audit-chain
- storage-hyperbee (5): batch-write, diff-follow, range-watch,
  secondary-index, tombstone-gc
- storage-hyperdrive (6): entry-catalog, gc-sweep, mirror-sync, mount-bridge,
  version-snapshot, watch-notify
- storage-autobase (5): fork-choice, view-sync, writer-lease, indexer-bus,
  light-writer

Implementation highlights:
- Shared attach/gossip helpers in _shared/storage-gossip-base.js
- P2P modules use Protomux gossip via p2p-bare; local planners omit swarm
- Recent deepen pass: priority queues, batch caps, audit export/import,
  watch/notify aliases on range-watch, fork/view lease helpers, etc.
- Per-package README, docs/api.md, docs/architecture.md, tests, examples

Also update modules/README.md doc hub links for the full storage stack
(hypercore, hyperbee, hyperdrive, autobase).

Co-authored-by: Cursor <[email protected]>
2026-05-21 00:17:51 -04:00
..

hyper-p2p-autobase-fork-choice

Registers Autobase view forks over gossip and picks the best by weight/version; align with hyper-p2p-causal-consensus for writer ordering. Hyperswarm gossip when topic is set.

Category: Storage (Autobase)

Composes with: hyper-p2p-causal-consensus

Protocol: autobase-fork-choice/v1

When to use

Multiple Autobase views compete and peers must converge on one fork id.

When not to use

Single linear Autobase with no fork hints.

Quick start

const { HyperP2PAutobaseForkChoice } = require('hyper-p2p-autobase-fork-choice')
const topic = process.argv[2] // 64-char hex or string
const mod = new HyperP2PAutobaseForkChoice({ topic })
await mod.ready()   // joins swarm when topic set
// ... application logic ...
await mod.close()

Docs

Test

npm install && npm test