mindoodb 0.0.60 → 0.0.63
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-server.md +13 -3
- package/README.md +1 -0
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +41 -5
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts +9 -2
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +102 -11
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/appendonlystores/network/IrohNetworkTransport.d.ts +29 -0
- package/dist/core/appendonlystores/network/IrohNetworkTransport.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/IrohNetworkTransport.js +204 -25
- package/dist/core/appendonlystores/network/IrohNetworkTransport.js.map +1 -1
- package/dist/core/appendonlystores/network/IrohStreamIO.d.ts +30 -1
- package/dist/core/appendonlystores/network/IrohStreamIO.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/IrohStreamIO.js +43 -11
- package/dist/core/appendonlystores/network/IrohStreamIO.js.map +1 -1
- package/dist/core/appendonlystores/syncStores.d.ts.map +1 -1
- package/dist/core/appendonlystores/syncStores.js +20 -3
- package/dist/core/appendonlystores/syncStores.js.map +1 -1
- package/dist/core/types.d.ts +21 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/iroh/index.d.ts +5 -1
- package/dist/iroh/index.d.ts.map +1 -1
- package/dist/iroh/index.js +4 -0
- package/dist/iroh/index.js.map +1 -1
- package/dist/iroh/node.d.ts +26 -0
- package/dist/iroh/node.d.ts.map +1 -0
- package/dist/iroh/node.js +27 -0
- package/dist/iroh/node.js.map +1 -0
- package/dist/node/server/IrohServerEndpoint.d.ts +5 -0
- package/dist/node/server/IrohServerEndpoint.d.ts.map +1 -1
- package/dist/node/server/IrohServerEndpoint.js +14 -104
- package/dist/node/server/IrohServerEndpoint.js.map +1 -1
- package/dist/node/server/IrohServerRpc.d.ts +57 -0
- package/dist/node/server/IrohServerRpc.d.ts.map +1 -1
- package/dist/node/server/IrohServerRpc.js +422 -5
- package/dist/node/server/IrohServerRpc.js.map +1 -1
- package/dist/node/server/MindooDBServer.d.ts +3 -0
- package/dist/node/server/MindooDBServer.d.ts.map +1 -1
- package/dist/node/server/MindooDBServer.js +36 -0
- package/dist/node/server/MindooDBServer.js.map +1 -1
- package/dist/node/server/nativeIrohStreamIO.d.ts +13 -0
- package/dist/node/server/nativeIrohStreamIO.d.ts.map +1 -0
- package/dist/node/server/nativeIrohStreamIO.js +259 -0
- package/dist/node/server/nativeIrohStreamIO.js.map +1 -0
- package/dist/node/server/peer/ClusterManager.d.ts +6 -0
- package/dist/node/server/peer/ClusterManager.d.ts.map +1 -1
- package/dist/node/server/peer/ClusterManager.js +1 -0
- package/dist/node/server/peer/ClusterManager.js.map +1 -1
- package/dist/node/server/peer/IrohPeerLink.d.ts +24 -0
- package/dist/node/server/peer/IrohPeerLink.d.ts.map +1 -0
- package/dist/node/server/peer/IrohPeerLink.js +115 -0
- package/dist/node/server/peer/IrohPeerLink.js.map +1 -0
- package/dist/node/server/peer/PeerReplicator.d.ts +9 -0
- package/dist/node/server/peer/PeerReplicator.d.ts.map +1 -1
- package/dist/node/server/peer/PeerReplicator.js +103 -6
- package/dist/node/server/peer/PeerReplicator.js.map +1 -1
- package/dist/node/server/types.d.ts +5 -3
- package/dist/node/server/types.d.ts.map +1 -1
- package/dist/node/server/types.js.map +1 -1
- package/package.json +7 -1
- package/scripts/iroh-live-test-server.mjs +30 -0
- package/scripts/iroh-live-test-server.ts +61 -0
- package/scripts/iroh-multistream-spike.mjs +113 -0
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.IrohPeerStore = exports.IrohNetworkTransport = void 0;
|
|
4
|
+
exports.rpcCall = rpcCall;
|
|
4
5
|
exports.createStoreIrohHandler = createStoreIrohHandler;
|
|
5
6
|
exports.serveIrohRpc = serveIrohRpc;
|
|
6
7
|
exports.listenForIrohPeers = listenForIrohPeers;
|
|
7
8
|
const types_1 = require("./types");
|
|
8
9
|
const IrohStreamIO_1 = require("./IrohStreamIO");
|
|
10
|
+
/** One request / one response on a single stream. Exported so tests can force an id mismatch. */
|
|
9
11
|
async function rpcCall(stream, method, args, id, ctx) {
|
|
10
12
|
const request = { id, method, args, ctx };
|
|
11
13
|
await stream.send((0, IrohStreamIO_1.encodeIrohFrame)(request));
|
|
@@ -14,6 +16,9 @@ async function rpcCall(stream, method, args, id, ctx) {
|
|
|
14
16
|
throw new types_1.NetworkError(types_1.NetworkErrorType.NETWORK_ERROR, "Iroh stream closed");
|
|
15
17
|
}
|
|
16
18
|
const response = (0, IrohStreamIO_1.decodeIrohFrame)(bytes);
|
|
19
|
+
if (response.id !== id) {
|
|
20
|
+
throw new types_1.NetworkError(types_1.NetworkErrorType.NETWORK_ERROR, `Iroh response id mismatch: expected ${id}, got ${response.id}`);
|
|
21
|
+
}
|
|
17
22
|
if (!response.ok) {
|
|
18
23
|
throw new types_1.NetworkError(types_1.NetworkErrorType.NETWORK_ERROR, response.error ?? "Iroh RPC failed");
|
|
19
24
|
}
|
|
@@ -30,6 +35,8 @@ class IrohNetworkTransport {
|
|
|
30
35
|
this.config = config;
|
|
31
36
|
this.nextId = 1;
|
|
32
37
|
this.stream = null;
|
|
38
|
+
this.connection = null;
|
|
39
|
+
this.sessionTail = Promise.resolve();
|
|
33
40
|
}
|
|
34
41
|
getIdentity() {
|
|
35
42
|
return `iroh:${this.peerTicket}`;
|
|
@@ -41,14 +48,38 @@ class IrohNetworkTransport {
|
|
|
41
48
|
storeKind: this.config.storeKind,
|
|
42
49
|
};
|
|
43
50
|
}
|
|
51
|
+
async sharedConnection() {
|
|
52
|
+
if (!this.io.openConnection) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
if (!this.connection) {
|
|
56
|
+
this.connection = this.io.openConnection(this.peerTicket, IrohStreamIO_1.MINDOODB_IROH_ALPN);
|
|
57
|
+
}
|
|
58
|
+
return this.connection;
|
|
59
|
+
}
|
|
44
60
|
async session() {
|
|
45
61
|
if (!this.stream) {
|
|
46
62
|
this.stream = await this.io.connect(this.peerTicket, IrohStreamIO_1.MINDOODB_IROH_ALPN);
|
|
47
63
|
}
|
|
48
64
|
return this.stream;
|
|
49
65
|
}
|
|
66
|
+
enqueueSession(work) {
|
|
67
|
+
const run = this.sessionTail.then(work, work);
|
|
68
|
+
this.sessionTail = run.then(() => undefined, () => undefined);
|
|
69
|
+
return run;
|
|
70
|
+
}
|
|
50
71
|
async call(method, args) {
|
|
51
|
-
|
|
72
|
+
const connection = await this.sharedConnection();
|
|
73
|
+
if (connection) {
|
|
74
|
+
const stream = await connection.openStream();
|
|
75
|
+
try {
|
|
76
|
+
return await rpcCall(stream, method, args, this.nextId++, this.rpcContext());
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
await stream.close();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return this.enqueueSession(async () => rpcCall(await this.session(), method, args, this.nextId++, this.rpcContext()));
|
|
52
83
|
}
|
|
53
84
|
getServerInfo() {
|
|
54
85
|
return this.call("getServerInfo", []);
|
|
@@ -62,6 +93,24 @@ class IrohNetworkTransport {
|
|
|
62
93
|
authenticate(challenge, signature) {
|
|
63
94
|
return this.call("authenticate", [challenge, signature]);
|
|
64
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* System-admin challenge (`POST /system/auth/challenge`). No tenant scope.
|
|
98
|
+
*/
|
|
99
|
+
requestSystemChallenge(username, publicsignkey) {
|
|
100
|
+
return this.call("system.requestChallenge", [username, publicsignkey]);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* System-admin authenticate (`POST /system/auth/authenticate`).
|
|
104
|
+
*/
|
|
105
|
+
authenticateSystem(challenge, signature) {
|
|
106
|
+
return this.call("system.authenticate", [challenge, signature]);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Register a tenant (`POST /system/tenants/:tenantId`) with a system JWT.
|
|
110
|
+
*/
|
|
111
|
+
registerTenant(token, tenantId, body) {
|
|
112
|
+
return this.call("system.registerTenant", [token, tenantId, body]);
|
|
113
|
+
}
|
|
65
114
|
getCapabilities(token) {
|
|
66
115
|
return this.call("getCapabilities", [token]);
|
|
67
116
|
}
|
|
@@ -117,18 +166,53 @@ class IrohNetworkTransport {
|
|
|
117
166
|
return this.call("resolveDependencies", [token, startId, options]);
|
|
118
167
|
}
|
|
119
168
|
async subscribeToChanges(token, onEvent, options) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
169
|
+
// Dedicated stream so the RPC session stays usable. When openConnection
|
|
170
|
+
// exists this is a second bi-stream on the shared QUIC connection;
|
|
171
|
+
// otherwise it is a second connect() (WASM / RN adapters).
|
|
172
|
+
const connection = await this.sharedConnection();
|
|
173
|
+
const stream = connection
|
|
174
|
+
? await connection.openStream()
|
|
175
|
+
: await this.io.connect(this.peerTicket, IrohStreamIO_1.MINDOODB_IROH_ALPN);
|
|
176
|
+
const onAbort = () => {
|
|
177
|
+
void stream.close();
|
|
178
|
+
};
|
|
179
|
+
if (options?.signal) {
|
|
180
|
+
if (options.signal.aborted) {
|
|
181
|
+
await stream.close();
|
|
125
182
|
return;
|
|
126
183
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
184
|
+
options.signal.addEventListener("abort", onAbort, { once: true });
|
|
185
|
+
}
|
|
186
|
+
try {
|
|
187
|
+
await stream.send((0, IrohStreamIO_1.encodeIrohFrame)({
|
|
188
|
+
id: this.nextId++,
|
|
189
|
+
method: "subscribeToChanges",
|
|
190
|
+
args: [token],
|
|
191
|
+
ctx: this.rpcContext(),
|
|
192
|
+
}));
|
|
193
|
+
const ackBytes = await stream.recv();
|
|
194
|
+
if (!ackBytes) {
|
|
195
|
+
throw new types_1.NetworkError(types_1.NetworkErrorType.NETWORK_ERROR, "Iroh stream closed");
|
|
196
|
+
}
|
|
197
|
+
const ack = (0, IrohStreamIO_1.decodeIrohFrame)(ackBytes);
|
|
198
|
+
if (!ack.ok) {
|
|
199
|
+
throw new types_1.NetworkError(types_1.NetworkErrorType.NETWORK_ERROR, ack.error ?? "Iroh RPC failed");
|
|
200
|
+
}
|
|
201
|
+
while (!options?.signal?.aborted) {
|
|
202
|
+
const bytes = await stream.recv();
|
|
203
|
+
if (!bytes) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
const frame = (0, IrohStreamIO_1.decodeIrohFrame)(bytes);
|
|
207
|
+
if (isStoreChangeEvent(frame)) {
|
|
208
|
+
onEvent(frame);
|
|
209
|
+
}
|
|
130
210
|
}
|
|
131
211
|
}
|
|
212
|
+
finally {
|
|
213
|
+
options?.signal?.removeEventListener("abort", onAbort);
|
|
214
|
+
await stream.close();
|
|
215
|
+
}
|
|
132
216
|
}
|
|
133
217
|
}
|
|
134
218
|
exports.IrohNetworkTransport = IrohNetworkTransport;
|
|
@@ -144,6 +228,8 @@ class IrohPeerStore {
|
|
|
144
228
|
this.storeKind = storeKind;
|
|
145
229
|
this.nextId = 1;
|
|
146
230
|
this.stream = null;
|
|
231
|
+
this.connection = null;
|
|
232
|
+
this.sessionTail = Promise.resolve();
|
|
147
233
|
}
|
|
148
234
|
getId() {
|
|
149
235
|
return this.dbId;
|
|
@@ -154,14 +240,38 @@ class IrohPeerStore {
|
|
|
154
240
|
getCacheIdentity() {
|
|
155
241
|
return `iroh:${this.peerTicket}:${this.dbId}:${this.storeKind}`;
|
|
156
242
|
}
|
|
243
|
+
async sharedConnection() {
|
|
244
|
+
if (!this.io.openConnection) {
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
if (!this.connection) {
|
|
248
|
+
this.connection = this.io.openConnection(this.peerTicket, IrohStreamIO_1.MINDOODB_IROH_ALPN);
|
|
249
|
+
}
|
|
250
|
+
return this.connection;
|
|
251
|
+
}
|
|
157
252
|
async session() {
|
|
158
253
|
if (!this.stream) {
|
|
159
254
|
this.stream = await this.io.connect(this.peerTicket, IrohStreamIO_1.MINDOODB_IROH_ALPN);
|
|
160
255
|
}
|
|
161
256
|
return this.stream;
|
|
162
257
|
}
|
|
258
|
+
enqueueSession(work) {
|
|
259
|
+
const run = this.sessionTail.then(work, work);
|
|
260
|
+
this.sessionTail = run.then(() => undefined, () => undefined);
|
|
261
|
+
return run;
|
|
262
|
+
}
|
|
163
263
|
async call(method, args) {
|
|
164
|
-
|
|
264
|
+
const connection = await this.sharedConnection();
|
|
265
|
+
if (connection) {
|
|
266
|
+
const stream = await connection.openStream();
|
|
267
|
+
try {
|
|
268
|
+
return await rpcCall(stream, method, args, this.nextId++);
|
|
269
|
+
}
|
|
270
|
+
finally {
|
|
271
|
+
await stream.close();
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return this.enqueueSession(async () => rpcCall(await this.session(), method, args, this.nextId++));
|
|
165
275
|
}
|
|
166
276
|
putEntries(entries) {
|
|
167
277
|
return this.call("store.putEntries", [entries]);
|
|
@@ -223,26 +333,91 @@ function createStoreIrohHandler(store) {
|
|
|
223
333
|
return fn.apply(store, args);
|
|
224
334
|
};
|
|
225
335
|
}
|
|
336
|
+
function isAsyncIterable(value) {
|
|
337
|
+
return Boolean(value && typeof value === "object" && Symbol.asyncIterator in value);
|
|
338
|
+
}
|
|
339
|
+
function isStoreChangeEvent(value) {
|
|
340
|
+
if (!value || typeof value !== "object") {
|
|
341
|
+
return false;
|
|
342
|
+
}
|
|
343
|
+
const event = value;
|
|
344
|
+
return typeof event.dbId === "string" && typeof event.storeKind === "string";
|
|
345
|
+
}
|
|
226
346
|
async function serveIrohRpc(stream, handler) {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
347
|
+
try {
|
|
348
|
+
while (true) {
|
|
349
|
+
const bytes = await stream.recv();
|
|
350
|
+
if (!bytes) {
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
const request = (0, IrohStreamIO_1.decodeIrohFrame)(bytes);
|
|
354
|
+
try {
|
|
355
|
+
const result = await handler(request.method, request.args, request.ctx);
|
|
356
|
+
if (isAsyncIterable(result)) {
|
|
357
|
+
await streamHandlerIterable(stream, request, result);
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
const response = { id: request.id, ok: true, result };
|
|
361
|
+
await stream.send((0, IrohStreamIO_1.encodeIrohFrame)(response));
|
|
362
|
+
}
|
|
363
|
+
catch (error) {
|
|
364
|
+
const response = {
|
|
365
|
+
id: request.id,
|
|
366
|
+
ok: false,
|
|
367
|
+
error: error instanceof Error ? error.message : String(error),
|
|
368
|
+
};
|
|
369
|
+
await stream.send((0, IrohStreamIO_1.encodeIrohFrame)(response));
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
catch (error) {
|
|
374
|
+
if ((0, IrohStreamIO_1.isBenignIrohClose)(error)) {
|
|
230
375
|
return;
|
|
231
376
|
}
|
|
232
|
-
|
|
377
|
+
throw error;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
async function streamHandlerIterable(stream, request, result) {
|
|
381
|
+
await stream.send((0, IrohStreamIO_1.encodeIrohFrame)({ id: request.id, ok: true, result: { subscribed: true } }));
|
|
382
|
+
const iterator = result[Symbol.asyncIterator]();
|
|
383
|
+
let stopped = false;
|
|
384
|
+
const stop = async () => {
|
|
385
|
+
if (stopped) {
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
stopped = true;
|
|
389
|
+
await iterator.return?.();
|
|
390
|
+
};
|
|
391
|
+
const watchClose = (async () => {
|
|
233
392
|
try {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
393
|
+
while (true) {
|
|
394
|
+
const next = await stream.recv();
|
|
395
|
+
if (!next) {
|
|
396
|
+
break;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
237
399
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
id: request.id,
|
|
241
|
-
ok: false,
|
|
242
|
-
error: error instanceof Error ? error.message : String(error),
|
|
243
|
-
};
|
|
244
|
-
await stream.send((0, IrohStreamIO_1.encodeIrohFrame)(response));
|
|
400
|
+
finally {
|
|
401
|
+
await stop();
|
|
245
402
|
}
|
|
403
|
+
})();
|
|
404
|
+
try {
|
|
405
|
+
while (!stopped) {
|
|
406
|
+
const next = await iterator.next();
|
|
407
|
+
if (next.done) {
|
|
408
|
+
break;
|
|
409
|
+
}
|
|
410
|
+
await stream.send((0, IrohStreamIO_1.encodeIrohFrame)(next.value));
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
catch (error) {
|
|
414
|
+
if (!(0, IrohStreamIO_1.isBenignIrohClose)(error)) {
|
|
415
|
+
throw error;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
finally {
|
|
419
|
+
await stop();
|
|
420
|
+
await watchClose.catch(() => undefined);
|
|
246
421
|
}
|
|
247
422
|
}
|
|
248
423
|
async function listenForIrohPeers(io, handler, options) {
|
|
@@ -254,7 +429,11 @@ async function listenForIrohPeers(io, handler, options) {
|
|
|
254
429
|
await stream.close();
|
|
255
430
|
return;
|
|
256
431
|
}
|
|
257
|
-
void serveIrohRpc(stream, handler)
|
|
432
|
+
void serveIrohRpc(stream, handler).catch((error) => {
|
|
433
|
+
if (!(0, IrohStreamIO_1.isBenignIrohClose)(error)) {
|
|
434
|
+
console.error("[Iroh] RPC session failed:", error);
|
|
435
|
+
}
|
|
436
|
+
});
|
|
258
437
|
}
|
|
259
438
|
}
|
|
260
439
|
//# sourceMappingURL=IrohNetworkTransport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrohNetworkTransport.js","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/IrohNetworkTransport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrohNetworkTransport.js","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/IrohNetworkTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,17 @@ export interface IrohByteStream {
|
|
|
28
28
|
/** Finish the send side and release the stream. */
|
|
29
29
|
close(): Promise<void>;
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* One QUIC connection that can open many bidirectional streams.
|
|
33
|
+
* Native adapters implement this; WASM / React Native may omit it and keep
|
|
34
|
+
* using {@link IrohStreamIO.connect} (one stream per handshake).
|
|
35
|
+
*/
|
|
36
|
+
export interface IrohConnectionHandle {
|
|
37
|
+
/** Open another bi-stream on this connection. */
|
|
38
|
+
openStream(): Promise<IrohByteStream>;
|
|
39
|
+
/** Close the connection and every stream on it. */
|
|
40
|
+
close(): Promise<void>;
|
|
41
|
+
}
|
|
31
42
|
/**
|
|
32
43
|
* Local Iroh endpoint: publish a ticket, dial a peer, and optionally accept
|
|
33
44
|
* inbound streams on {@link MINDOODB_IROH_ALPN}.
|
|
@@ -42,13 +53,29 @@ export interface IrohStreamIO {
|
|
|
42
53
|
/**
|
|
43
54
|
* Open an outbound stream to `peerTicket`.
|
|
44
55
|
*
|
|
56
|
+
* Convenience for one stream. Adapters that implement
|
|
57
|
+
* {@link IrohStreamIO.openConnection} should treat this as
|
|
58
|
+
* `openConnection().openStream()` and close the connection when the
|
|
59
|
+
* stream closes. WASM / RN adapters that omit `openConnection` open a
|
|
60
|
+
* new QUIC connection per call.
|
|
61
|
+
*
|
|
45
62
|
* @param peerTicket Remote Iroh ticket or loopback id
|
|
46
63
|
* @param alpn Protocol, defaults to {@link MINDOODB_IROH_ALPN}
|
|
47
64
|
*/
|
|
48
65
|
connect(peerTicket: string, alpn?: string): Promise<IrohByteStream>;
|
|
66
|
+
/**
|
|
67
|
+
* Open a QUIC connection that can carry many bi-streams (RPC + change
|
|
68
|
+
* feed, or several in-flight RPCs). Optional — {@link IrohNetworkTransport}
|
|
69
|
+
* falls back to {@link IrohStreamIO.connect} when this is missing.
|
|
70
|
+
*
|
|
71
|
+
* @param peerTicket Remote Iroh ticket or loopback id
|
|
72
|
+
* @param alpn Protocol, defaults to {@link MINDOODB_IROH_ALPN}
|
|
73
|
+
*/
|
|
74
|
+
openConnection?(peerTicket: string, alpn?: string): Promise<IrohConnectionHandle>;
|
|
49
75
|
/**
|
|
50
76
|
* Yield inbound streams. Required on the server / listener side; a
|
|
51
|
-
* client-only IO may omit it.
|
|
77
|
+
* client-only IO may omit it. Native adapters yield every `acceptBi()`
|
|
78
|
+
* on each incoming connection (one connection, many streams).
|
|
52
79
|
*
|
|
53
80
|
* @param alpn Protocol, defaults to {@link MINDOODB_IROH_ALPN}
|
|
54
81
|
*/
|
|
@@ -85,6 +112,8 @@ export interface IrohRpcResponse {
|
|
|
85
112
|
* @param payload {@link IrohRpcRequest} or {@link IrohRpcResponse}
|
|
86
113
|
*/
|
|
87
114
|
export declare function encodeIrohFrame(payload: unknown): Uint8Array;
|
|
115
|
+
/** Peer closed the QUIC stream or endpoint. Not an application error. */
|
|
116
|
+
export declare function isBenignIrohClose(error: unknown): boolean;
|
|
88
117
|
/**
|
|
89
118
|
* Length-prefix a message-oriented {@link IrohByteStream} on top of a raw
|
|
90
119
|
* QUIC/byte stream. Each `send` writes a big-endian uint32 length plus the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrohStreamIO.d.ts","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/IrohStreamIO.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AAErD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACnC,mDAAmD;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC
|
|
1
|
+
{"version":3,"file":"IrohStreamIO.d.ts","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/IrohStreamIO.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,qBAAqB,CAAC;AAErD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACnC,mDAAmD;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACtC,mDAAmD;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACpE;;;;;;;OAOG;IACH,cAAc,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClF;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;CACvD;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB;AAED,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAE5D;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE;IAChD,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,GAAG,cAAc,CAyCjB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAE1D;AA2FD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI;IAAE,CAAC,EAAE,YAAY,CAAC;IAAC,CAAC,EAAE,YAAY,CAAA;CAAE,CAsE7E"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MINDOODB_IROH_ALPN = void 0;
|
|
4
4
|
exports.encodeIrohFrame = encodeIrohFrame;
|
|
5
|
+
exports.isBenignIrohClose = isBenignIrohClose;
|
|
5
6
|
exports.wrapLengthPrefixedByteStream = wrapLengthPrefixedByteStream;
|
|
6
7
|
exports.decodeIrohFrame = decodeIrohFrame;
|
|
7
8
|
exports.createLoopbackIrohPair = createLoopbackIrohPair;
|
|
@@ -24,6 +25,11 @@ const textDecoder = new TextDecoder();
|
|
|
24
25
|
function encodeIrohFrame(payload) {
|
|
25
26
|
return textEncoder.encode(JSON.stringify(payload, replacer));
|
|
26
27
|
}
|
|
28
|
+
/** Peer closed the QUIC stream or endpoint. Not an application error. */
|
|
29
|
+
function isBenignIrohClose(error) {
|
|
30
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
31
|
+
return /ApplicationClosed|ConnectionLost|ConnectionReset/.test(message);
|
|
32
|
+
}
|
|
27
33
|
/**
|
|
28
34
|
* Length-prefix a message-oriented {@link IrohByteStream} on top of a raw
|
|
29
35
|
* QUIC/byte stream. Each `send` writes a big-endian uint32 length plus the
|
|
@@ -123,8 +129,8 @@ class LoopbackStream {
|
|
|
123
129
|
this.peer = null;
|
|
124
130
|
}
|
|
125
131
|
async send(bytes) {
|
|
126
|
-
if (!this.peer) {
|
|
127
|
-
throw new Error(
|
|
132
|
+
if (!this.peer || this.peer.closed) {
|
|
133
|
+
throw new Error('ConnectionLost(ApplicationClosed)');
|
|
128
134
|
}
|
|
129
135
|
this.peer.push(bytes);
|
|
130
136
|
}
|
|
@@ -149,12 +155,19 @@ class LoopbackStream {
|
|
|
149
155
|
});
|
|
150
156
|
}
|
|
151
157
|
async close() {
|
|
158
|
+
if (this.closed) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
152
161
|
this.closed = true;
|
|
153
162
|
if (this.waiter) {
|
|
154
163
|
const resolve = this.waiter;
|
|
155
164
|
this.waiter = null;
|
|
156
165
|
resolve(null);
|
|
157
166
|
}
|
|
167
|
+
const peer = this.peer;
|
|
168
|
+
if (peer && !peer.closed) {
|
|
169
|
+
await peer.close();
|
|
170
|
+
}
|
|
158
171
|
}
|
|
159
172
|
}
|
|
160
173
|
/**
|
|
@@ -172,18 +185,37 @@ function createLoopbackIrohPair() {
|
|
|
172
185
|
async getLocalTicket() {
|
|
173
186
|
return ticket;
|
|
174
187
|
},
|
|
175
|
-
async
|
|
188
|
+
async openConnection(target) {
|
|
176
189
|
if (target !== peerTicket) {
|
|
177
190
|
throw new Error(`Unknown loopback peer ${target}`);
|
|
178
191
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
192
|
+
return {
|
|
193
|
+
async openStream() {
|
|
194
|
+
const local = new LoopbackStream();
|
|
195
|
+
const remote = new LoopbackStream();
|
|
196
|
+
local.peer = remote;
|
|
197
|
+
remote.peer = local;
|
|
198
|
+
for (const listener of remoteListeners) {
|
|
199
|
+
listener(remote);
|
|
200
|
+
}
|
|
201
|
+
return local;
|
|
202
|
+
},
|
|
203
|
+
async close() {
|
|
204
|
+
// Streams close independently; loopback has no shared socket.
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
},
|
|
208
|
+
async connect(target) {
|
|
209
|
+
const connection = await this.openConnection(target);
|
|
210
|
+
const stream = await connection.openStream();
|
|
211
|
+
return {
|
|
212
|
+
send: (bytes) => stream.send(bytes),
|
|
213
|
+
recv: () => stream.recv(),
|
|
214
|
+
close: async () => {
|
|
215
|
+
await stream.close();
|
|
216
|
+
await connection.close();
|
|
217
|
+
},
|
|
218
|
+
};
|
|
187
219
|
},
|
|
188
220
|
async *listen() {
|
|
189
221
|
const pending = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrohStreamIO.js","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/IrohStreamIO.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"IrohStreamIO.js","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/IrohStreamIO.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncStores.d.ts","sourceRoot":"","sources":["../../../src/core/appendonlystores/syncStores.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"syncStores.d.ts","sourceRoot":"","sources":["../../../src/core/appendonlystores/syncStores.ts"],"names":[],"mappings":"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"}
|
|
@@ -327,11 +327,19 @@ async function syncEntriesBetweenStores(sourceStore, targetStore, options, ctx)
|
|
|
327
327
|
getStoreHeadSafe(targetStore, logger),
|
|
328
328
|
]);
|
|
329
329
|
let cursor = null;
|
|
330
|
+
let cursorDecision = "full-scan";
|
|
331
|
+
let cursorReason = options?.forceFullScan
|
|
332
|
+
? "forceFullScan"
|
|
333
|
+
: persisted
|
|
334
|
+
? "persisted cursor unusable"
|
|
335
|
+
: "no persisted cursor";
|
|
330
336
|
if (persisted && sourceHead && targetHead) {
|
|
331
337
|
if (persisted.sourceEpoch === sourceHead.epoch &&
|
|
332
338
|
persisted.targetEpoch === targetHead.epoch) {
|
|
333
339
|
if (sourceHead.maxReceiptOrder <= persisted.cursor.receiptOrder) {
|
|
334
|
-
|
|
340
|
+
cursorDecision = "skip";
|
|
341
|
+
cursorReason = `source head ${sourceHead.maxReceiptOrder} already covered by cursor ${persisted.cursor.receiptOrder}`;
|
|
342
|
+
logger.info(`Sync ${cursorDecision}: ${cursorReason} (${cursorKey})`);
|
|
335
343
|
onProgress?.({
|
|
336
344
|
phase: "preparing",
|
|
337
345
|
message: "Source unchanged since last sync, nothing to scan",
|
|
@@ -341,15 +349,24 @@ async function syncEntriesBetweenStores(sourceStore, targetStore, options, ctx)
|
|
|
341
349
|
return { transferred: 0, scanned: 0, cancelled: false };
|
|
342
350
|
}
|
|
343
351
|
cursor = persisted.cursor;
|
|
344
|
-
|
|
352
|
+
cursorDecision = "resume";
|
|
353
|
+
cursorReason = `from receiptOrder=${cursor.receiptOrder} (source head ${sourceHead.maxReceiptOrder})`;
|
|
354
|
+
logger.info(`Sync ${cursorDecision}: ${cursorReason} (${cursorKey})`);
|
|
345
355
|
}
|
|
346
356
|
else {
|
|
347
357
|
// Epoch change on either side: the cursor lineage is broken (store
|
|
348
358
|
// reset / receipt-order migration) — full rescan.
|
|
349
|
-
|
|
359
|
+
cursorReason = `epoch changed (persisted ${persisted.sourceEpoch}/${persisted.targetEpoch} vs live ${sourceHead.epoch}/${targetHead.epoch})`;
|
|
360
|
+
logger.info(`Sync ${cursorDecision}: ${cursorReason}, discarding persisted cursor (${cursorKey})`);
|
|
350
361
|
cursors.delete(cursorKey);
|
|
351
362
|
}
|
|
352
363
|
}
|
|
364
|
+
else {
|
|
365
|
+
if (persisted && (!sourceHead || !targetHead)) {
|
|
366
|
+
cursorReason = `persisted cursor but missing head (source=${sourceHead ? "ok" : "none"}, target=${targetHead ? "ok" : "none"})`;
|
|
367
|
+
}
|
|
368
|
+
logger.info(`Sync ${cursorDecision}: ${cursorReason} (${cursorKey})`);
|
|
369
|
+
}
|
|
353
370
|
// Under the "hold" rejection policy this pins the cursor to the position
|
|
354
371
|
// immediately before the earliest rejected entry, so the next run re-offers
|
|
355
372
|
// it instead of skipping it forever. Null means "nothing rejected yet".
|