41 lines
993 B
Markdown
41 lines
993 B
Markdown
# Hypercore + Corestore Interconnection
|
|
|
|
## Overview
|
|
|
|
Corestore: Factory/namespacer for Hypercores. Efficient multi-core mgmt.
|
|
|
|
**Why?** Hypercore ctor expensive; corestore pools storage/replication.
|
|
|
|
## Flow
|
|
|
|
```mermaid
|
|
graph LR
|
|
App[new Corestore('./ns')] --> Core1[store.get(null)] %% new
|
|
App --> Core2[store.get(key)] %% load
|
|
App --> Named[store.get('db')] %% namespace
|
|
Core1 -.-> Replicate[store.replicate(conn)]
|
|
Core2 -.-> Replicate
|
|
```
|
|
|
|
## API Synergy
|
|
|
|
```js
|
|
const Corestore = require('corestore')
|
|
const store = new Corestore('./data')
|
|
|
|
const log = store.get(null) %% anon writable
|
|
const idx = store.get(null, {valueEncoding: 'json'}) %% readonly?
|
|
|
|
await store.replicate(conn) %% All cores over 1 stream!
|
|
```
|
|
|
|
**Namespace**: get('logs/chat') → keyed core.
|
|
|
|
**Benefits**: Shared bitfields/proofs, atomic sessions.
|
|
|
|
**Hyperdrive Ex**: drive.db = Hyperbee(corestore.get('db'))
|
|
|
|
**Scale**: 1000s cores, e.g. user shards.
|
|
|
|
**Source**: corestore npm, hypercore examples.
|