@enbox/agent 0.5.1 → 0.5.3
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/dist/browser.mjs +9 -9
- package/dist/browser.mjs.map +3 -3
- package/dist/esm/sync-engine-level.js +220 -9
- package/dist/esm/sync-engine-level.js.map +1 -1
- package/dist/esm/sync-messages.js +126 -22
- package/dist/esm/sync-messages.js.map +1 -1
- package/dist/types/sync-engine-level.d.ts +61 -1
- package/dist/types/sync-engine-level.d.ts.map +1 -1
- package/dist/types/sync-messages.d.ts +11 -7
- package/dist/types/sync-messages.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/sync-engine-level.ts +247 -14
- package/src/sync-messages.ts +143 -25
|
@@ -23,11 +23,18 @@ import { isRecordsWrite } from './utils.js';
|
|
|
23
23
|
import { topologicalSort } from './sync-topological-sort.js';
|
|
24
24
|
import { pullMessages, pushMessages } from './sync-messages.js';
|
|
25
25
|
/**
|
|
26
|
-
* Maximum bit prefix depth
|
|
27
|
-
* At depth 16, each subtree covers ~1/65536 of the key space
|
|
28
|
-
* balance between round-trip count and leaf-set size.
|
|
26
|
+
* Maximum bit prefix depth for the per-node tree walk (legacy fallback).
|
|
27
|
+
* At depth 16, each subtree covers ~1/65536 of the key space.
|
|
29
28
|
*/
|
|
30
29
|
const MAX_DIFF_DEPTH = 16;
|
|
30
|
+
/**
|
|
31
|
+
* Bit depth for the batched diff protocol.
|
|
32
|
+
* Lower than MAX_DIFF_DEPTH because the batched diff sends all subtree hashes
|
|
33
|
+
* in a single request — fine granularity comes from the server-side leaf
|
|
34
|
+
* enumeration, not from deeper prefixes. Depth 8 = 256 buckets, which is
|
|
35
|
+
* a good balance between hash map size and leaf-set resolution.
|
|
36
|
+
*/
|
|
37
|
+
const BATCHED_DIFF_DEPTH = 8;
|
|
31
38
|
/**
|
|
32
39
|
* Maximum number of concurrent remote HTTP requests during a tree diff.
|
|
33
40
|
* The binary tree walk fans out in parallel — without a limit, depth N
|
|
@@ -220,14 +227,46 @@ export class SyncEngineLevel {
|
|
|
220
227
|
// Trees are identical — nothing to sync for this target.
|
|
221
228
|
continue;
|
|
222
229
|
}
|
|
223
|
-
// Phase 2:
|
|
224
|
-
|
|
230
|
+
// Phase 2: Compute the diff in a single round-trip using the
|
|
231
|
+
// batched 'diff' action. This replaces the per-node tree walk
|
|
232
|
+
// that previously required dozens of HTTP requests.
|
|
233
|
+
const diff = yield this.diffWithRemote({
|
|
225
234
|
did, dwnUrl, delegateDid, protocol,
|
|
226
235
|
});
|
|
227
236
|
// Phase 3: Pull missing messages (remote has, local doesn't).
|
|
237
|
+
// The diff response may include inline message data — use it
|
|
238
|
+
// directly instead of re-fetching via individual MessagesRead calls.
|
|
228
239
|
if (!direction || direction === 'pull') {
|
|
229
240
|
if (diff.onlyRemote.length > 0) {
|
|
230
|
-
|
|
241
|
+
// Separate entries into three categories:
|
|
242
|
+
// 1. Fully prefetched: have message + inline data (or no data needed)
|
|
243
|
+
// 2. Need data fetch: have message but missing data for RecordsWrite
|
|
244
|
+
// 3. Need full fetch: no message at all
|
|
245
|
+
const prefetched = [];
|
|
246
|
+
const needsFetchCids = [];
|
|
247
|
+
for (const entry of diff.onlyRemote) {
|
|
248
|
+
if (!entry.message) {
|
|
249
|
+
// No message at all — need full fetch.
|
|
250
|
+
needsFetchCids.push(entry.messageCid);
|
|
251
|
+
}
|
|
252
|
+
else if (entry.message.descriptor.interface === 'Records' &&
|
|
253
|
+
entry.message.descriptor.method === 'Write' &&
|
|
254
|
+
entry.message.descriptor.dataCid &&
|
|
255
|
+
!entry.encodedData) {
|
|
256
|
+
// RecordsWrite with data but data wasn't inlined (too large).
|
|
257
|
+
// Need to fetch individually to get the data stream.
|
|
258
|
+
needsFetchCids.push(entry.messageCid);
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
// Fully prefetched (message + data or no data needed).
|
|
262
|
+
prefetched.push(entry);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
yield this.pullMessages({
|
|
266
|
+
did, dwnUrl, delegateDid, protocol,
|
|
267
|
+
messageCids: needsFetchCids,
|
|
268
|
+
prefetched,
|
|
269
|
+
});
|
|
231
270
|
}
|
|
232
271
|
}
|
|
233
272
|
// Phase 4: Push missing messages (local has, remote doesn't).
|
|
@@ -704,16 +743,52 @@ export class SyncEngineLevel {
|
|
|
704
743
|
return (_a = this._defaultHashHex.get(depth)) !== null && _a !== void 0 ? _a : '';
|
|
705
744
|
});
|
|
706
745
|
}
|
|
746
|
+
/**
|
|
747
|
+
* Parse a bit prefix string (e.g. "0110101") into a boolean array
|
|
748
|
+
* for the StateIndex API. Each '1' maps to `true` (right child),
|
|
749
|
+
* each '0' maps to `false` (left child).
|
|
750
|
+
*/
|
|
751
|
+
static parseBitPrefix(prefix) {
|
|
752
|
+
return Array.from(prefix, (ch) => ch === '1');
|
|
753
|
+
}
|
|
707
754
|
// ---------------------------------------------------------------------------
|
|
708
755
|
// SMT Root Comparison
|
|
709
756
|
// ---------------------------------------------------------------------------
|
|
710
757
|
/**
|
|
711
|
-
*
|
|
758
|
+
* Access the local DWN's StateIndex directly, bypassing the `processMessage`
|
|
759
|
+
* pipeline. The sync engine runs in the same process as the local DWN, so
|
|
760
|
+
* there is no need for message signing, schema validation, or authentication
|
|
761
|
+
* when querying our own state.
|
|
762
|
+
*
|
|
763
|
+
* Returns `undefined` in remote mode (no in-process DWN). The local methods
|
|
764
|
+
* fall back to `processRequest` in that case, routing through RPC to the
|
|
765
|
+
* local DWN server.
|
|
766
|
+
*/
|
|
767
|
+
get stateIndex() {
|
|
768
|
+
if (this.agent.dwn.isRemoteMode) {
|
|
769
|
+
return undefined;
|
|
770
|
+
}
|
|
771
|
+
return this.agent.dwn.node.storage.stateIndex;
|
|
772
|
+
}
|
|
773
|
+
/**
|
|
774
|
+
* Get the SMT root hash from the local DWN.
|
|
775
|
+
*
|
|
776
|
+
* In local mode: queries the StateIndex directly (fast, no processMessage overhead).
|
|
777
|
+
* In remote mode: constructs a signed MessagesSync message and routes through RPC.
|
|
778
|
+
*
|
|
712
779
|
* Returns a hex-encoded root hash string.
|
|
713
780
|
*/
|
|
714
781
|
getLocalRoot(did, delegateDid, protocol) {
|
|
715
782
|
return __awaiter(this, void 0, void 0, function* () {
|
|
716
783
|
var _a;
|
|
784
|
+
const si = this.stateIndex;
|
|
785
|
+
if (si) {
|
|
786
|
+
const rootHash = protocol !== undefined
|
|
787
|
+
? yield si.getProtocolRoot(did, protocol)
|
|
788
|
+
: yield si.getRoot(did);
|
|
789
|
+
return hashToHex(rootHash);
|
|
790
|
+
}
|
|
791
|
+
// Remote mode fallback: go through processRequest → RPC.
|
|
717
792
|
const permissionGrantId = yield this.getSyncPermissionGrantId(did, delegateDid, protocol);
|
|
718
793
|
const response = yield this.agent.dwn.processRequest({
|
|
719
794
|
author: did,
|
|
@@ -833,9 +908,127 @@ export class SyncEngineLevel {
|
|
|
833
908
|
return { onlyLocal, onlyRemote };
|
|
834
909
|
});
|
|
835
910
|
}
|
|
911
|
+
// ---------------------------------------------------------------------------
|
|
912
|
+
// Batched Diff — single round-trip set reconciliation
|
|
913
|
+
// ---------------------------------------------------------------------------
|
|
914
|
+
/**
|
|
915
|
+
* Compute the diff between local and remote in a single HTTP round-trip.
|
|
916
|
+
*
|
|
917
|
+
* 1. Walk the local SMT directly (no processMessage) to collect subtree
|
|
918
|
+
* hashes at `MAX_DIFF_DEPTH`.
|
|
919
|
+
* 2. Send a single `MessagesSync action:'diff'` to the remote with all
|
|
920
|
+
* non-empty subtree hashes.
|
|
921
|
+
* 3. The remote compares and returns `onlyRemote` (with inline messages)
|
|
922
|
+
* and `onlyLocal` prefixes.
|
|
923
|
+
* 4. Enumerate local leaves for the `onlyLocal` prefixes directly.
|
|
924
|
+
*
|
|
925
|
+
* This replaces `walkTreeDiff()` which required one HTTP call per tree node.
|
|
926
|
+
*/
|
|
927
|
+
diffWithRemote(_a) {
|
|
928
|
+
return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol }) {
|
|
929
|
+
var _b, _c;
|
|
930
|
+
// Step 1: Collect local subtree hashes at BATCHED_DIFF_DEPTH directly from StateIndex.
|
|
931
|
+
const localHashes = yield this.collectLocalSubtreeHashes(did, protocol, BATCHED_DIFF_DEPTH);
|
|
932
|
+
// Step 2: Send a single 'diff' request to the remote with our hashes.
|
|
933
|
+
const permissionGrantId = yield this.getSyncPermissionGrantId(did, delegateDid, protocol);
|
|
934
|
+
const syncMessage = yield this.agent.dwn.processRequest({
|
|
935
|
+
store: false,
|
|
936
|
+
author: did,
|
|
937
|
+
target: did,
|
|
938
|
+
messageType: DwnInterface.MessagesSync,
|
|
939
|
+
granteeDid: delegateDid,
|
|
940
|
+
messageParams: {
|
|
941
|
+
action: 'diff',
|
|
942
|
+
protocol,
|
|
943
|
+
hashes: localHashes,
|
|
944
|
+
depth: BATCHED_DIFF_DEPTH,
|
|
945
|
+
permissionGrantId,
|
|
946
|
+
}
|
|
947
|
+
});
|
|
948
|
+
const reply = yield this.agent.rpc.sendDwnRequest({
|
|
949
|
+
dwnUrl,
|
|
950
|
+
targetDid: did,
|
|
951
|
+
message: syncMessage.message,
|
|
952
|
+
});
|
|
953
|
+
if (reply.status.code !== 200) {
|
|
954
|
+
throw new Error(`SyncEngineLevel: diff failed with ${reply.status.code}: ${reply.status.detail}`);
|
|
955
|
+
}
|
|
956
|
+
// Step 3: Enumerate local leaves for prefixes the remote reported as onlyLocal.
|
|
957
|
+
const permissionGrantIdForLeaves = yield this.getSyncPermissionGrantId(did, delegateDid, protocol);
|
|
958
|
+
const onlyLocalCids = [];
|
|
959
|
+
for (const prefix of (_b = reply.onlyLocal) !== null && _b !== void 0 ? _b : []) {
|
|
960
|
+
const leaves = yield this.getLocalLeaves(did, prefix, delegateDid, protocol, permissionGrantIdForLeaves);
|
|
961
|
+
onlyLocalCids.push(...leaves);
|
|
962
|
+
}
|
|
963
|
+
return {
|
|
964
|
+
onlyRemote: (_c = reply.onlyRemote) !== null && _c !== void 0 ? _c : [],
|
|
965
|
+
onlyLocal: onlyLocalCids,
|
|
966
|
+
};
|
|
967
|
+
});
|
|
968
|
+
}
|
|
969
|
+
/**
|
|
970
|
+
* Walk the local SMT to a given depth and collect non-empty subtree hashes.
|
|
971
|
+
* Returns a `{ prefix: hexHash }` map. Empty subtrees (matching the default
|
|
972
|
+
* hash) are omitted.
|
|
973
|
+
*
|
|
974
|
+
* Uses direct StateIndex access in local mode. In remote mode, falls back
|
|
975
|
+
* to `getLocalSubtreeHash` which routes through RPC.
|
|
976
|
+
*/
|
|
977
|
+
collectLocalSubtreeHashes(did, protocol, depth) {
|
|
978
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
979
|
+
const result = {};
|
|
980
|
+
const defaultHash = yield this.getDefaultHashHex(depth);
|
|
981
|
+
const si = this.stateIndex;
|
|
982
|
+
const walk = (prefix, currentDepth) => __awaiter(this, void 0, void 0, function* () {
|
|
983
|
+
let hexHash;
|
|
984
|
+
if (si) {
|
|
985
|
+
// Fast path: direct StateIndex access (local mode).
|
|
986
|
+
const bitPath = SyncEngineLevel.parseBitPrefix(prefix);
|
|
987
|
+
const hash = protocol !== undefined
|
|
988
|
+
? yield si.getProtocolSubtreeHash(did, protocol, bitPath)
|
|
989
|
+
: yield si.getSubtreeHash(did, bitPath);
|
|
990
|
+
hexHash = hashToHex(hash);
|
|
991
|
+
}
|
|
992
|
+
else {
|
|
993
|
+
// Remote mode fallback.
|
|
994
|
+
hexHash = yield this.getLocalSubtreeHash(did, prefix, undefined, protocol);
|
|
995
|
+
}
|
|
996
|
+
if (hexHash === defaultHash) {
|
|
997
|
+
// Empty subtree — omit from the map.
|
|
998
|
+
return;
|
|
999
|
+
}
|
|
1000
|
+
if (currentDepth >= depth) {
|
|
1001
|
+
result[prefix] = hexHash;
|
|
1002
|
+
return;
|
|
1003
|
+
}
|
|
1004
|
+
// Recurse into children.
|
|
1005
|
+
yield Promise.all([
|
|
1006
|
+
walk(prefix + '0', currentDepth + 1),
|
|
1007
|
+
walk(prefix + '1', currentDepth + 1),
|
|
1008
|
+
]);
|
|
1009
|
+
});
|
|
1010
|
+
yield walk('', 0);
|
|
1011
|
+
return result;
|
|
1012
|
+
});
|
|
1013
|
+
}
|
|
1014
|
+
/**
|
|
1015
|
+
* Get the subtree hash at a given bit prefix from the local DWN.
|
|
1016
|
+
*
|
|
1017
|
+
* In local mode: queries the StateIndex directly.
|
|
1018
|
+
* In remote mode: constructs a signed MessagesSync message and routes through RPC.
|
|
1019
|
+
*/
|
|
836
1020
|
getLocalSubtreeHash(did, prefix, delegateDid, protocol, permissionGrantId) {
|
|
837
1021
|
return __awaiter(this, void 0, void 0, function* () {
|
|
838
1022
|
var _a;
|
|
1023
|
+
const si = this.stateIndex;
|
|
1024
|
+
if (si) {
|
|
1025
|
+
const bitPath = SyncEngineLevel.parseBitPrefix(prefix);
|
|
1026
|
+
const hash = protocol !== undefined
|
|
1027
|
+
? yield si.getProtocolSubtreeHash(did, protocol, bitPath)
|
|
1028
|
+
: yield si.getSubtreeHash(did, bitPath);
|
|
1029
|
+
return hashToHex(hash);
|
|
1030
|
+
}
|
|
1031
|
+
// Remote mode fallback.
|
|
839
1032
|
const response = yield this.agent.dwn.processRequest({
|
|
840
1033
|
author: did,
|
|
841
1034
|
target: did,
|
|
@@ -876,9 +1069,23 @@ export class SyncEngineLevel {
|
|
|
876
1069
|
return (_a = reply.hash) !== null && _a !== void 0 ? _a : '';
|
|
877
1070
|
});
|
|
878
1071
|
}
|
|
1072
|
+
/**
|
|
1073
|
+
* Get all leaf messageCids under a given prefix from the local DWN.
|
|
1074
|
+
*
|
|
1075
|
+
* In local mode: queries the StateIndex directly.
|
|
1076
|
+
* In remote mode: constructs a signed MessagesSync message and routes through RPC.
|
|
1077
|
+
*/
|
|
879
1078
|
getLocalLeaves(did, prefix, delegateDid, protocol, permissionGrantId) {
|
|
880
1079
|
return __awaiter(this, void 0, void 0, function* () {
|
|
881
1080
|
var _a;
|
|
1081
|
+
const si = this.stateIndex;
|
|
1082
|
+
if (si) {
|
|
1083
|
+
const bitPath = SyncEngineLevel.parseBitPrefix(prefix);
|
|
1084
|
+
return protocol !== undefined
|
|
1085
|
+
? yield si.getProtocolLeaves(did, protocol, bitPath)
|
|
1086
|
+
: yield si.getLeaves(did, bitPath);
|
|
1087
|
+
}
|
|
1088
|
+
// Remote mode fallback.
|
|
882
1089
|
const response = yield this.agent.dwn.processRequest({
|
|
883
1090
|
author: did,
|
|
884
1091
|
target: did,
|
|
@@ -925,11 +1132,15 @@ export class SyncEngineLevel {
|
|
|
925
1132
|
/**
|
|
926
1133
|
* Fetches missing messages from the remote DWN and processes them locally
|
|
927
1134
|
* in dependency order (topological sort).
|
|
1135
|
+
*
|
|
1136
|
+
* When prefetched entries are provided (from the batched diff response),
|
|
1137
|
+
* they are processed directly without additional HTTP round-trips.
|
|
1138
|
+
* Only `messageCids` that were NOT prefetched are fetched individually.
|
|
928
1139
|
*/
|
|
929
1140
|
pullMessages(_a) {
|
|
930
|
-
return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol, messageCids }) {
|
|
1141
|
+
return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol, messageCids, prefetched }) {
|
|
931
1142
|
return pullMessages({
|
|
932
|
-
did, dwnUrl, delegateDid, protocol, messageCids,
|
|
1143
|
+
did, dwnUrl, delegateDid, protocol, messageCids, prefetched,
|
|
933
1144
|
agent: this.agent,
|
|
934
1145
|
permissionsApi: this._permissionsApi,
|
|
935
1146
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-engine-level.js","sourceRoot":"","sources":["../../src/sync-engine-level.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-engine-level.js","sourceRoot":"","sources":["../../src/sync-engine-level.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { DwnInterfaceName, DwnMethodName, Message } from '@enbox/dwn-sdk-js';
|
|
10
|
+
import { DwnInterfaceName, DwnMethodName, Encoder, Message } from '@enbox/dwn-sdk-js';
|
|
11
11
|
import { DwnInterface } from './types/dwn.js';
|
|
12
12
|
import { isRecordsWrite } from './utils.js';
|
|
13
13
|
import { topologicalSort } from './sync-topological-sort.js';
|
|
14
|
+
/** Maximum data size (in bytes) to buffer in memory for retry. Larger payloads are re-fetched. */
|
|
15
|
+
const MAX_BUFFER_SIZE = 1048576; // 1 MB
|
|
14
16
|
/**
|
|
15
17
|
* 202: message was successfully written to the remote DWN
|
|
16
18
|
* 204: an initial write message was written without any data
|
|
@@ -43,37 +45,82 @@ export function getMessageCid(message) {
|
|
|
43
45
|
* Fetches missing messages from the remote DWN and processes them on the local DWN
|
|
44
46
|
* in dependency order (topological sort).
|
|
45
47
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
48
|
+
* Small data payloads (≤ 1 MB) are buffered during the initial fetch so that
|
|
49
|
+
* retries can replay the data from memory instead of re-fetching from remote.
|
|
50
|
+
* Large payloads are re-fetched on retry since buffering them would consume
|
|
51
|
+
* too much memory.
|
|
50
52
|
*/
|
|
51
53
|
export function pullMessages(_a) {
|
|
52
|
-
return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi }) {
|
|
53
|
-
//
|
|
54
|
-
const
|
|
54
|
+
return __awaiter(this, arguments, void 0, function* ({ did, dwnUrl, delegateDid, protocol, messageCids, prefetched, agent, permissionsApi }) {
|
|
55
|
+
// Convert prefetched diff entries into SyncMessageEntry format.
|
|
56
|
+
const prefetchedEntries = [];
|
|
57
|
+
if (prefetched) {
|
|
58
|
+
for (const entry of prefetched) {
|
|
59
|
+
if (!entry.message) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const syncEntry = { message: entry.message };
|
|
63
|
+
if (entry.encodedData) {
|
|
64
|
+
// Convert base64url-encoded data to a ReadableStream.
|
|
65
|
+
const bytes = Encoder.base64UrlToBytes(entry.encodedData);
|
|
66
|
+
syncEntry.bufferedData = bytes;
|
|
67
|
+
syncEntry.dataStream = new ReadableStream({
|
|
68
|
+
start(controller) {
|
|
69
|
+
controller.enqueue(bytes);
|
|
70
|
+
controller.close();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
prefetchedEntries.push(syncEntry);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Step 1: Fetch remaining messages (not prefetched) from the remote.
|
|
78
|
+
const fetched = messageCids.length > 0
|
|
79
|
+
? yield fetchRemoteMessages({ did, dwnUrl, delegateDid, protocol, messageCids, agent, permissionsApi })
|
|
80
|
+
: [];
|
|
81
|
+
// Merge prefetched entries with remotely fetched ones.
|
|
82
|
+
const allFetched = [...prefetchedEntries, ...fetched];
|
|
55
83
|
// Step 2: Build dependency graph and topological sort.
|
|
56
|
-
const sorted = topologicalSort(
|
|
57
|
-
// Step 3:
|
|
58
|
-
|
|
59
|
-
//
|
|
60
|
-
// hasn't committed yet). Failed messages are re-fetched from the remote
|
|
61
|
-
// to obtain a fresh data stream, since ReadableStream is single-use.
|
|
84
|
+
const sorted = topologicalSort(allFetched);
|
|
85
|
+
// Step 3: Buffer small data streams so they can be replayed on retry.
|
|
86
|
+
yield bufferSmallStreams(sorted);
|
|
87
|
+
// Step 4: Process messages in dependency order with multi-pass retry.
|
|
62
88
|
const MAX_RETRY_PASSES = 3;
|
|
63
89
|
let pending = sorted;
|
|
64
90
|
for (let pass = 0; pass <= MAX_RETRY_PASSES && pending.length > 0; pass++) {
|
|
65
|
-
const
|
|
91
|
+
const failed = [];
|
|
66
92
|
for (const entry of pending) {
|
|
67
|
-
|
|
93
|
+
// Create a fresh ReadableStream from the buffer if available (stream is single-use).
|
|
94
|
+
const dataStream = entry.bufferedData
|
|
95
|
+
? new ReadableStream({ start(c) { c.enqueue(entry.bufferedData); c.close(); } })
|
|
96
|
+
: entry.dataStream;
|
|
97
|
+
const pullReply = yield agent.dwn.processRawMessage(did, entry.message, { dataStream });
|
|
68
98
|
if (!syncMessageReplyIsSuccessful(pullReply)) {
|
|
69
|
-
|
|
70
|
-
failedCids.push(cid);
|
|
99
|
+
failed.push(entry);
|
|
71
100
|
}
|
|
72
101
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
102
|
+
if (failed.length > 0) {
|
|
103
|
+
// Separate entries that have a buffer (can retry locally) from those
|
|
104
|
+
// that need a fresh fetch (large payloads whose stream was consumed).
|
|
105
|
+
const needsRefetch = [];
|
|
106
|
+
const canRetry = [];
|
|
107
|
+
for (const entry of failed) {
|
|
108
|
+
if (entry.bufferedData || !entry.dataStream) {
|
|
109
|
+
// Has a buffer or has no data — can retry without re-fetching.
|
|
110
|
+
canRetry.push(entry);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
// Large payload whose stream was consumed — must re-fetch.
|
|
114
|
+
const cid = yield getMessageCid(entry.message);
|
|
115
|
+
needsRefetch.push(cid);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Re-fetch only the large-payload messages that we couldn't buffer.
|
|
119
|
+
if (needsRefetch.length > 0) {
|
|
120
|
+
const reFetched = yield fetchRemoteMessages({ did, dwnUrl, delegateDid, protocol, messageCids: needsRefetch, agent, permissionsApi });
|
|
121
|
+
canRetry.push(...reFetched);
|
|
122
|
+
}
|
|
123
|
+
pending = topologicalSort(canRetry);
|
|
77
124
|
}
|
|
78
125
|
else {
|
|
79
126
|
pending = [];
|
|
@@ -81,6 +128,63 @@ export function pullMessages(_a) {
|
|
|
81
128
|
}
|
|
82
129
|
});
|
|
83
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Buffers small data streams into `Uint8Array` so they can be replayed on retry.
|
|
133
|
+
* Streams larger than `MAX_BUFFER_SIZE` are left as-is (will be re-fetched on retry).
|
|
134
|
+
*/
|
|
135
|
+
function bufferSmallStreams(entries) {
|
|
136
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
137
|
+
for (const entry of entries) {
|
|
138
|
+
if (!entry.dataStream) {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
// Read the stream into memory. If it exceeds the threshold, stop and
|
|
142
|
+
// leave the entry without a buffer (it will be re-fetched on retry).
|
|
143
|
+
const chunks = [];
|
|
144
|
+
let totalSize = 0;
|
|
145
|
+
let exceededThreshold = false;
|
|
146
|
+
const reader = entry.dataStream.getReader();
|
|
147
|
+
try {
|
|
148
|
+
for (;;) {
|
|
149
|
+
const { done, value } = yield reader.read();
|
|
150
|
+
if (done) {
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
totalSize += value.byteLength;
|
|
154
|
+
if (totalSize > MAX_BUFFER_SIZE) {
|
|
155
|
+
exceededThreshold = true;
|
|
156
|
+
break;
|
|
157
|
+
}
|
|
158
|
+
chunks.push(value);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
finally {
|
|
162
|
+
reader.releaseLock();
|
|
163
|
+
}
|
|
164
|
+
if (exceededThreshold) {
|
|
165
|
+
// Stream exceeded the buffer threshold. Leave dataStream consumed —
|
|
166
|
+
// the retry path will re-fetch from remote.
|
|
167
|
+
entry.dataStream = undefined;
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
// Combine chunks into a single Uint8Array buffer.
|
|
171
|
+
const buffer = new Uint8Array(totalSize);
|
|
172
|
+
let offset = 0;
|
|
173
|
+
for (const chunk of chunks) {
|
|
174
|
+
buffer.set(chunk, offset);
|
|
175
|
+
offset += chunk.byteLength;
|
|
176
|
+
}
|
|
177
|
+
entry.bufferedData = buffer;
|
|
178
|
+
// Create a fresh ReadableStream from the buffer for the first processing attempt.
|
|
179
|
+
entry.dataStream = new ReadableStream({
|
|
180
|
+
start(controller) {
|
|
181
|
+
controller.enqueue(buffer);
|
|
182
|
+
controller.close();
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
}
|
|
84
188
|
/**
|
|
85
189
|
* Fetches messages from a remote DWN by their CIDs using MessagesRead.
|
|
86
190
|
*/
|