@waku/sds 0.0.8-d637425.0 → 0.0.8

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.
Files changed (33) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/bundle/index.js +614 -25
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/index.d.ts +6 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/message_channel/events.d.ts +27 -3
  7. package/dist/message_channel/events.js +6 -0
  8. package/dist/message_channel/events.js.map +1 -1
  9. package/dist/message_channel/index.d.ts +1 -1
  10. package/dist/message_channel/message.d.ts +17 -13
  11. package/dist/message_channel/message.js +19 -11
  12. package/dist/message_channel/message.js.map +1 -1
  13. package/dist/message_channel/message_channel.d.ts +31 -3
  14. package/dist/message_channel/message_channel.js +99 -10
  15. package/dist/message_channel/message_channel.js.map +1 -1
  16. package/dist/message_channel/repair/buffers.d.ts +106 -0
  17. package/dist/message_channel/repair/buffers.js +206 -0
  18. package/dist/message_channel/repair/buffers.js.map +1 -0
  19. package/dist/message_channel/repair/repair.d.ts +92 -0
  20. package/dist/message_channel/repair/repair.js +209 -0
  21. package/dist/message_channel/repair/repair.js.map +1 -0
  22. package/dist/message_channel/repair/utils.d.ts +40 -0
  23. package/dist/message_channel/repair/utils.js +61 -0
  24. package/dist/message_channel/repair/utils.js.map +1 -0
  25. package/package.json +93 -1
  26. package/src/index.ts +7 -1
  27. package/src/message_channel/events.ts +28 -3
  28. package/src/message_channel/index.ts +1 -1
  29. package/src/message_channel/message.ts +24 -13
  30. package/src/message_channel/message_channel.ts +151 -17
  31. package/src/message_channel/repair/buffers.ts +277 -0
  32. package/src/message_channel/repair/repair.ts +331 -0
  33. package/src/message_channel/repair/utils.ts +80 -0
