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]>
22 lines
487 B
Markdown
22 lines
487 B
Markdown
# Architecture: hyper-p2p-autobase-view-sync
|
|
|
|
**Protocol:** `autobase-view-sync/v1` · **P2P:** yes
|
|
|
|
## Wire
|
|
|
|
| type | fields |
|
|
|------|--------|
|
|
| `view-sync` | `{ view: { version, hash, at } }` |
|
|
|
|
`hash` = `sha256("view:"+version)` (coordination digest, not Autobase proof).
|
|
|
|
## Helpers
|
|
|
|
- `isAtLeast(version)` — local caught up?
|
|
- `behindBy(version)` — blocks/versions behind target
|
|
- `mergeRemoteView` — monotonic version + hash match
|
|
|
|
## Events
|
|
|
|
`publish`, `merged`, `closed`
|