@waku/sds 0.0.4-10590da.0 → 0.0.4-383e0b2.0
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/bundle/index.js +5366 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/{bloom.js → bloom_filter/bloom.js} +2 -2
- package/dist/bloom_filter/bloom.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/message_channel/command_queue.d.ts +29 -0
- package/dist/message_channel/command_queue.js +7 -0
- package/dist/message_channel/command_queue.js.map +1 -0
- package/dist/message_channel/events.d.ts +32 -0
- package/dist/message_channel/events.js +19 -0
- package/dist/message_channel/events.js.map +1 -0
- package/dist/message_channel/index.d.ts +3 -0
- package/dist/message_channel/index.js +4 -0
- package/dist/message_channel/index.js.map +1 -0
- package/dist/{sds.d.ts → message_channel/message_channel.d.ts} +13 -15
- package/dist/{sds.js → message_channel/message_channel.js} +125 -26
- package/dist/message_channel/message_channel.js.map +1 -0
- package/package.json +1 -1
- package/src/{bloom.ts → bloom_filter/bloom.ts} +2 -2
- package/src/index.ts +3 -1
- package/src/message_channel/command_queue.ts +34 -0
- package/src/message_channel/events.ts +41 -0
- package/src/message_channel/index.ts +3 -0
- package/src/{sds.ts → message_channel/message_channel.ts} +162 -41
- package/dist/bloom.js.map +0 -1
- package/dist/sds.js.map +0 -1
- /package/dist/{bloom.d.ts → bloom_filter/bloom.d.ts} +0 -0
@@ -1,20 +1,17 @@
|
|
1
1
|
import { TypedEventEmitter } from "@libp2p/interface";
|
2
2
|
import { sha256 } from "@noble/hashes/sha256";
|
3
3
|
import { bytesToHex } from "@noble/hashes/utils";
|
4
|
-
import { proto_sds_message } from "@waku/proto";
|
5
4
|
|
6
|
-
import { DefaultBloomFilter } from "
|
5
|
+
import { DefaultBloomFilter } from "../bloom_filter/bloom.js";
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
export type HistoryEntry = proto_sds_message.HistoryEntry;
|
17
|
-
export type ChannelId = string;
|
7
|
+
import { Command, Handlers, ParamsByAction, Task } from "./command_queue.js";
|
8
|
+
import {
|
9
|
+
ChannelId,
|
10
|
+
HistoryEntry,
|
11
|
+
Message,
|
12
|
+
MessageChannelEvent,
|
13
|
+
MessageChannelEvents
|
14
|
+
} from "./events.js";
|
18
15
|
|
19
16
|
export const DEFAULT_BLOOM_FILTER_OPTIONS = {
|
20
17
|
capacity: 10000,
|
@@ -28,7 +25,6 @@ interface MessageChannelOptions {
|
|
28
25
|
causalHistorySize?: number;
|
29
26
|
receivedMessageTimeoutEnabled?: boolean;
|
30
27
|
receivedMessageTimeout?: number;
|
31
|
-
deliveredMessageCallback?: (messageId: string) => void;
|
32
28
|
}
|
33
29
|
|
34
30
|
export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
@@ -38,13 +34,31 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
38
34
|
private acknowledgements: Map<string, number>;
|
39
35
|
private incomingBuffer: Message[];
|
40
36
|
private localHistory: { timestamp: number; historyEntry: HistoryEntry }[];
|
41
|
-
|
37
|
+
public channelId: ChannelId;
|
42
38
|
private causalHistorySize: number;
|
43
39
|
private acknowledgementCount: number;
|
44
40
|
private timeReceived: Map<string, number>;
|
45
41
|
private receivedMessageTimeoutEnabled: boolean;
|
46
42
|
private receivedMessageTimeout: number;
|
47
|
-
|
43
|
+
|
44
|
+
private tasks: Task[] = [];
|
45
|
+
private handlers: Handlers = {
|
46
|
+
[Command.Send]: async (
|
47
|
+
params: ParamsByAction[Command.Send]
|
48
|
+
): Promise<void> => {
|
49
|
+
await this._sendMessage(params.payload, params.callback);
|
50
|
+
},
|
51
|
+
[Command.Receive]: async (
|
52
|
+
params: ParamsByAction[Command.Receive]
|
53
|
+
): Promise<void> => {
|
54
|
+
this._receiveMessage(params.message);
|
55
|
+
},
|
56
|
+
[Command.SendEphemeral]: async (
|
57
|
+
params: ParamsByAction[Command.SendEphemeral]
|
58
|
+
): Promise<void> => {
|
59
|
+
await this._sendEphemeralMessage(params.payload, params.callback);
|
60
|
+
}
|
61
|
+
};
|
48
62
|
|
49
63
|
public constructor(
|
50
64
|
channelId: ChannelId,
|
@@ -66,7 +80,25 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
66
80
|
options.receivedMessageTimeoutEnabled ?? false;
|
67
81
|
this.receivedMessageTimeout =
|
68
82
|
options.receivedMessageTimeout ?? DEFAULT_RECEIVED_MESSAGE_TIMEOUT;
|
69
|
-
|
83
|
+
}
|
84
|
+
|
85
|
+
// Periodically called by the library consumer to process async operations
|
86
|
+
// in a sequential manner.
|
87
|
+
public async processTasks(): Promise<void> {
|
88
|
+
while (this.tasks.length > 0) {
|
89
|
+
const item = this.tasks.shift();
|
90
|
+
if (!item) {
|
91
|
+
continue;
|
92
|
+
}
|
93
|
+
|
94
|
+
// Use a generic helper function to ensure type safety
|
95
|
+
await this.executeTask(item);
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
private async executeTask<A extends Command>(item: Task<A>): Promise<void> {
|
100
|
+
const handler = this.handlers[item.command];
|
101
|
+
await handler(item.params as ParamsByAction[A]);
|
70
102
|
}
|
71
103
|
|
72
104
|
public static getMessageId(payload: Uint8Array): string {
|
@@ -95,6 +127,22 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
95
127
|
success: boolean;
|
96
128
|
retrievalHint?: Uint8Array;
|
97
129
|
}>
|
130
|
+
): Promise<void> {
|
131
|
+
this.tasks.push({
|
132
|
+
command: Command.Send,
|
133
|
+
params: {
|
134
|
+
payload,
|
135
|
+
callback
|
136
|
+
}
|
137
|
+
});
|
138
|
+
}
|
139
|
+
|
140
|
+
public async _sendMessage(
|
141
|
+
payload: Uint8Array,
|
142
|
+
callback?: (message: Message) => Promise<{
|
143
|
+
success: boolean;
|
144
|
+
retrievalHint?: Uint8Array;
|
145
|
+
}>
|
98
146
|
): Promise<void> {
|
99
147
|
this.lamportTimestamp++;
|
100
148
|
|
@@ -124,6 +172,10 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
124
172
|
retrievalHint
|
125
173
|
}
|
126
174
|
});
|
175
|
+
this.timeReceived.set(messageId, Date.now());
|
176
|
+
this.safeDispatchEvent(MessageChannelEvent.MessageSent, {
|
177
|
+
detail: message
|
178
|
+
});
|
127
179
|
}
|
128
180
|
}
|
129
181
|
}
|
@@ -141,10 +193,23 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
141
193
|
* @param payload - The payload to send.
|
142
194
|
* @param callback - A callback function that returns a boolean indicating whether the message was sent successfully.
|
143
195
|
*/
|
144
|
-
public sendEphemeralMessage(
|
196
|
+
public async sendEphemeralMessage(
|
197
|
+
payload: Uint8Array,
|
198
|
+
callback?: (message: Message) => Promise<boolean>
|
199
|
+
): Promise<void> {
|
200
|
+
this.tasks.push({
|
201
|
+
command: Command.SendEphemeral,
|
202
|
+
params: {
|
203
|
+
payload,
|
204
|
+
callback
|
205
|
+
}
|
206
|
+
});
|
207
|
+
}
|
208
|
+
|
209
|
+
public async _sendEphemeralMessage(
|
145
210
|
payload: Uint8Array,
|
146
|
-
callback?: (message: Message) => boolean
|
147
|
-
): void {
|
211
|
+
callback?: (message: Message) => Promise<boolean>
|
212
|
+
): Promise<void> {
|
148
213
|
const message: Message = {
|
149
214
|
messageId: MessageChannel.getMessageId(payload),
|
150
215
|
channelId: this.channelId,
|
@@ -155,9 +220,10 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
155
220
|
};
|
156
221
|
|
157
222
|
if (callback) {
|
158
|
-
callback(message);
|
223
|
+
await callback(message);
|
159
224
|
}
|
160
225
|
}
|
226
|
+
|
161
227
|
/**
|
162
228
|
* Process a received SDS message for this channel.
|
163
229
|
*
|
@@ -172,12 +238,40 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
172
238
|
*
|
173
239
|
* @param message - The received SDS message.
|
174
240
|
*/
|
241
|
+
|
175
242
|
public receiveMessage(message: Message): void {
|
243
|
+
this.tasks.push({
|
244
|
+
command: Command.Receive,
|
245
|
+
params: {
|
246
|
+
message
|
247
|
+
}
|
248
|
+
});
|
249
|
+
}
|
250
|
+
|
251
|
+
public _receiveMessage(message: Message): void {
|
252
|
+
if (
|
253
|
+
message.content &&
|
254
|
+
message.content.length > 0 &&
|
255
|
+
this.timeReceived.has(message.messageId)
|
256
|
+
) {
|
257
|
+
// Received a duplicate message
|
258
|
+
return;
|
259
|
+
}
|
260
|
+
|
176
261
|
if (!message.lamportTimestamp) {
|
177
262
|
// Messages with no timestamp are ephemeral messages and should be delivered immediately
|
178
263
|
this.deliverMessage(message);
|
179
264
|
return;
|
180
265
|
}
|
266
|
+
if (message.content?.length === 0) {
|
267
|
+
this.safeDispatchEvent(MessageChannelEvent.SyncReceived, {
|
268
|
+
detail: message
|
269
|
+
});
|
270
|
+
} else {
|
271
|
+
this.safeDispatchEvent(MessageChannelEvent.MessageReceived, {
|
272
|
+
detail: message
|
273
|
+
});
|
274
|
+
}
|
181
275
|
// review ack status
|
182
276
|
this.reviewAckStatus(message);
|
183
277
|
// add to bloom filter (skip for messages with empty content)
|
@@ -196,14 +290,22 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
196
290
|
this.timeReceived.set(message.messageId, Date.now());
|
197
291
|
} else {
|
198
292
|
this.deliverMessage(message);
|
293
|
+
this.safeDispatchEvent(MessageChannelEvent.MessageDelivered, {
|
294
|
+
detail: {
|
295
|
+
messageId: message.messageId,
|
296
|
+
sentOrReceived: "received"
|
297
|
+
}
|
298
|
+
});
|
199
299
|
}
|
200
300
|
}
|
201
301
|
|
202
302
|
// https://rfc.vac.dev/vac/raw/sds/#periodic-incoming-buffer-sweep
|
303
|
+
// Note that even though this function has side effects, it is not async
|
304
|
+
// and does not need to be called through the queue.
|
203
305
|
public sweepIncomingBuffer(): HistoryEntry[] {
|
204
306
|
const { buffer, missing } = this.incomingBuffer.reduce<{
|
205
307
|
buffer: Message[];
|
206
|
-
missing: HistoryEntry
|
308
|
+
missing: Set<HistoryEntry>;
|
207
309
|
}>(
|
208
310
|
({ buffer, missing }, message) => {
|
209
311
|
// Check each message for missing dependencies
|
@@ -218,6 +320,12 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
218
320
|
// Any message with no missing dependencies is delivered
|
219
321
|
// and removed from the buffer (implicitly by not adding it to the new incoming buffer)
|
220
322
|
this.deliverMessage(message);
|
323
|
+
this.safeDispatchEvent(MessageChannelEvent.MessageDelivered, {
|
324
|
+
detail: {
|
325
|
+
messageId: message.messageId,
|
326
|
+
sentOrReceived: "received"
|
327
|
+
}
|
328
|
+
});
|
221
329
|
return { buffer, missing };
|
222
330
|
}
|
223
331
|
|
@@ -234,16 +342,24 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
234
342
|
}
|
235
343
|
// Any message with missing dependencies stays in the buffer
|
236
344
|
// and the missing message IDs are returned for processing.
|
345
|
+
missingDependencies.forEach((dependency) => {
|
346
|
+
missing.add(dependency);
|
347
|
+
});
|
237
348
|
return {
|
238
349
|
buffer: buffer.concat(message),
|
239
|
-
missing
|
350
|
+
missing
|
240
351
|
};
|
241
352
|
},
|
242
|
-
{ buffer: new Array<Message>(), missing: new
|
353
|
+
{ buffer: new Array<Message>(), missing: new Set<HistoryEntry>() }
|
243
354
|
);
|
244
355
|
// Update the incoming buffer to only include messages with no missing dependencies
|
245
356
|
this.incomingBuffer = buffer;
|
246
|
-
|
357
|
+
|
358
|
+
this.safeDispatchEvent(MessageChannelEvent.MissedMessages, {
|
359
|
+
detail: Array.from(missing)
|
360
|
+
});
|
361
|
+
|
362
|
+
return Array.from(missing);
|
247
363
|
}
|
248
364
|
|
249
365
|
// https://rfc.vac.dev/vac/raw/sds/#periodic-outgoing-buffer-sweep
|
@@ -285,7 +401,7 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
285
401
|
*
|
286
402
|
* @param callback - A callback function that returns a boolean indicating whether the message was sent successfully.
|
287
403
|
*/
|
288
|
-
public sendSyncMessage(
|
404
|
+
public async sendSyncMessage(
|
289
405
|
callback?: (message: Message) => Promise<boolean>
|
290
406
|
): Promise<boolean> {
|
291
407
|
this.lamportTimestamp++;
|
@@ -304,15 +420,17 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
304
420
|
};
|
305
421
|
|
306
422
|
if (callback) {
|
307
|
-
|
423
|
+
await callback(message);
|
424
|
+
this.safeDispatchEvent(MessageChannelEvent.SyncSent, {
|
425
|
+
detail: message
|
426
|
+
});
|
427
|
+
return true;
|
308
428
|
}
|
309
|
-
return
|
429
|
+
return false;
|
310
430
|
}
|
311
431
|
|
312
432
|
// See https://rfc.vac.dev/vac/raw/sds/#deliver-message
|
313
433
|
private deliverMessage(message: Message, retrievalHint?: Uint8Array): void {
|
314
|
-
this.notifyDeliveredMessage(message.messageId);
|
315
|
-
|
316
434
|
const messageLamportTimestamp = message.lamportTimestamp ?? 0;
|
317
435
|
if (messageLamportTimestamp > this.lamportTimestamp) {
|
318
436
|
this.lamportTimestamp = messageLamportTimestamp;
|
@@ -355,7 +473,15 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
355
473
|
// the participant MUST mark all messages in the received causal_history as acknowledged.
|
356
474
|
receivedMessage.causalHistory.forEach(({ messageId }) => {
|
357
475
|
this.outgoingBuffer = this.outgoingBuffer.filter(
|
358
|
-
({ messageId: outgoingMessageId }) =>
|
476
|
+
({ messageId: outgoingMessageId }) => {
|
477
|
+
if (outgoingMessageId !== messageId) {
|
478
|
+
return true;
|
479
|
+
}
|
480
|
+
this.safeDispatchEvent(MessageChannelEvent.MessageAcknowledged, {
|
481
|
+
detail: messageId
|
482
|
+
});
|
483
|
+
return false;
|
484
|
+
}
|
359
485
|
);
|
360
486
|
this.acknowledgements.delete(messageId);
|
361
487
|
if (!this.filter.lookup(messageId)) {
|
@@ -380,6 +506,12 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
380
506
|
const count = (this.acknowledgements.get(message.messageId) ?? 0) + 1;
|
381
507
|
if (count < this.acknowledgementCount) {
|
382
508
|
this.acknowledgements.set(message.messageId, count);
|
509
|
+
this.safeDispatchEvent(MessageChannelEvent.PartialAcknowledgement, {
|
510
|
+
detail: {
|
511
|
+
messageId: message.messageId,
|
512
|
+
count
|
513
|
+
}
|
514
|
+
});
|
383
515
|
return true;
|
384
516
|
}
|
385
517
|
this.acknowledgements.delete(message.messageId);
|
@@ -391,15 +523,4 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
|
|
391
523
|
private getAcknowledgementCount(): number {
|
392
524
|
return 2;
|
393
525
|
}
|
394
|
-
|
395
|
-
private notifyDeliveredMessage(messageId: string): void {
|
396
|
-
if (this.deliveredMessageCallback) {
|
397
|
-
this.deliveredMessageCallback(messageId);
|
398
|
-
}
|
399
|
-
this.dispatchEvent(
|
400
|
-
new CustomEvent(MessageChannelEvent.MessageDelivered, {
|
401
|
-
detail: messageId
|
402
|
-
})
|
403
|
-
);
|
404
|
-
}
|
405
526
|
}
|
package/dist/bloom.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"bloom.js","sourceRoot":"","sources":["../src/bloom.ts"],"names":[],"mappings":"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"}
|
package/dist/sds.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"sds.js","sourceRoot":"","sources":["../src/sds.ts"],"names":[],"mappings":"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"}
|
File without changes
|