@@ -9,8 +9,9 @@ export class Message {
9
9
  lamportTimestamp;
10
10
  bloomFilter;
11
11
  content;
12
+ repairRequest;
12
13
  retrievalHint;
13
- constructor(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content,
14
+ constructor(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content, repairRequest = [],
14
15
  /**
15
16
  * Not encoded, set after it is sent, used to include in follow-up messages
16
17
  */
@@ -22,6 +23,7 @@ export class Message {
22
23
  this.lamportTimestamp = lamportTimestamp;
23
24
  this.bloomFilter = bloomFilter;
24
25
  this.content = content;
26
+ this.repairRequest = repairRequest;
25
27
  this.retrievalHint = retrievalHint;
26
28
  }
27
29
  encode() {
@@ -29,15 +31,15 @@ export class Message {
29
31
  }
30
32
  static decode(data) {
31
33
  try {
32
- const { messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content } = proto_sds_message.SdsMessage.decode(data);
34
+ const { messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content, repairRequest } = proto_sds_message.SdsMessage.decode(data);
33
35
  if (testContentMessage({ lamportTimestamp, content })) {
34
- return new ContentMessage(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content);
36
+ return new ContentMessage(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content, repairRequest);
35
37
  }
36
38
  if (testEphemeralMessage({ lamportTimestamp, content })) {
37
- return new EphemeralMessage(messageId, channelId, senderId, causalHistory, undefined, bloomFilter, content);
39
+ return new EphemeralMessage(messageId, channelId, senderId, causalHistory, undefined, bloomFilter, content, repairRequest);
38
40
  }
39
41
  if (testSyncMessage({ lamportTimestamp, content })) {
40
- return new SyncMessage(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, undefined);
42
+ return new SyncMessage(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, undefined, repairRequest);
41
43
  }
42
44
  log.error("message received was of unknown type", lamportTimestamp, content);
43
45
  }
@@ -55,13 +57,14 @@ export class SyncMessage extends Message {
55
57
  lamportTimestamp;
56
58
  bloomFilter;
57
59
  content;
60
+ repairRequest;
58
61
  retrievalHint;
59
- constructor(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content,
62
+ constructor(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content, repairRequest = [],
60
63
  /**
61
64
  * Not encoded, set after it is sent, used to include in follow-up messages
62
65
  */
63
66
  retrievalHint) {
64
- super(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content, retrievalHint);
67
+ super(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content, repairRequest, retrievalHint);
65
68
  this.messageId = messageId;
66
69
  this.channelId = channelId;
67
70
  this.senderId = senderId;
@@ -69,6 +72,7 @@ export class SyncMessage extends Message {
69
72
  this.lamportTimestamp = lamportTimestamp;
70
73
  this.bloomFilter = bloomFilter;
71
74
  this.content = content;
75
+ this.repairRequest = repairRequest;
72
76
  this.retrievalHint = retrievalHint;
73
77
  }
74
78
  }
@@ -88,8 +92,9 @@ export class EphemeralMessage extends Message {
88
92
  lamportTimestamp;
89
93
  bloomFilter;
90
94
  content;
95
+ repairRequest;
91
96
  retrievalHint;
92
- constructor(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content,
97
+ constructor(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content, repairRequest = [],
93
98
  /**
94
99
  * Not encoded, set after it is sent, used to include in follow-up messages
95
100
  */
@@ -97,7 +102,7 @@ export class EphemeralMessage extends Message {
97
102
  if (!content || !content.length) {
98
103
  throw Error("Ephemeral Message must have content");
99
104
  }
100
- super(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content, retrievalHint);
105
+ super(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content, repairRequest, retrievalHint);
101
106
  this.messageId = messageId;
102
107
  this.channelId = channelId;
103
108
  this.senderId = senderId;
@@ -105,6 +110,7 @@ export class EphemeralMessage extends Message {
105
110
  this.lamportTimestamp = lamportTimestamp;
106
111
  this.bloomFilter = bloomFilter;
107
112
  this.content = content;
113
+ this.repairRequest = repairRequest;
108
114
  this.retrievalHint = retrievalHint;
109
115
  }
110
116
  }
@@ -125,8 +131,9 @@ export class ContentMessage extends Message {
125
131
  lamportTimestamp;
126
132
  bloomFilter;
127
133
  content;
134
+ repairRequest;
128
135
  retrievalHint;
129
- constructor(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content,
136
+ constructor(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content, repairRequest = [],
130
137
  /**
131
138
  * Not encoded, set after it is sent, used to include in follow-up messages
132
139
  */
@@ -134,7 +141,7 @@ export class ContentMessage extends Message {
134
141
  if (!content.length) {
135
142
  throw Error("Content Message must have content");
136
143
  }
137
- super(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content, retrievalHint);
144
+ super(messageId, channelId, senderId, causalHistory, lamportTimestamp, bloomFilter, content, repairRequest, retrievalHint);
138
145
  this.messageId = messageId;
139
146
  this.channelId = channelId;
140
147
  this.senderId = senderId;
@@ -142,6 +149,7 @@ export class ContentMessage extends Message {
142
149
  this.lamportTimestamp = lamportTimestamp;
143
150
  this.bloomFilter = bloomFilter;
144
151
  this.content = content;
152
+ this.repairRequest = repairRequest;
145
153
  this.retrievalHint = retrievalHint;
146
154
  }
147
155
  // `valueOf` is used by comparison operands such as `<`
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/message_channel/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/message_channel/message.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { TypedEventEmitter } from "@libp2p/interface";
2
2
  import { MessageChannelEvents } from "./events.js";
3
- import { ChannelId, ContentMessage, HistoryEntry, Message, MessageId, SenderId, SyncMessage } from "./message.js";
3
+ import { ChannelId, ContentMessage, HistoryEntry, Message, MessageId, ParticipantId, SyncMessage } from "./message.js";
4
+ import { RepairConfig } from "./repair/repair.js";
4
5
  export declare const DEFAULT_BLOOM_FILTER_OPTIONS: {
5
6
  capacity: number;
6
7
  errorRate: number;
@@ -19,11 +20,20 @@ export interface MessageChannelOptions {
19
20
  * How many possible acks does it take to consider it a definitive ack.
20
21
  */
21
22
  possibleAcksThreshold?: number;
23
+ /**
24
+ * Whether to enable SDS-R repair protocol.
25
+ * @default true
26
+ */
27
+ enableRepair?: boolean;
28
+ /**
29
+ * SDS-R repair configuration. Only used if enableRepair is true.
30
+ */
31
+ repairConfig?: RepairConfig;
22
32
  }
23
33
  export type ILocalHistory = Pick<Array<ContentMessage>, "some" | "push" | "slice" | "find" | "length" | "findIndex">;
24
34
  export declare class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
25
35
  readonly channelId: ChannelId;
26
- readonly senderId: SenderId;
36
+ readonly senderId: ParticipantId;
27
37
  private lamportTimestamp;
28
38
  private filter;
29
39
  private outgoingBuffer;
@@ -34,9 +44,10 @@ export declare class MessageChannel extends TypedEventEmitter<MessageChannelEven
34
44
  private readonly causalHistorySize;
35
45
  private readonly possibleAcksThreshold;
36
46
  private readonly timeoutForLostMessagesMs?;
47
+ private readonly repairManager?;
37
48
  private tasks;
38
49
  private handlers;
39
- constructor(channelId: ChannelId, senderId: SenderId, options?: MessageChannelOptions, localHistory?: ILocalHistory);
50
+ constructor(channelId: ChannelId, senderId: ParticipantId, options?: MessageChannelOptions, localHistory?: ILocalHistory);
40
51
  static getMessageId(payload: Uint8Array): MessageId;
41
52
  /**
42
53
  * Processes all queued tasks sequentially to ensure proper message ordering.
@@ -136,6 +147,14 @@ export declare class MessageChannel extends TypedEventEmitter<MessageChannelEven
136
147
  unacknowledged: ContentMessage[];
137
148
  possiblyAcknowledged: ContentMessage[];
138
149
  };
150
+ /**
151
+ * Sweep repair incoming buffer and rebroadcast messages ready for repair.
152
+ * Per SDS-R spec: periodically check for repair responses that are due.
153
+ *
154
+ * @param callback - callback to rebroadcast the message
155
+ * @returns Promise that resolves when all ready repairs have been sent
156
+ */
157
+ sweepRepairIncomingBuffer(callback?: (message: Message) => Promise<boolean>): Promise<Message[]>;
139
158
  /**
140
159
  * Send a sync message to the SDS channel.
141
160
  *
@@ -152,6 +171,15 @@ export declare class MessageChannel extends TypedEventEmitter<MessageChannelEven
152
171
  private safeSendEvent;
153
172
  private _pushOutgoingMessage;
154
173
  private _pushOutgoingEphemeralMessage;
174
+ /**
175
+ * Check if a message is available (either in localHistory or incomingBuffer)
176
+ * This prevents treating messages as "missing" when they've already been received
177
+ * but are waiting in the incoming buffer for their dependencies.
178
+ *
179
+ * @param messageId - The ID of the message to check
180
+ * @private
181
+ */
182
+ private isMessageAvailable;
155
183
  /**
156
184
  * Return true if the message was "delivered"
157
185
  *
@@ -7,10 +7,15 @@ import { Command } from "./command_queue.js";
7
7
  import { MessageChannelEvent } from "./events.js";
8
8
  import { MemLocalHistory } from "./mem_local_history.js";
9
9
  import { ContentMessage, EphemeralMessage, isContentMessage, isEphemeralMessage, isSyncMessage, SyncMessage } from "./message.js";
10
+ import { RepairManager } from "./repair/repair.js";
10
11
  export const DEFAULT_BLOOM_FILTER_OPTIONS = {
11
12
  capacity: 10000,
12
13
  errorRate: 0.001
13
14
  };
15
+ /**
16
+ * Maximum number of repair requests to include in a single message
17
+ */
18
+ const MAX_REPAIR_REQUESTS_PER_MESSAGE = 3;
14
19
  const DEFAULT_CAUSAL_HISTORY_SIZE = 200;
15
20
  const DEFAULT_POSSIBLE_ACKS_THRESHOLD = 2;
16
21
  const log = new Logger("sds:message-channel");
@@ -27,6 +32,7 @@ export class MessageChannel extends TypedEventEmitter {
27
32
  causalHistorySize;
28
33
  possibleAcksThreshold;
29
34
  timeoutForLostMessagesMs;
35
+ repairManager;
30
36
  tasks = [];
31
37
  handlers = {
32
38
  [Command.Send]: async (params) => {
@@ -57,6 +63,12 @@ export class MessageChannel extends TypedEventEmitter {
57
63
  options.possibleAcksThreshold ?? DEFAULT_POSSIBLE_ACKS_THRESHOLD;
58
64
  this.timeReceived = new Map();
59
65
  this.timeoutForLostMessagesMs = options.timeoutForLostMessagesMs;
66
+ // Only construct RepairManager if repair is enabled (default: true)
67
+ if (options.enableRepair ?? true) {
68
+ this.repairManager = new RepairManager(senderId, options.repairConfig, (event, detail) => {
69
+ this.safeSendEvent(event, { detail });
70
+ });
71
+ }
60
72
  }
61
73
  static getMessageId(payload) {
62
74
  return bytesToHex(sha256(payload));
@@ -189,7 +201,7 @@ export class MessageChannel extends TypedEventEmitter {
189
201
  sweepIncomingBuffer() {
190
202
  const { buffer, missing } = this.incomingBuffer.reduce(({ buffer, missing }, message) => {
191
203
  log.info(this.senderId, "sweeping incoming buffer", message.messageId, message.causalHistory.map((ch) => ch.messageId));
192
- const missingDependencies = message.causalHistory.filter((messageHistoryEntry) => !this.localHistory.some(({ messageId }) => messageId === messageHistoryEntry.messageId));
204
+ const missingDependencies = message.causalHistory.filter((messageHistoryEntry) => !this.isMessageAvailable(messageHistoryEntry.messageId));
193
205
  if (missingDependencies.length === 0) {
194
206
  if (isContentMessage(message) && this.deliverMessage(message)) {
195
207
  this.safeSendEvent(MessageChannelEvent.InMessageDelivered, {
@@ -245,6 +257,34 @@ export class MessageChannel extends TypedEventEmitter {
245
257
  possiblyAcknowledged: new Array()
246
258
  });
247
259
  }
260
+ /**
261
+ * Sweep repair incoming buffer and rebroadcast messages ready for repair.
262
+ * Per SDS-R spec: periodically check for repair responses that are due.
263
+ *
264
+ * @param callback - callback to rebroadcast the message
265
+ * @returns Promise that resolves when all ready repairs have been sent
266
+ */
267
+ async sweepRepairIncomingBuffer(callback) {
268
+ const repairsToSend = this.repairManager?.sweepIncomingBuffer(this.localHistory) ?? [];
269
+ if (callback) {
270
+ for (const message of repairsToSend) {
271
+ try {
272
+ await callback(message);
273
+ log.info(this.senderId, "repair message rebroadcast", message.messageId);
274
+ // Emit RepairResponseSent event
275
+ this.safeSendEvent(MessageChannelEvent.RepairResponseSent, {
276
+ detail: {
277
+ messageId: message.messageId
278
+ }
279
+ });
280
+ }
281
+ catch (error) {
282
+ log.error("Failed to rebroadcast repair message:", error);
283
+ }
284
+ }
285
+ }
286
+ return repairsToSend;
287
+ }
248
288
  /**
249
289
  * Send a sync message to the SDS channel.
250
290
  *
@@ -257,15 +297,19 @@ export class MessageChannel extends TypedEventEmitter {
257
297
  */
258
298
  async pushOutgoingSyncMessage(callback) {
259
299
  this.lamportTimestamp = lamportTimestampIncrement(this.lamportTimestamp);
300
+ // Get repair requests to include in sync message (SDS-R)
301
+ const repairRequests = this.repairManager?.getRepairRequests(MAX_REPAIR_REQUESTS_PER_MESSAGE) ??
302
+ [];
260
303
  const message = new SyncMessage(
261
304
  // does not need to be secure randomness
262
305
  `sync-${Math.random().toString(36).substring(2)}`, this.channelId, this.senderId, this.localHistory
263
306
  .slice(-this.causalHistorySize)
264
- .map(({ messageId, retrievalHint }) => {
265
- return { messageId, retrievalHint };
266
- }), this.lamportTimestamp, this.filter.toBytes(), undefined);
267
- if (!message.causalHistory || message.causalHistory.length === 0) {
268
- log.info(this.senderId, "no causal history in sync message, aborting sending");
307
+ .map(({ messageId, retrievalHint, senderId }) => {
308
+ return { messageId, retrievalHint, senderId };
309
+ }), this.lamportTimestamp, this.filter.toBytes(), undefined, repairRequests);
310
+ if ((!message.causalHistory || message.causalHistory.length === 0) &&
311
+ repairRequests.length === 0) {
312
+ log.info(this.senderId, "no causal history and no repair requests in sync message, aborting sending");
269
313
  return false;
270
314
  }
271
315
  if (callback) {
@@ -275,6 +319,15 @@ export class MessageChannel extends TypedEventEmitter {
275
319
  this.safeSendEvent(MessageChannelEvent.OutSyncSent, {
276
320
  detail: message
277
321
  });
322
+ // Emit RepairRequestSent event if repair requests were included
323
+ if (repairRequests.length > 0) {
324
+ this.safeSendEvent(MessageChannelEvent.RepairRequestSent, {
325
+ detail: {
326
+ messageIds: repairRequests.map((r) => r.messageId),
327
+ carrierMessageId: message.messageId
328
+ }
329
+ });
330
+ }
278
331
  return true;
279
332
  }
280
333
  catch (error) {
@@ -322,15 +375,30 @@ export class MessageChannel extends TypedEventEmitter {
322
375
  detail: message
323
376
  });
324
377
  }
378
+ // SDS-R: Handle received message in repair manager
379
+ this.repairManager?.markMessageReceived(message.messageId);
380
+ // SDS-R: Process incoming repair requests
381
+ if (message.repairRequest && message.repairRequest.length > 0) {
382
+ // Emit RepairRequestReceived event
383
+ this.safeSendEvent(MessageChannelEvent.RepairRequestReceived, {
384
+ detail: {
385
+ messageIds: message.repairRequest.map((r) => r.messageId),
386
+ fromSenderId: message.senderId
387
+ }
388
+ });
389
+ this.repairManager?.processIncomingRepairRequests(message.repairRequest, this.localHistory);
390
+ }
325
391
  this.reviewAckStatus(message);
326
392
  if (isContentMessage(message)) {
327
393
  this.filter.insert(message.messageId);
328
394
  }
329
- const missingDependencies = message.causalHistory.filter((messageHistoryEntry) => !this.localHistory.some(({ messageId }) => messageId === messageHistoryEntry.messageId));
395
+ const missingDependencies = message.causalHistory.filter((messageHistoryEntry) => !this.isMessageAvailable(messageHistoryEntry.messageId));
330
396
  if (missingDependencies.length > 0) {
331
397
  this.incomingBuffer.push(message);
332
398
  this.timeReceived.set(message.messageId, Date.now());
333
399
  log.info(this.senderId, "new incoming message", message.messageId, "is missing dependencies", missingDependencies.map((ch) => ch.messageId));
400
+ // SDS-R: Track missing dependencies in repair manager
401
+ this.repairManager?.markDependenciesMissing(missingDependencies);
334
402
  this.safeSendEvent(MessageChannelEvent.InMessageMissing, {
335
403
  detail: Array.from(missingDependencies)
336
404
  });
@@ -376,11 +444,13 @@ export class MessageChannel extends TypedEventEmitter {
376
444
  // It's a new message
377
445
  if (!message) {
378
446
  log.info(this.senderId, "sending new message", messageId);
447
+ // Get repair requests to include in the message (SDS-R)
448
+ const repairRequests = this.repairManager?.getRepairRequests(MAX_REPAIR_REQUESTS_PER_MESSAGE) ?? [];
379
449
  message = new ContentMessage(messageId, this.channelId, this.senderId, this.localHistory
380
450
  .slice(-this.causalHistorySize)
381
- .map(({ messageId, retrievalHint }) => {
382
- return { messageId, retrievalHint };
383
- }), this.lamportTimestamp, this.filter.toBytes(), payload);
451
+ .map(({ messageId, retrievalHint, senderId }) => {
452
+ return { messageId, retrievalHint, senderId };
453
+ }), this.lamportTimestamp, this.filter.toBytes(), payload, repairRequests);
384
454
  this.outgoingBuffer.push(message);
385
455
  }
386
456
  else {
@@ -419,6 +489,25 @@ export class MessageChannel extends TypedEventEmitter {
419
489
  }
420
490
  }
421
491
  }
492
+ /**
493
+ * Check if a message is available (either in localHistory or incomingBuffer)
494
+ * This prevents treating messages as "missing" when they've already been received
495
+ * but are waiting in the incoming buffer for their dependencies.
496
+ *
497
+ * @param messageId - The ID of the message to check
498
+ * @private
499
+ */
500
+ isMessageAvailable(messageId) {
501
+ // Check if in local history
502
+ if (this.localHistory.some((m) => m.messageId === messageId)) {
503
+ return true;
504
+ }
505
+ // Check if in incoming buffer (already received, waiting for dependencies)
506
+ if (this.incomingBuffer.some((m) => m.messageId === messageId)) {
507
+ return true;
508
+ }
509
+ return false;
510
+ }
422
511
  /**
423
512
  * Return true if the message was "delivered"
424
513
  *
@@ -1 +1 @@
1
- {"version":3,"file":"message_channel.js","sourceRoot":"","sources":["../../src/message_channel/message_channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message_channel.js","sourceRoot":"","sources":["../../src/message_channel/message_channel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import type { HistoryEntry, MessageId } from "../message.js";
2
+ /**
3
+ * Entry in the outgoing repair buffer with request timing
4
+ */
5
+ interface OutgoingBufferEntry {
6
+ entry: HistoryEntry;
7
+ tReq: number;
8
+ requested: boolean;
9
+ }
10
+ /**
11
+ * Entry in the incoming repair buffer with response timing
12
+ */
13
+ interface IncomingBufferEntry {
14
+ entry: HistoryEntry;
15
+ tResp: number;
16
+ }
17
+ /**
18
+ * Buffer for outgoing repair requests (messages we need)
19
+ * Maintains a sorted array by T_req for efficient retrieval of eligible entries
20
+ */
21
+ export declare class OutgoingRepairBuffer {
22
+ private items;
23
+ private readonly maxSize;
24
+ constructor(maxSize?: number);
25
+ /**
26
+ * Add a missing message to the outgoing repair request buffer
27
+ * If message already exists, it is not updated (keeps original T_req)
28
+ * @returns true if the entry was added, false if it already existed
29
+ */
30
+ add(entry: HistoryEntry, tReq: number): boolean;
31
+ /**
32
+ * Remove a message from the buffer (e.g., when received)
33
+ */
34
+ remove(messageId: MessageId): void;
35
+ /**
36
+ * Get eligible repair requests (where T_req <= currentTime)
37
+ * Returns up to maxRequests entries from the front of the sorted array
38
+ * Marks returned entries as requested but keeps them in buffer until received
39
+ */
40
+ getEligible(currentTime?: number, maxRequests?: number): HistoryEntry[];
41
+ /**
42
+ * Check if a message is in the buffer
43
+ */
44
+ has(messageId: MessageId): boolean;
45
+ /**
46
+ * Get the current buffer size
47
+ */
48
+ get size(): number;
49
+ /**
50
+ * Clear all entries
51
+ */
52
+ clear(): void;
53
+ /**
54
+ * Get all entries (for testing/debugging)
55
+ */
56
+ getAll(): HistoryEntry[];
57
+ /**
58
+ * Get items array directly (for testing)
59
+ */
60
+ getItems(): OutgoingBufferEntry[];
61
+ }
62
+ /**
63
+ * Buffer for incoming repair requests (repairs we need to send)
64
+ * Maintains a sorted array by T_resp for efficient retrieval of ready entries
65
+ */
66
+ export declare class IncomingRepairBuffer {
67
+ private items;
68
+ private readonly maxSize;
69
+ constructor(maxSize?: number);
70
+ /**
71
+ * Add a repair request that we can fulfill
72
+ * If message already exists, it is ignored (not updated)
73
+ * @returns true if the entry was added, false if it already existed
74
+ */
75
+ add(entry: HistoryEntry, tResp: number): boolean;
76
+ /**
77
+ * Remove a message from the buffer
78
+ */
79
+ remove(messageId: MessageId): void;
80
+ /**
81
+ * Get repairs ready to be sent (where T_resp <= currentTime)
82
+ * Removes and returns ready entries
83
+ */
84
+ getReady(currentTime: number): HistoryEntry[];
85
+ /**
86
+ * Check if a message is in the buffer
87
+ */
88
+ has(messageId: MessageId): boolean;
89
+ /**
90
+ * Get the current buffer size
91
+ */
92
+ get size(): number;
93
+ /**
94
+ * Clear all entries
95
+ */
96
+ clear(): void;
97
+ /**
98
+ * Get all entries (for testing/debugging)
99
+ */
100
+ getAll(): HistoryEntry[];
101
+ /**
102
+ * Get items array directly (for testing)
103
+ */
104
+ getItems(): IncomingBufferEntry[];
105
+ }
106
+ export {};