@le-space/orbitdb-storage-bridge 0.14.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -0
- package/lib/courier-sync.js +12 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -329,3 +329,20 @@ and how to run each suite.
|
|
|
329
329
|
## License
|
|
330
330
|
|
|
331
331
|
MIT License
|
|
332
|
+
|
|
333
|
+
## Trademarks
|
|
334
|
+
|
|
335
|
+
LoRa® is a trademark of Semtech Corporation. Meshtastic® is a registered
|
|
336
|
+
trademark of Meshtastic LLC. Other names used here — OrbitDB, IPFS, Filecoin,
|
|
337
|
+
Storacha, Pinata, Lighthouse, Aleph — belong to their respective owners and
|
|
338
|
+
appear only to say what this package interoperates with. This project is not
|
|
339
|
+
affiliated with or endorsed by any of them.
|
|
340
|
+
|
|
341
|
+
The first two appear in this repository only in prose about what the courier
|
|
342
|
+
seam is *for*: `courier-sync` is transport-neutral and this package contains no
|
|
343
|
+
code from either project and depends on neither. That is deliberate rather than
|
|
344
|
+
incidental. The Meshtastic client libraries (`@meshtastic/core`,
|
|
345
|
+
`@meshtastic/transport-web-bluetooth`) are **GPL-3.0-only**, and the courier
|
|
346
|
+
that drives them lives in [funkpost](https://github.com/NiKrause/funkpost), on
|
|
347
|
+
the GPL side of that line. This package is MIT and stays that way; the door
|
|
348
|
+
only opens one way.
|
package/lib/courier-sync.js
CHANGED
|
@@ -192,6 +192,18 @@ async function reachableFrom(db, roots) {
|
|
|
192
192
|
const hash = queue.shift();
|
|
193
193
|
if (held.has(hash)) continue;
|
|
194
194
|
held.add(hash);
|
|
195
|
+
// The index first, and only then the blocks. `IPFSBlockStorage.get` on a
|
|
196
|
+
// miss waits out a network timeout — measured at 20 s against a Helia node
|
|
197
|
+
// with no peers, which is every phone in the field — and the peer's heads
|
|
198
|
+
// are precisely where misses live: their newest entry is the one we have
|
|
199
|
+
// not got. `has` reads the log's index and answers at once.
|
|
200
|
+
//
|
|
201
|
+
// The rule is already written down twenty lines below, in the closure
|
|
202
|
+
// check, and this walk broke it: 0.14.0 built correct deltas and took
|
|
203
|
+
// twenty seconds to do it, which stalled the exchange past every timeout
|
|
204
|
+
// around it (funkpost#170). The suite could not see it, because its nodes
|
|
205
|
+
// are built offline and a miss there fails instantly.
|
|
206
|
+
if (!(await db.log.has(hash))) continue; // theirs, not ours: stop here
|
|
195
207
|
const bytes = await db.log.storage.get(hash).catch(() => null);
|
|
196
208
|
if (!bytes) continue; // not ours to follow; their ancestry ends here for us
|
|
197
209
|
let value;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@le-space/orbitdb-storage-bridge",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"description": "Back up, restore and replicate OrbitDB databases through pluggable storage backends, with hash and identity preservation",
|
|
5
5
|
"main": "lib/orbitdb-storacha-bridge.js",
|
|
6
6
|
"svelte": "dist/components/",
|