@brightchain/brightchain-api-lib 0.13.0 → 0.14.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/package.json +2 -2
- package/src/lib/availability/configValidation.d.ts.map +1 -1
- package/src/lib/availability/configValidation.js +20 -0
- package/src/lib/availability/configValidation.js.map +1 -1
- package/src/lib/availability/gossipService.d.ts +150 -7
- package/src/lib/availability/gossipService.d.ts.map +1 -1
- package/src/lib/availability/gossipService.js +297 -17
- package/src/lib/availability/gossipService.js.map +1 -1
- package/src/lib/interfaces/websocketMessages.d.ts +30 -1
- package/src/lib/interfaces/websocketMessages.d.ts.map +1 -1
- package/src/lib/services/index.d.ts +1 -0
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +1 -0
- package/src/lib/services/index.js.map +1 -1
- package/src/lib/services/messagePassingService.d.ts +95 -5
- package/src/lib/services/messagePassingService.d.ts.map +1 -1
- package/src/lib/services/messagePassingService.js +187 -28
- package/src/lib/services/messagePassingService.js.map +1 -1
- package/src/lib/services/webSocketMessageServer.d.ts +18 -23
- package/src/lib/services/webSocketMessageServer.d.ts.map +1 -1
- package/src/lib/services/webSocketMessageServer.js +30 -46
- package/src/lib/services/webSocketMessageServer.js.map +1 -1
- package/src/lib/services/webSocketPeerProvider.d.ts +49 -0
- package/src/lib/services/webSocketPeerProvider.d.ts.map +1 -0
- package/src/lib/services/webSocketPeerProvider.js +133 -0
- package/src/lib/services/webSocketPeerProvider.js.map +1 -0
- package/src/lib/services/websocketHandler.d.ts +11 -8
- package/src/lib/services/websocketHandler.d.ts.map +1 -1
- package/src/lib/services/websocketHandler.js +33 -40
- package/src/lib/services/websocketHandler.js.map +1 -1
- package/src/lib/stores/diskMessageMetadataStore.d.ts +2 -2
- package/src/lib/stores/diskMessageMetadataStore.d.ts.map +1 -1
- package/src/lib/stores/diskMessageMetadataStore.js +1 -1
- package/src/lib/stores/diskMessageMetadataStore.js.map +1 -1
|
@@ -9,8 +9,22 @@
|
|
|
9
9
|
* @see Requirements 6.1, 6.2, 6.3, 6.4, 6.5, 6.6
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.GossipService = void 0;
|
|
12
|
+
exports.GossipService = exports.InvalidGossipConfigError = void 0;
|
|
13
|
+
const brightchain_lib_1 = require("@brightchain/brightchain-lib");
|
|
13
14
|
// Note: DEFAULT_GOSSIP_CONFIG should be imported directly from @brightchain/brightchain-lib by consumers
|
|
15
|
+
/**
|
|
16
|
+
* Error thrown when gossip configuration is invalid.
|
|
17
|
+
* Non-positive fanout or TTL values will trigger this error at service initialization.
|
|
18
|
+
*
|
|
19
|
+
* @see Requirements 10.3, 10.4
|
|
20
|
+
*/
|
|
21
|
+
class InvalidGossipConfigError extends Error {
|
|
22
|
+
constructor(message) {
|
|
23
|
+
super(message);
|
|
24
|
+
this.name = 'InvalidGossipConfigError';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.InvalidGossipConfigError = InvalidGossipConfigError;
|
|
14
28
|
/**
|
|
15
29
|
* Default gossip configuration values (local copy for use in this module).
|
|
16
30
|
*/
|
|
@@ -19,6 +33,10 @@ const defaultGossipConfig = {
|
|
|
19
33
|
defaultTtl: 3,
|
|
20
34
|
batchIntervalMs: 1000,
|
|
21
35
|
maxBatchSize: 100,
|
|
36
|
+
messagePriority: {
|
|
37
|
+
normal: { fanout: 5, ttl: 5 },
|
|
38
|
+
high: { fanout: 7, ttl: 7 },
|
|
39
|
+
},
|
|
22
40
|
};
|
|
23
41
|
/**
|
|
24
42
|
* Gossip Service Implementation
|
|
@@ -34,18 +52,40 @@ class GossipService {
|
|
|
34
52
|
*
|
|
35
53
|
* @param peerProvider - Provider for peer management operations
|
|
36
54
|
* @param config - Gossip configuration (uses defaults if not provided)
|
|
55
|
+
* @param localUserIds - Set of local user IDs on this node (defaults to empty set)
|
|
56
|
+
* @param eciesService - Optional ECIES service for encrypting sensitive batches
|
|
57
|
+
* @param localPrivateKey - Optional local node private key (Buffer) for identifying the sender
|
|
58
|
+
* @throws {InvalidGossipConfigError} If configuration contains non-positive fanout or TTL values
|
|
59
|
+
* @see Requirements 10.3, 10.4
|
|
37
60
|
*/
|
|
38
|
-
constructor(peerProvider, config = defaultGossipConfig) {
|
|
61
|
+
constructor(peerProvider, config = defaultGossipConfig, localUserIds, eciesService, localPrivateKey) {
|
|
39
62
|
this.peerProvider = peerProvider;
|
|
40
63
|
this.config = config;
|
|
64
|
+
this.eciesService = eciesService;
|
|
65
|
+
this.localPrivateKey = localPrivateKey;
|
|
41
66
|
/**
|
|
42
67
|
* Pending announcements waiting to be batched and sent.
|
|
43
68
|
*/
|
|
44
69
|
this.pendingAnnouncements = [];
|
|
45
70
|
/**
|
|
46
|
-
* Registered announcement handlers.
|
|
71
|
+
* Registered announcement handlers (for non-message, non-ack announcements).
|
|
47
72
|
*/
|
|
48
73
|
this.handlers = new Set();
|
|
74
|
+
/**
|
|
75
|
+
* Registered message delivery handlers.
|
|
76
|
+
* Called when a BlockAnnouncement with messageDelivery metadata is received
|
|
77
|
+
* and recipientIds match local users.
|
|
78
|
+
*
|
|
79
|
+
* @see Requirements 3.4, 3.5
|
|
80
|
+
*/
|
|
81
|
+
this.messageDeliveryHandlers = new Set();
|
|
82
|
+
/**
|
|
83
|
+
* Registered delivery ack handlers.
|
|
84
|
+
* Called when a BlockAnnouncement of type 'ack' is received.
|
|
85
|
+
*
|
|
86
|
+
* @see Requirements 4.4
|
|
87
|
+
*/
|
|
88
|
+
this.deliveryAckHandlers = new Set();
|
|
49
89
|
/**
|
|
50
90
|
* Batch timer handle.
|
|
51
91
|
*/
|
|
@@ -54,6 +94,10 @@ class GossipService {
|
|
|
54
94
|
* Whether the service is running.
|
|
55
95
|
*/
|
|
56
96
|
this.running = false;
|
|
97
|
+
this.localUserIds = localUserIds ?? new Set();
|
|
98
|
+
if (!(0, brightchain_lib_1.validateGossipConfig)(config)) {
|
|
99
|
+
throw new InvalidGossipConfigError('Invalid gossip configuration: all fanout and TTL values must be positive integers');
|
|
100
|
+
}
|
|
57
101
|
}
|
|
58
102
|
/**
|
|
59
103
|
* Announce a new block to the network.
|
|
@@ -89,13 +133,76 @@ class GossipService {
|
|
|
89
133
|
}
|
|
90
134
|
/**
|
|
91
135
|
* Handle an incoming block announcement from a peer.
|
|
92
|
-
*
|
|
136
|
+
*
|
|
137
|
+
* Dispatches announcements based on their type and metadata:
|
|
138
|
+
* - 'ack' type: dispatches to delivery ack handlers only (Req 4.4)
|
|
139
|
+
* - 'add' with messageDelivery and matching local recipients: triggers message delivery
|
|
140
|
+
* handlers and auto-sends ack if ackRequired (Req 3.4, 3.5)
|
|
141
|
+
* - 'add' with messageDelivery but no matching local recipients: forwards normally (Req 3.6)
|
|
142
|
+
* - Plain 'add'/'remove' without messageDelivery: notifies general handlers and forwards (backward compat)
|
|
93
143
|
*
|
|
94
144
|
* @param announcement - The received announcement
|
|
95
|
-
* @see Requirements
|
|
145
|
+
* @see Requirements 3.4, 3.5, 3.6, 4.4
|
|
96
146
|
*/
|
|
97
147
|
async handleAnnouncement(announcement) {
|
|
98
|
-
//
|
|
148
|
+
// Case 1: Ack announcements — dispatch to delivery ack handlers only
|
|
149
|
+
if (announcement.type === 'ack') {
|
|
150
|
+
for (const handler of this.deliveryAckHandlers) {
|
|
151
|
+
try {
|
|
152
|
+
handler(announcement);
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
// Ignore handler errors to prevent one handler from affecting others
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Forward ack with decremented TTL
|
|
159
|
+
if (announcement.ttl > 0) {
|
|
160
|
+
const forwardedAnnouncement = {
|
|
161
|
+
...announcement,
|
|
162
|
+
ttl: announcement.ttl - 1,
|
|
163
|
+
};
|
|
164
|
+
this.queueAnnouncement(forwardedAnnouncement);
|
|
165
|
+
}
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
// Case 2: Message delivery announcements
|
|
169
|
+
if (announcement.messageDelivery) {
|
|
170
|
+
const matchingLocalRecipients = announcement.messageDelivery.recipientIds.filter((id) => this.localUserIds.has(id));
|
|
171
|
+
if (matchingLocalRecipients.length > 0) {
|
|
172
|
+
// Req 3.4: recipientIds match local users — trigger message delivery handlers
|
|
173
|
+
for (const handler of this.messageDeliveryHandlers) {
|
|
174
|
+
try {
|
|
175
|
+
handler(announcement);
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
// Ignore handler errors to prevent one handler from affecting others
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// Req 3.5: If ackRequired, automatically send delivery ack for each local recipient
|
|
182
|
+
if (announcement.messageDelivery.ackRequired) {
|
|
183
|
+
for (const recipientId of matchingLocalRecipients) {
|
|
184
|
+
await this.sendDeliveryAck({
|
|
185
|
+
messageId: announcement.messageDelivery.messageId,
|
|
186
|
+
recipientId,
|
|
187
|
+
status: 'delivered',
|
|
188
|
+
originalSenderNode: announcement.nodeId,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// Do NOT forward — this node is a recipient
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
// Req 3.6: recipientIds don't match any local users — forward normally
|
|
196
|
+
if (announcement.ttl > 0) {
|
|
197
|
+
const forwardedAnnouncement = {
|
|
198
|
+
...announcement,
|
|
199
|
+
ttl: announcement.ttl - 1,
|
|
200
|
+
};
|
|
201
|
+
this.queueAnnouncement(forwardedAnnouncement);
|
|
202
|
+
}
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
// Case 3: Plain block announcements (no messageDelivery, not ack) — backward compatible
|
|
99
206
|
for (const handler of this.handlers) {
|
|
100
207
|
try {
|
|
101
208
|
handler(announcement);
|
|
@@ -141,8 +248,13 @@ class GossipService {
|
|
|
141
248
|
}
|
|
142
249
|
/**
|
|
143
250
|
* Immediately flush all pending announcements.
|
|
251
|
+
* Groups announcements by their required fanout (based on message priority)
|
|
252
|
+
* and sends each group to the appropriate number of peers.
|
|
144
253
|
*
|
|
145
|
-
*
|
|
254
|
+
* - Announcements with messageDelivery use priority-based fanout (Req 3.1, 3.2)
|
|
255
|
+
* - Announcements without messageDelivery use default fanout (Req 3.3)
|
|
256
|
+
*
|
|
257
|
+
* @see Requirements 3.1, 3.2, 3.3, 6.6
|
|
146
258
|
*/
|
|
147
259
|
async flushAnnouncements() {
|
|
148
260
|
if (this.pendingAnnouncements.length === 0) {
|
|
@@ -155,19 +267,40 @@ class GossipService {
|
|
|
155
267
|
this.pendingAnnouncements = [];
|
|
156
268
|
return;
|
|
157
269
|
}
|
|
158
|
-
//
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
|
|
270
|
+
// Group announcements by their required fanout
|
|
271
|
+
const fanoutGroups = new Map();
|
|
272
|
+
for (const announcement of this.pendingAnnouncements) {
|
|
273
|
+
let fanout;
|
|
274
|
+
if (announcement.messageDelivery) {
|
|
275
|
+
// Use priority-based fanout for message announcements
|
|
276
|
+
const priorityConfig = this.config.messagePriority[announcement.messageDelivery.priority];
|
|
277
|
+
fanout = priorityConfig.fanout;
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
// Use default fanout for non-message announcements (Req 3.3)
|
|
281
|
+
fanout = this.config.fanout;
|
|
282
|
+
}
|
|
283
|
+
const group = fanoutGroups.get(fanout);
|
|
284
|
+
if (group) {
|
|
285
|
+
group.push(announcement);
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
fanoutGroups.set(fanout, [announcement]);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
162
291
|
// Clear pending before sending to avoid duplicates on retry
|
|
163
292
|
this.pendingAnnouncements = [];
|
|
164
|
-
// Send
|
|
293
|
+
// Send each fanout group to the appropriate number of peers
|
|
165
294
|
const sendPromises = [];
|
|
166
|
-
for (const
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
295
|
+
for (const [fanout, announcements] of fanoutGroups) {
|
|
296
|
+
const selectedPeers = this.selectRandomPeers(connectedPeers, fanout);
|
|
297
|
+
const batches = this.splitIntoBatches(announcements, this.config.maxBatchSize);
|
|
298
|
+
for (const peerId of selectedPeers) {
|
|
299
|
+
for (const batch of batches) {
|
|
300
|
+
sendPromises.push(this.sendBatchToPeer(peerId, batch).catch(() => {
|
|
301
|
+
// Ignore send errors - best effort delivery
|
|
302
|
+
}));
|
|
303
|
+
}
|
|
171
304
|
}
|
|
172
305
|
}
|
|
173
306
|
await Promise.all(sendPromises);
|
|
@@ -258,12 +391,159 @@ class GossipService {
|
|
|
258
391
|
}
|
|
259
392
|
return batches;
|
|
260
393
|
}
|
|
394
|
+
/**
|
|
395
|
+
* Check if a batch contains sensitive metadata (messageDelivery or deliveryAck).
|
|
396
|
+
*
|
|
397
|
+
* @param announcements - The announcements to check
|
|
398
|
+
* @returns true if any announcement has messageDelivery or deliveryAck
|
|
399
|
+
* @see Requirements 4.1, 4.2
|
|
400
|
+
*/
|
|
401
|
+
batchContainsSensitiveMetadata(announcements) {
|
|
402
|
+
return announcements.some((a) => a.messageDelivery !== undefined || a.deliveryAck !== undefined);
|
|
403
|
+
}
|
|
404
|
+
/**
|
|
405
|
+
* Encrypt a batch of announcements for a specific peer using ECIES.
|
|
406
|
+
* Serializes announcements to JSON, encrypts with the peer's public key,
|
|
407
|
+
* and returns a base64-encoded ciphertext string.
|
|
408
|
+
*
|
|
409
|
+
* @param announcements - The announcements to encrypt
|
|
410
|
+
* @param peerPublicKey - The peer's ECIES public key
|
|
411
|
+
* @returns Base64-encoded ECIES ciphertext
|
|
412
|
+
* @see Requirements 4.1, 4.3
|
|
413
|
+
*/
|
|
414
|
+
async encryptBatchForPeer(announcements, peerPublicKey) {
|
|
415
|
+
if (!this.eciesService) {
|
|
416
|
+
throw new Error('ECIESService is required for encryption');
|
|
417
|
+
}
|
|
418
|
+
const json = JSON.stringify(announcements.map((a) => ({
|
|
419
|
+
type: a.type,
|
|
420
|
+
blockId: a.blockId,
|
|
421
|
+
nodeId: a.nodeId,
|
|
422
|
+
ttl: a.ttl,
|
|
423
|
+
...(a.messageDelivery ? { messageDelivery: a.messageDelivery } : {}),
|
|
424
|
+
...(a.deliveryAck ? { deliveryAck: a.deliveryAck } : {}),
|
|
425
|
+
})));
|
|
426
|
+
const plaintext = Buffer.from(json, 'utf-8');
|
|
427
|
+
const ciphertext = await this.eciesService.encryptWithLength(peerPublicKey, plaintext);
|
|
428
|
+
return Buffer.from(ciphertext).toString('base64');
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Send a batch to a peer, encrypting if the batch is sensitive and the peer has a public key.
|
|
432
|
+
*
|
|
433
|
+
* - Sensitive batch + peer key available → encrypt and send with encryptedPayload
|
|
434
|
+
* - Sensitive batch + no peer key → send plaintext, log warning (Req 6.1, 6.2)
|
|
435
|
+
* - Non-sensitive batch → send plaintext
|
|
436
|
+
*
|
|
437
|
+
* @param peerId - The peer to send to
|
|
438
|
+
* @param batch - The announcements to send
|
|
439
|
+
* @see Requirements 4.1, 4.2, 6.1, 6.2
|
|
440
|
+
*/
|
|
441
|
+
async sendBatchToPeer(peerId, batch) {
|
|
442
|
+
const isSensitive = this.batchContainsSensitiveMetadata(batch);
|
|
443
|
+
if (isSensitive && this.eciesService) {
|
|
444
|
+
const peerKey = await this.peerProvider.getPeerPublicKey(peerId);
|
|
445
|
+
if (peerKey) {
|
|
446
|
+
// Encrypt and send with encrypted payload
|
|
447
|
+
const encryptedPayload = await this.encryptBatchForPeer(batch, peerKey);
|
|
448
|
+
await this.peerProvider.sendAnnouncementBatch(peerId, [], {
|
|
449
|
+
encryptedPayload,
|
|
450
|
+
senderNodeId: this.peerProvider.getLocalNodeId(),
|
|
451
|
+
});
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
// Sensitive but no peer key — fallback to plaintext with warning
|
|
455
|
+
console.warn(`[GossipService] Sending sensitive batch in plaintext to peer ${peerId}: no public key registered`);
|
|
456
|
+
}
|
|
457
|
+
// Non-sensitive or fallback: send plaintext
|
|
458
|
+
await this.peerProvider.sendAnnouncementBatch(peerId, batch);
|
|
459
|
+
}
|
|
261
460
|
/**
|
|
262
461
|
* Clear all pending announcements (for testing).
|
|
263
462
|
*/
|
|
264
463
|
clearPending() {
|
|
265
464
|
this.pendingAnnouncements = [];
|
|
266
465
|
}
|
|
466
|
+
/**
|
|
467
|
+
* Announce message blocks to the network with message delivery metadata.
|
|
468
|
+
* Creates a BlockAnnouncement for each blockId with priority-based TTL
|
|
469
|
+
* from config and queues them for batch sending.
|
|
470
|
+
*
|
|
471
|
+
* @param blockIds - The block IDs containing the message content
|
|
472
|
+
* @param metadata - Message delivery metadata including recipients, priority, and CBL block ID
|
|
473
|
+
* @see Requirements 3.1, 3.2, 3.3
|
|
474
|
+
*/
|
|
475
|
+
async announceMessage(blockIds, metadata) {
|
|
476
|
+
// Determine TTL based on priority (Req 3.1: normal → 5, Req 3.2: high → 7)
|
|
477
|
+
const priorityConfig = this.config.messagePriority[metadata.priority];
|
|
478
|
+
const ttl = priorityConfig.ttl;
|
|
479
|
+
// Create a BlockAnnouncement for each blockId
|
|
480
|
+
for (const blockId of blockIds) {
|
|
481
|
+
const announcement = {
|
|
482
|
+
type: 'add',
|
|
483
|
+
blockId,
|
|
484
|
+
nodeId: this.peerProvider.getLocalNodeId(),
|
|
485
|
+
timestamp: new Date(),
|
|
486
|
+
ttl,
|
|
487
|
+
messageDelivery: metadata,
|
|
488
|
+
};
|
|
489
|
+
this.queueAnnouncement(announcement);
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* Send a delivery acknowledgment back through the gossip network.
|
|
494
|
+
* Stub implementation — will be fully implemented in task 4.3.
|
|
495
|
+
*
|
|
496
|
+
* @param _ack - Delivery acknowledgment metadata
|
|
497
|
+
* @see Requirements 4.1
|
|
498
|
+
*/
|
|
499
|
+
async sendDeliveryAck(ack) {
|
|
500
|
+
const announcement = {
|
|
501
|
+
type: 'ack',
|
|
502
|
+
blockId: ack.messageId,
|
|
503
|
+
nodeId: this.peerProvider.getLocalNodeId(),
|
|
504
|
+
timestamp: new Date(),
|
|
505
|
+
ttl: this.config.defaultTtl,
|
|
506
|
+
deliveryAck: ack,
|
|
507
|
+
};
|
|
508
|
+
this.queueAnnouncement(announcement);
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Register a handler for message delivery events.
|
|
512
|
+
* The handler is called when a BlockAnnouncement with messageDelivery
|
|
513
|
+
* metadata is received and recipientIds match local users.
|
|
514
|
+
*
|
|
515
|
+
* @param handler - Function to call when a message delivery announcement is received
|
|
516
|
+
* @see Requirements 3.4, 3.5
|
|
517
|
+
*/
|
|
518
|
+
onMessageDelivery(handler) {
|
|
519
|
+
this.messageDeliveryHandlers.add(handler);
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* Remove a message delivery event handler.
|
|
523
|
+
*
|
|
524
|
+
* @param handler - The handler to remove
|
|
525
|
+
*/
|
|
526
|
+
offMessageDelivery(handler) {
|
|
527
|
+
this.messageDeliveryHandlers.delete(handler);
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Register a handler for delivery acknowledgment events.
|
|
531
|
+
* The handler is called when a BlockAnnouncement of type 'ack' is received.
|
|
532
|
+
*
|
|
533
|
+
* @param handler - Function to call when a delivery ack announcement is received
|
|
534
|
+
* @see Requirements 4.4
|
|
535
|
+
*/
|
|
536
|
+
onDeliveryAck(handler) {
|
|
537
|
+
this.deliveryAckHandlers.add(handler);
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Remove a delivery acknowledgment event handler.
|
|
541
|
+
*
|
|
542
|
+
* @param handler - The handler to remove
|
|
543
|
+
*/
|
|
544
|
+
offDeliveryAck(handler) {
|
|
545
|
+
this.deliveryAckHandlers.delete(handler);
|
|
546
|
+
}
|
|
267
547
|
}
|
|
268
548
|
exports.GossipService = GossipService;
|
|
269
549
|
//# sourceMappingURL=gossipService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gossipService.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AASH,yGAAyG;AAEzG;;GAEG;AACH,MAAM,mBAAmB,GAAiB;IACxC,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;IACb,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,GAAG;CAClB,CAAC;AA6BF;;;;;;;GAOG;AACH,MAAa,aAAa;IAqBxB;;;;;OAKG;IACH,YACmB,YAA2B,EAC3B,SAAuB,mBAAmB;QAD1C,iBAAY,GAAZ,YAAY,CAAe;QAC3B,WAAM,GAAN,MAAM,CAAoC;QA5B7D;;WAEG;QACK,yBAAoB,GAAwB,EAAE,CAAC;QAEvD;;WAEG;QACK,aAAQ,GAA6B,IAAI,GAAG,EAAE,CAAC;QAEvD;;WAEG;QACK,eAAU,GAA0C,IAAI,CAAC;QAEjE;;WAEG;QACK,YAAO,GAAG,KAAK,CAAC;IAWrB,CAAC;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,YAAY,GAAsB;YACtC,IAAI,EAAE,KAAK;YACX,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;YAC1C,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;SAC5B,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,MAAM,YAAY,GAAsB;YACtC,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;YAC1C,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;SAC5B,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB,CAAC,YAA+B;QACtD,iCAAiC;QACjC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,OAAO,CAAC,YAAY,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,qEAAqE;YACvE,CAAC;QACH,CAAC;QAED,0CAA0C;QAC1C,IAAI,YAAY,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,qBAAqB,GAAsB;gBAC/C,GAAG,YAAY;gBACf,GAAG,EAAE,YAAY,CAAC,GAAG,GAAG,CAAC;aAC1B,CAAC;YAEF,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,OAA4B;QACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,OAA4B;QAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,uBAAuB;QACrB,OAAO,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB;QACtB,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QAC/D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,qCAAqC;YACrC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,iCAAiC;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAC1C,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,MAAM,CACnB,CAAC;QAEF,mCAAmC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CACnC,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,CAAC,YAAY,CACzB,CAAC;QAEF,4DAA4D;QAC5D,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAE/B,iCAAiC;QACjC,MAAM,YAAY,GAAoB,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,YAAY,CAAC,IAAI,CACf,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBAChE,4CAA4C;gBAC9C,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnC,sBAAsB;YACxB,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,oCAAoC;QACpC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,YAA+B;QACvD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE7C,qDAAqD;QACrD,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACjE,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBACnC,sBAAsB;YACxB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,iBAAiB,CAAC,KAAe,EAAE,KAAa;QACtD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QACpB,CAAC;QAED,uDAAuD;QACvD,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;OAOG;IACK,gBAAgB,CACtB,aAAkC,EAClC,OAAe;QAEf,MAAM,OAAO,GAA0B,EAAE,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;IACjC,CAAC;CACF;AA3RD,sCA2RC"}
|
|
1
|
+
{"version":3,"file":"gossipService.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,14 +121,43 @@ export interface IAnnouncementBatchMessage {
|
|
|
121
121
|
type: GossipMessageType.ANNOUNCEMENT_BATCH;
|
|
122
122
|
payload: {
|
|
123
123
|
announcements: Array<{
|
|
124
|
-
type: 'add' | 'remove';
|
|
124
|
+
type: 'add' | 'remove' | 'ack';
|
|
125
125
|
blockId: string;
|
|
126
126
|
nodeId: string;
|
|
127
127
|
ttl: number;
|
|
128
|
+
messageDelivery?: {
|
|
129
|
+
messageId: string;
|
|
130
|
+
recipientIds: string[];
|
|
131
|
+
priority: 'normal' | 'high';
|
|
132
|
+
blockIds: string[];
|
|
133
|
+
cblBlockId: string;
|
|
134
|
+
ackRequired: boolean;
|
|
135
|
+
};
|
|
136
|
+
deliveryAck?: {
|
|
137
|
+
messageId: string;
|
|
138
|
+
recipientId: string;
|
|
139
|
+
status: 'delivered' | 'read' | 'failed' | 'bounced';
|
|
140
|
+
originalSenderNode: string;
|
|
141
|
+
};
|
|
128
142
|
}>;
|
|
143
|
+
/** Present when the batch is encrypted; announcements array is empty */
|
|
144
|
+
encryptedPayload?: string;
|
|
145
|
+
/** Sender node ID, present when encryptedPayload is set */
|
|
146
|
+
senderNodeId?: string;
|
|
129
147
|
};
|
|
130
148
|
timestamp: string;
|
|
131
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Encrypted gossip payload — an ECIES-encrypted announcement batch.
|
|
152
|
+
* Used as an alternative to the plaintext announcements array when
|
|
153
|
+
* the batch contains sensitive metadata (messageDelivery / deliveryAck).
|
|
154
|
+
*/
|
|
155
|
+
export interface IEncryptedGossipPayload {
|
|
156
|
+
/** Base64-encoded ECIES ciphertext in WithLength format */
|
|
157
|
+
encryptedPayload: string;
|
|
158
|
+
/** Node ID of the sender that encrypted this payload */
|
|
159
|
+
senderNodeId: string;
|
|
160
|
+
}
|
|
132
161
|
/**
|
|
133
162
|
* Ping message
|
|
134
163
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocketMessages.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/interfaces/websocketMessages.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"websocketMessages.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/interfaces/websocketMessages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,oBAAoB,CAAC,oBAAoB,CAAC;IAChD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,oBAAoB,CAAC,qBAAqB,CAAC;IACjD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE;YACX,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,oBAAoB,CAAC,WAAW,CAAC;IACvC,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,oBAAoB,CAAC,oBAAoB,CAAC;IAChD,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;IAC5C,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,oBAAoB,CAAC,iBAAiB,CAAC;IAC7C,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,iBAAiB,CAAC,kBAAkB,CAAC;IAC3C,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,iBAAiB,CAAC,aAAa,CAAC;IACtC,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,iBAAiB,CAAC,kBAAkB,CAAC;IAC3C,OAAO,EAAE;QACP,aAAa,EAAE,KAAK,CAAC;YACnB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;YAC/B,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC;YACf,GAAG,EAAE,MAAM,CAAC;YACZ,eAAe,CAAC,EAAE;gBAChB,SAAS,EAAE,MAAM,CAAC;gBAClB,YAAY,EAAE,MAAM,EAAE,CAAC;gBACvB,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;gBAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;gBACnB,UAAU,EAAE,MAAM,CAAC;gBACnB,WAAW,EAAE,OAAO,CAAC;aACtB,CAAC;YACF,WAAW,CAAC,EAAE;gBACZ,SAAS,EAAE,MAAM,CAAC;gBAClB,WAAW,EAAE,MAAM,CAAC;gBACpB,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;gBACpD,kBAAkB,EAAE,MAAM,CAAC;aAC5B,CAAC;SACH,CAAC,CAAC;QACH,wEAAwE;QACxE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,2DAA2D;QAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;CACtB;AAID;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAChC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAChC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,kBAAkB,CAAC,YAAY,CAAC;IACtC,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,kBAAkB,CAAC,gBAAgB,CAAC;IAC1C,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,kBAAkB,CAAC,WAAW,CAAC;IACrC,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC;IACvC,OAAO,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,kBAAkB,CAAC,eAAe,CAAC;IACzC,OAAO,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,GACjB,yBAAyB,GACzB,oBAAoB,GACpB,yBAAyB,GACzB,YAAY,GACZ,YAAY,GACZ,mBAAmB,GACnB,uBAAuB,GACvB,kBAAkB,GAClB,oBAAoB,GACpB,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC"}
|
|
@@ -23,4 +23,5 @@ tslib_1.__exportStar(require("./role"), exports);
|
|
|
23
23
|
tslib_1.__exportStar(require("./secureKeyStorage"), exports);
|
|
24
24
|
tslib_1.__exportStar(require("./websocketHandler"), exports);
|
|
25
25
|
tslib_1.__exportStar(require("./webSocketMessageServer"), exports);
|
|
26
|
+
tslib_1.__exportStar(require("./webSocketPeerProvider"), exports);
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAuB;AACvB,iDAAuB;AACvB,mDAAyB;AACzB,gEAAsC;AACtC,uDAA6B;AAC7B,8DAAoC;AACpC,kDAAwB;AACxB,oEAA0C;AAC1C,6BAAuC;AAA9B,qGAAA,cAAc,OAAA;AACvB,8DAAoC;AACpC,4DAAkC;AAClC,0EAAgD;AAChD,kEAAwC;AACxC,+DAAqC;AACrC,mDAAyB;AACzB,wDAA8B;AAC9B,iDAAuB;AACvB,6DAAmC;AACnC,6DAAmC;AACnC,mEAAyC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAuB;AACvB,iDAAuB;AACvB,mDAAyB;AACzB,gEAAsC;AACtC,uDAA6B;AAC7B,8DAAoC;AACpC,kDAAwB;AACxB,oEAA0C;AAC1C,6BAAuC;AAA9B,qGAAA,cAAc,OAAA;AACvB,8DAAoC;AACpC,4DAAkC;AAClC,0EAAgD;AAChD,kEAAwC;AACxC,+DAAqC;AACrC,mDAAyB;AACzB,wDAA8B;AAC9B,iDAAuB;AACvB,6DAAmC;AACnC,6DAAmC;AACnC,mEAAyC;AACzC,kEAAwC"}
|
|
@@ -1,17 +1,92 @@
|
|
|
1
|
-
import { IMessageCBLOptions as ICreateMessageOptions, IMessageMetadata, IMessageMetadataStore, MessageCBLService } from '@brightchain/brightchain-lib';
|
|
1
|
+
import { IMessageCBLOptions as ICreateMessageOptions, IGossipService, IMessageMetadata, IMessageMetadataStore, MessageCBLService, type IDeliveryReceipt, type IEmailContent, type IEmailInput, type IEmailMetadata, type IEmailMetadataStore, type IEmailServiceConfig, type IInboxQuery, type IInboxResult, type IMailbox, type IReplyInput, type ISendEmailResult } from '@brightchain/brightchain-lib';
|
|
2
2
|
import { EventNotificationSystem } from './eventNotificationSystem';
|
|
3
|
-
import { WebSocketMessageServer } from './webSocketMessageServer';
|
|
4
3
|
/**
|
|
5
|
-
* High-level message passing service coordinating storage, routing, and events
|
|
4
|
+
* High-level message passing service coordinating storage, routing, and events.
|
|
5
|
+
*
|
|
6
|
+
* Uses IGossipService for message delivery instead of WebSocketMessageServer.
|
|
7
|
+
* Messages are announced via gossip protocol and delivery acknowledgments
|
|
8
|
+
* are received through gossip ack events.
|
|
9
|
+
*
|
|
10
|
+
* @see Requirements 7.1, 7.2, 7.3, 7.4, 7.5
|
|
6
11
|
*/
|
|
7
12
|
export declare class MessagePassingService {
|
|
8
13
|
private messageCBL;
|
|
9
14
|
private metadataStore;
|
|
10
15
|
private eventSystem;
|
|
11
|
-
private
|
|
12
|
-
|
|
16
|
+
private gossipService;
|
|
17
|
+
private emailService?;
|
|
18
|
+
constructor(messageCBL: MessageCBLService, metadataStore: IMessageMetadataStore, eventSystem: EventNotificationSystem, gossipService: IGossipService);
|
|
19
|
+
/**
|
|
20
|
+
* Wire up the EmailMessageService for email-specific operations.
|
|
21
|
+
*
|
|
22
|
+
* Call this after construction to enable email methods (sendEmail,
|
|
23
|
+
* getEmail, queryInbox, etc.). Without this, email methods will throw.
|
|
24
|
+
*/
|
|
25
|
+
configureEmail(emailMetadataStore: IEmailMetadataStore, config?: Partial<IEmailServiceConfig>): void;
|
|
26
|
+
/**
|
|
27
|
+
* Returns the underlying EmailMessageService.
|
|
28
|
+
* @throws Error if email has not been configured via configureEmail()
|
|
29
|
+
*/
|
|
30
|
+
private getEmailService;
|
|
31
|
+
/**
|
|
32
|
+
* Send an email message via the BrightChain email protocol.
|
|
33
|
+
*
|
|
34
|
+
* @see Requirements 15.1, 15.4
|
|
35
|
+
*/
|
|
36
|
+
sendEmail(email: IEmailInput): Promise<ISendEmailResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Retrieve email metadata by message ID.
|
|
39
|
+
*/
|
|
40
|
+
getEmail(messageId: string): Promise<IEmailMetadata | null>;
|
|
41
|
+
/**
|
|
42
|
+
* Retrieve full email content including MIME parts and attachments.
|
|
43
|
+
*/
|
|
44
|
+
getEmailContent(messageId: string): Promise<IEmailContent>;
|
|
45
|
+
/**
|
|
46
|
+
* Delete an email by message ID.
|
|
47
|
+
*/
|
|
48
|
+
deleteEmail(messageId: string): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Query a user's inbox with filtering, sorting, and pagination.
|
|
51
|
+
*
|
|
52
|
+
* @see Requirements 13.1, 13.2, 13.3, 13.6, 13.7
|
|
53
|
+
*/
|
|
54
|
+
queryInbox(userId: string, query: IInboxQuery): Promise<IInboxResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Mark an email as read for a specific user.
|
|
57
|
+
*/
|
|
58
|
+
markEmailAsRead(messageId: string, userId: string): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Get unread email count for a user.
|
|
61
|
+
*/
|
|
62
|
+
getUnreadEmailCount(userId: string): Promise<number>;
|
|
63
|
+
/**
|
|
64
|
+
* Get all emails in a thread.
|
|
65
|
+
*/
|
|
66
|
+
getEmailThread(messageId: string): Promise<IEmailMetadata[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Create a reply to an existing email.
|
|
69
|
+
*
|
|
70
|
+
* @see Requirements 10.1, 10.2, 10.3
|
|
71
|
+
*/
|
|
72
|
+
createEmailReply(originalId: string, replyContent: IReplyInput): Promise<ISendEmailResult>;
|
|
73
|
+
/**
|
|
74
|
+
* Forward an email to new recipients.
|
|
75
|
+
*
|
|
76
|
+
* @see Requirements 17.1, 17.2, 17.3
|
|
77
|
+
*/
|
|
78
|
+
forwardEmail(originalId: string, forwardTo: IMailbox[]): Promise<ISendEmailResult>;
|
|
79
|
+
/**
|
|
80
|
+
* Get delivery status for all recipients of an email.
|
|
81
|
+
*/
|
|
82
|
+
getEmailDeliveryStatus(messageId: string): Promise<Map<string, IDeliveryReceipt>>;
|
|
13
83
|
/**
|
|
14
84
|
* Send a message
|
|
85
|
+
*
|
|
86
|
+
* Stores the message via MessageCBLService, emits MESSAGE_STORED event,
|
|
87
|
+
* then announces the message via gossip protocol for delivery.
|
|
88
|
+
*
|
|
89
|
+
* @see Requirements 7.1, 7.3, 7.5
|
|
15
90
|
*/
|
|
16
91
|
sendMessage(content: Buffer, senderId: string, options: ICreateMessageOptions): Promise<{
|
|
17
92
|
messageId: string;
|
|
@@ -19,16 +94,31 @@ export declare class MessagePassingService {
|
|
|
19
94
|
}>;
|
|
20
95
|
/**
|
|
21
96
|
* Get message content
|
|
97
|
+
*
|
|
98
|
+
* @see Requirements 7.5
|
|
22
99
|
*/
|
|
23
100
|
getMessage(messageId: string): Promise<Buffer | null>;
|
|
24
101
|
/**
|
|
25
102
|
* Query messages
|
|
103
|
+
*
|
|
104
|
+
* @see Requirements 7.5
|
|
26
105
|
*/
|
|
27
106
|
queryMessages(query: Record<string, unknown>): Promise<IMessageMetadata[]>;
|
|
28
107
|
/**
|
|
29
108
|
* Delete message
|
|
109
|
+
*
|
|
110
|
+
* @see Requirements 7.5
|
|
30
111
|
*/
|
|
31
112
|
deleteMessage(messageId: string): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Set up handlers for gossip delivery events.
|
|
115
|
+
*
|
|
116
|
+
* Listens for:
|
|
117
|
+
* - Message delivery announcements (incoming messages)
|
|
118
|
+
* - Delivery acknowledgments (confirmation of sent messages)
|
|
119
|
+
*
|
|
120
|
+
* @see Requirements 7.4
|
|
121
|
+
*/
|
|
32
122
|
private setupHandlers;
|
|
33
123
|
}
|
|
34
124
|
//# sourceMappingURL=messagePassingService.d.ts.map
|