@adapt-toolkit/sdk 0.5.15 → 0.6.1

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 (71) hide show
  1. package/LICENSE +105 -0
  2. package/LICENSE.aefl +172 -0
  3. package/NOTICE +18 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/mufl_files/794F6D9EE08C05F2A5768F0E71512120A559D3FC83B106F792FFBAFDA7C016A4.muflo +0 -0
  8. package/dist/utilities/broker/broker.d.ts +8 -1
  9. package/dist/utilities/broker/broker.d.ts.map +1 -1
  10. package/dist/utilities/broker/broker.js +147 -97
  11. package/dist/utilities/broker/broker.js.map +1 -1
  12. package/dist/utilities/broker/broker_client.d.ts +6 -3
  13. package/dist/utilities/broker/broker_client.d.ts.map +1 -1
  14. package/dist/utilities/broker/broker_client.js +79 -12
  15. package/dist/utilities/broker/broker_client.js.map +1 -1
  16. package/dist/utilities/broker/pending_message_store.d.ts +2 -3
  17. package/dist/utilities/broker/pending_message_store.d.ts.map +1 -1
  18. package/dist/utilities/broker/pending_message_store.js +3 -21
  19. package/dist/utilities/broker/pending_message_store.js.map +1 -1
  20. package/dist/utilities/common/errors/adapt_protocol_error.d.ts +3 -2
  21. package/dist/utilities/common/errors/adapt_protocol_error.d.ts.map +1 -1
  22. package/dist/utilities/common/errors/adapt_protocol_error.js +3 -2
  23. package/dist/utilities/common/errors/adapt_protocol_error.js.map +1 -1
  24. package/dist/utilities/common/index.d.ts +1 -0
  25. package/dist/utilities/common/index.d.ts.map +1 -1
  26. package/dist/utilities/common/index.js.map +1 -1
  27. package/dist/utilities/common/web_socket_client.d.ts +2 -3
  28. package/dist/utilities/common/web_socket_client.d.ts.map +1 -1
  29. package/dist/utilities/common/web_socket_client.js.map +1 -1
  30. package/dist/utilities/common/web_socket_connection.d.ts +23 -5
  31. package/dist/utilities/common/web_socket_connection.d.ts.map +1 -1
  32. package/dist/utilities/common/web_socket_connection.js +44 -14
  33. package/dist/utilities/common/web_socket_connection.js.map +1 -1
  34. package/dist/utilities/storage/data_storage.d.ts.map +1 -1
  35. package/dist/utilities/storage/data_storage.js +10 -5
  36. package/dist/utilities/storage/data_storage.js.map +1 -1
  37. package/dist/utilities/storage/storage_client.d.ts +2 -2
  38. package/dist/utilities/storage/storage_client.d.ts.map +1 -1
  39. package/dist/utilities/storage/storage_client.js +7 -9
  40. package/dist/utilities/storage/storage_client.js.map +1 -1
  41. package/dist/utilities/wrappers/wrappers/adapt_packet_wrapper.d.ts +1 -1
  42. package/dist/utilities/wrappers/wrappers/adapt_packet_wrapper.d.ts.map +1 -1
  43. package/dist/utilities/wrappers/wrappers/adapt_packet_wrapper.js +2 -2
  44. package/dist/utilities/wrappers/wrappers/adapt_packet_wrapper.js.map +1 -1
  45. package/dist/utilities/wrappers/wrappers/adapt_wrapper.d.ts +4 -1
  46. package/dist/utilities/wrappers/wrappers/adapt_wrapper.d.ts.map +1 -1
  47. package/dist/utilities/wrappers/wrappers/adapt_wrapper.js +27 -20
  48. package/dist/utilities/wrappers/wrappers/adapt_wrapper.js.map +1 -1
  49. package/dist/utilities/wrappers/wrappers/impl/adapt_packet_wrapper_impl.d.ts +1 -1
  50. package/dist/utilities/wrappers/wrappers/impl/adapt_packet_wrapper_impl.d.ts.map +1 -1
  51. package/dist/utilities/wrappers/wrappers/impl/adapt_packet_wrapper_impl.js +19 -23
  52. package/dist/utilities/wrappers/wrappers/impl/adapt_packet_wrapper_impl.js.map +1 -1
  53. package/dist/wasm/LICENSE.aefl +172 -0
  54. package/dist/wasm/mufl-bindings.d.ts.map +1 -1
  55. package/dist/wasm/mufl-bindings.js +221 -25
  56. package/dist/wasm/mufl-bindings.js.map +1 -1
  57. package/dist/wasm/mufl-bindings.wasm +0 -0
  58. package/dist/wrapper/index.d.ts +1 -0
  59. package/dist/wrapper/index.d.ts.map +1 -1
  60. package/dist/wrapper/index.js +1 -0
  61. package/dist/wrapper/index.js.map +1 -1
  62. package/dist/wrapper/protocol/broker_frame.d.ts +20 -0
  63. package/dist/wrapper/protocol/broker_frame.d.ts.map +1 -0
  64. package/dist/wrapper/protocol/broker_frame.js +102 -0
  65. package/dist/wrapper/protocol/broker_frame.js.map +1 -0
  66. package/dist/wrapper/protocol/protocol.d.ts +3 -0
  67. package/dist/wrapper/protocol/protocol.d.ts.map +1 -1
  68. package/dist/wrapper/protocol/protocol.js +23 -1
  69. package/dist/wrapper/protocol/protocol.js.map +1 -1
  70. package/package.json +7 -4
  71. package/dist/mufl_files/BF38C2D4E98F56F473F78121CF9EAAC3492364F1A11A3B0F1F04C12D24285596.muflo +0 -0
@@ -1,10 +1,12 @@
1
1
  import { readFileSync } from 'fs';
2
2
  import { fileURLToPath } from 'url';
3
3
  import { dirname, join } from 'path';
4
+ import { monitorEventLoopDelay } from 'perf_hooks';
4
5
  import { AdaptObjectLifetime } from '@adapt-toolkit/sdk/backend';
5
6
  import { ExitHandlerRegistrar } from '../../wrapper/index.js';
6
- import { AdaptProtocolWSConnection, HttpServer, AsyncQueueAdapter, AdaptNetworkError, AdaptNetworkErrorType, AdaptProtocolError, AdaptProtocolErrorType, logging, LazyMessage } from '../common/index.js';
7
+ import { AdaptProtocolWSConnection, HttpServer, AsyncQueueAdapter, AdaptNetworkError, AdaptNetworkErrorType, AdaptProtocolError, AdaptProtocolErrorType, logging } from '../common/index.js';
7
8
  import { AdaptObjectBuilder, Protocol } from '../../wrapper/index.js';
9
+ import { encodeFrame, patchFrameType, cidHexToBytes } from '../../wrapper/protocol/broker_frame.js';
8
10
  import { PendingMessageStore } from './pending_message_store.js';
9
11
  import { createRequire } from 'module';
10
12
  const __broker_require = createRequire(import.meta.url);
@@ -131,6 +133,11 @@ function render_info_html(info) {
131
133
  <div class="tr"><span class="k">in</span><span class="v">${round2(t.mb_in_per_min)} MB/min &middot; ${fmt_int(t.msg_in_per_min)} msg/min</span></div>
132
134
  <div class="tr"><span class="k">out</span><span class="v">${round2(t.mb_out_per_min)} MB/min &middot; ${fmt_int(t.msg_out_per_min)} msg/min</span></div>
133
135
  </div>
136
+ <div class="metric full"><div class="label">Broker process</div>
137
+ <div class="tr"><span class="k">cpu</span><span class="v">${round2(info.process.cpu_pct)}%</span></div>
138
+ <div class="tr"><span class="k">rss</span><span class="v">${round2(info.process.rss_mb)} MB</span></div>
139
+ <div class="tr"><span class="k">loop lag p99</span><span class="v">${round2(info.process.event_loop_lag_p99_ms)} ms</span></div>
140
+ </div>
134
141
  <div class="metric full"><div class="label">${geo_label}</div>
135
142
  ${geo_rows}
136
143
  </div>
@@ -142,11 +149,9 @@ function render_info_html(info) {
142
149
  }
143
150
  class AdaptPacketInfo {
144
151
  cid;
145
- adapt_identity_proof_document;
146
152
  connected_containers = new Set(); // list of ids of containers, that has identity proof document of THIS container
147
- constructor(packet_id, adapt_identity_proof_document) {
153
+ constructor(packet_id) {
148
154
  this.cid = packet_id;
149
- this.adapt_identity_proof_document = adapt_identity_proof_document;
150
155
  }
151
156
  add_connected_container(cid) {
152
157
  this.connected_containers.add(cid);
@@ -162,27 +167,33 @@ class Connection extends AdaptProtocolWSConnection {
162
167
  responded = false;
163
168
  remote_ip;
164
169
  country;
170
+ reg_nonce = "";
171
+ nonce_lt = new AdaptObjectLifetime();
172
+ nonce_av;
165
173
  static last_connection_id = 0;
166
174
  constructor(broker, socket) {
167
- super(socket);
175
+ super(socket, false);
168
176
  this.broker = broker;
169
177
  this.connection_id = Connection.last_connection_id++;
170
178
  this.on('message', this.on_message_impl.bind(this));
171
179
  this.on('close', this.on_close_impl.bind(this));
172
180
  }
173
- on_message_impl(message) {
181
+ on_message_impl(incoming) {
174
182
  this.responded = true;
175
- logging.message_received('broker_client', 'broker', message);
176
- this.broker.queue.push({ kind: 'incoming_message', connection_id: this.connection_id, data: message });
183
+ this.broker.queue.push({
184
+ kind: 'incoming_message',
185
+ connection_id: this.connection_id,
186
+ frame: incoming.frame,
187
+ type: incoming.type,
188
+ to_hex: incoming.toHex,
189
+ parse_payload: incoming.parsePayload,
190
+ });
191
+ this.broker.maybe_apply_backpressure();
177
192
  }
178
193
  on_close_impl(code, reason) {
179
194
  logging.info("Socket connections closed with code:", code);
180
195
  this.broker.connection_closed(this.connection_id);
181
196
  }
182
- send(message) {
183
- logging.message_sent('broker', 'broker_client', message);
184
- super.send(message);
185
- }
186
197
  add_packet(cid) {
187
198
  this.managed_packets.add(cid);
188
199
  }
@@ -205,12 +216,14 @@ class PacketConnection {
205
216
  get connection_id() {
206
217
  return this.connection.connection_id;
207
218
  }
208
- send(message) {
209
- this.connection.send(message);
219
+ send_frame(frame) {
220
+ this.connection.send_frame(frame);
210
221
  }
211
222
  }
212
223
  const IDLE_SWEEP_INTERVAL_MS = 10_000;
213
224
  const IDLE_TIMEOUT_MS = 35_000;
225
+ const QUEUE_HIGH_WATER_MARK = 1_000;
226
+ const QUEUE_LOW_WATER_MARK = 250;
214
227
  export class Broker extends HttpServer {
215
228
  queue;
216
229
  #connections = {};
@@ -219,6 +232,7 @@ export class Broker extends HttpServer {
219
232
  #pending_store;
220
233
  #worker_functions;
221
234
  #global_lifetime = new AdaptObjectLifetime();
235
+ #inbound_paused = false;
222
236
  #started_at = Date.now();
223
237
  #connections_accepted_total = 0;
224
238
  #all_ips = new Set();
@@ -230,6 +244,10 @@ export class Broker extends HttpServer {
230
244
  #closed_messages_out = 0;
231
245
  #traffic_samples = [];
232
246
  #traffic_sample_timer;
247
+ #eld = monitorEventLoopDelay({ resolution: 20 });
248
+ #last_cpu = process.cpuUsage();
249
+ #last_cpu_at = Date.now();
250
+ #cpu_pct = 0;
233
251
  config;
234
252
  constructor(broker_configuration) {
235
253
  super(broker_configuration.host, broker_configuration.port);
@@ -239,6 +257,7 @@ export class Broker extends HttpServer {
239
257
  logging.info("Persistent pending message store enabled at:", broker_configuration.db_path);
240
258
  }
241
259
  this.queue = new AsyncQueueAdapter(this.#worker.bind(this));
260
+ this.#eld.enable();
242
261
  this.#worker_functions = new Map([
243
262
  [Protocol.MessageName.w2b_reg, this.#w2b_reg_v1_handler.bind(this)],
244
263
  [Protocol.MessageName.w2b_transaction, this.#w2b_transaction_v1_handler.bind(this)]
@@ -253,15 +272,27 @@ export class Broker extends HttpServer {
253
272
  this.#global_lifetime.Finalize();
254
273
  });
255
274
  }
256
- #add_pending_message(message, to) {
257
- logging.debug("Adding pending message to container:", to, ", message:", new LazyMessage(() => message.Visualize()));
275
+ #add_pending_message(frame, to) {
276
+ logging.debug("Adding pending message to container:", to);
258
277
  if (this.#pending_store) {
259
- this.#pending_store.add(to, message);
278
+ this.#pending_store.add(to, frame);
260
279
  }
261
280
  else {
262
281
  if (!(to in this.#pending_messages_by_cid))
263
282
  this.#pending_messages_by_cid[to] = [];
264
- this.#pending_messages_by_cid[to].push(message);
283
+ this.#pending_messages_by_cid[to].push(frame);
284
+ }
285
+ }
286
+ // Build an outgoing frame from a freshly-created control message, then free the
287
+ // AdaptValue. `to_hex` is null for broker-directed control messages.
288
+ #build_frame(type, to_hex, payload) {
289
+ try {
290
+ const inner = payload.Serialize();
291
+ const to = to_hex ? cidHexToBytes(to_hex) : null;
292
+ return encodeFrame(type, to, inner instanceof Uint8Array ? inner : new Uint8Array(inner));
293
+ }
294
+ finally {
295
+ payload.Destroy();
265
296
  }
266
297
  }
267
298
  connection_closed(connection_id) {
@@ -277,12 +308,22 @@ export class Broker extends HttpServer {
277
308
  else
278
309
  logging.debug("Packet ", cid, " has already re-registered on another connection, keeping the new registration");
279
310
  });
311
+ connection.nonce_lt.Finalize();
280
312
  delete this.#connections[connection_id];
281
313
  }
282
314
  else {
283
315
  logging.warning("Task 'socket_close' with connection_id ", connection_id, " that is not known to us, ignoring");
284
316
  }
285
317
  }
318
+ last_reg_nonce_for_test() {
319
+ const ids = Object.keys(this.#connections).map(Number);
320
+ if (ids.length === 0)
321
+ return '';
322
+ return this.#connections[Math.max(...ids)].reg_nonce;
323
+ }
324
+ is_cid_registered_for_test(cid) {
325
+ return cid in this.#connections_by_cid;
326
+ }
286
327
  #idle_sweep_timer;
287
328
  #start_idle_sweep() {
288
329
  this.#idle_sweep_timer = setInterval(() => {
@@ -334,6 +375,11 @@ export class Broker extends HttpServer {
334
375
  const cutoff = now - 70_000;
335
376
  while (this.#traffic_samples.length > 1 && this.#traffic_samples[0].t < cutoff)
336
377
  this.#traffic_samples.shift();
378
+ const cpu = process.cpuUsage(this.#last_cpu);
379
+ const elapsed_us = (now - this.#last_cpu_at) * 1000;
380
+ this.#cpu_pct = elapsed_us > 0 ? round2(((cpu.user + cpu.system) / elapsed_us) * 100) : 0;
381
+ this.#last_cpu = process.cpuUsage();
382
+ this.#last_cpu_at = now;
337
383
  };
338
384
  sample();
339
385
  this.#traffic_sample_timer = setInterval(sample, 5_000);
@@ -379,6 +425,11 @@ export class Broker extends HttpServer {
379
425
  connections: { now: live.length, accepted_total: this.#connections_accepted_total },
380
426
  ips: { now: ips_now.size, distinct_total: this.#all_ips.size },
381
427
  traffic: this.#traffic_rates(),
428
+ process: {
429
+ cpu_pct: this.#cpu_pct,
430
+ rss_mb: round2(process.memoryUsage().rss / (1024 * 1024)),
431
+ event_loop_lag_p99_ms: round2(this.#eld.percentile(99) / 1e6),
432
+ },
382
433
  countries,
383
434
  };
384
435
  }
@@ -413,31 +464,43 @@ export class Broker extends HttpServer {
413
464
  }
414
465
  this.#connections_accepted_total++;
415
466
  this.#connections[connection.connection_id] = connection;
467
+ {
468
+ const nb = new AdaptObjectBuilder();
469
+ try {
470
+ const nonce_bin = nb.AdaptEnvironment.GetRandomBytes(32);
471
+ const nonce_hc = nb.Attach(Protocol.GetProtocolContainer().ExecuteTransaction(nb.Attach(Protocol.GetProtocolContainer().CreateDictionary()
472
+ .Mutate('name', nb.AdaptValue.New('::protocol_container::primitives_wrapper::binary_to_hash_code'))
473
+ .Mutate('targ', nonce_bin))));
474
+ connection.reg_nonce = nonce_hc.Visualize();
475
+ connection.nonce_av = nonce_hc.Detach().Attach(connection.nonce_lt);
476
+ }
477
+ finally {
478
+ nb.Destroy();
479
+ }
480
+ }
416
481
  // message initializing connection between broker and wrapper
417
482
  const send_init_message_to_wrapper = (connection) => {
418
483
  if (connection.responded)
419
484
  return;
420
485
  if (!(connection.connection_id in this.#connections))
421
486
  return; // connections closed before we have obtained the registration message
422
- const message = Protocol.CreateProtocolMessage(Protocol.MessageName.b2w_init).Detach();
423
- this.queue.push({ kind: 'outgoing_message', connection_id: connection.connection_id, data: message });
487
+ const frame = this.#build_frame(Protocol.MessageName.b2w_init, null, Protocol.CreateProtocolMessage(Protocol.MessageName.b2w_init, { nonce: connection.nonce_av }).Detach());
488
+ this.queue.push({ kind: 'outgoing_message', connection_id: connection.connection_id, frame });
424
489
  setTimeout(() => send_init_message_to_wrapper(connection), 2000);
425
490
  };
426
491
  send_init_message_to_wrapper(connection);
427
492
  });
428
493
  };
429
494
  // =================================== worker and related methods ==============================================
430
- // AdaptValue in task is always detached from lifetime, its memory should be managed here
431
495
  #worker = (task, callback) => {
432
496
  try {
433
497
  if (task.kind === 'outgoing_message') {
434
498
  const connection_id = task.connection_id;
435
499
  if (connection_id in this.#connections) {
436
500
  try {
437
- this.#connections[connection_id].send(task.data);
501
+ this.#connections[connection_id].send_frame(task.frame);
438
502
  if (task.pending_row_id !== undefined)
439
503
  this.#pending_store?.remove(task.pending_row_id);
440
- task.data.Destroy();
441
504
  }
442
505
  catch (e) {
443
506
  logging.error("Failed to send outgoing message on connection ", connection_id, ": ", e instanceof Error ? e.message : e);
@@ -459,38 +522,44 @@ export class Broker extends HttpServer {
459
522
  logging.error(message);
460
523
  }
461
524
  finally {
525
+ this.#maybe_relieve_backpressure();
462
526
  callback();
463
527
  }
464
528
  };
529
+ maybe_apply_backpressure() {
530
+ if (this.#inbound_paused || this.queue.length < QUEUE_HIGH_WATER_MARK)
531
+ return;
532
+ this.#inbound_paused = true;
533
+ for (const id in this.#connections)
534
+ this.#connections[id].pause();
535
+ logging.warning("Backpressure engaged: queue depth ", this.queue.length, " >= ", QUEUE_HIGH_WATER_MARK, "; pausing inbound reads");
536
+ }
537
+ #maybe_relieve_backpressure() {
538
+ if (!this.#inbound_paused || this.queue.length > QUEUE_LOW_WATER_MARK)
539
+ return;
540
+ this.#inbound_paused = false;
541
+ for (const id in this.#connections)
542
+ this.#connections[id].resume();
543
+ logging.info("Backpressure relieved: queue depth ", this.queue.length, " <= ", QUEUE_LOW_WATER_MARK, "; resuming inbound reads");
544
+ }
465
545
  #handle_undeliverable(task) {
466
546
  if (task.to_cid !== undefined) {
467
- if (task.pending_row_id !== undefined) {
468
- task.data.Destroy();
469
- }
470
- else {
547
+ // Already-persisted pending rows (pending_row_id set) stay in the store;
548
+ // a fresh undeliverable frame is added to it.
549
+ if (task.pending_row_id === undefined) {
471
550
  logging.debug("Returning undeliverable message for container ", task.to_cid, " to the pending store");
472
- this.#add_pending_message(task.data, task.to_cid);
551
+ this.#add_pending_message(task.frame, task.to_cid);
473
552
  }
474
553
  }
475
- else {
476
- task.data.Destroy();
477
- }
478
554
  }
479
555
  #incoming_message_handler(task) {
480
- const message = task.data;
481
- const message_type_id = Protocol.GetTypeId(message);
482
556
  const connection_id = task.connection_id;
483
- logging.debug("Processing incoming message:", new LazyMessage(() => message.Visualize()));
484
- if (connection_id in this.#connections) {
485
- const func = this.#worker_functions.get(message_type_id);
486
- if (!func)
487
- throw new Error("Unrecognized message type id: " + message_type_id);
488
- func(task); // functions takes care of destroying the object, because we are not in control here of the data lifetime
489
- }
490
- else {
491
- task.data.Destroy(); // we didn't send the data to any other function, so here is the last place in the code where the data is used
557
+ if (!(connection_id in this.#connections))
492
558
  throw new AdaptNetworkError(AdaptNetworkErrorType.INTERNAL_ERROR, `Invalid connection id ${connection_id}`);
493
- }
559
+ const func = this.#worker_functions.get(task.type);
560
+ if (!func)
561
+ throw new Error("Unrecognized message type: " + task.type);
562
+ func(task);
494
563
  }
495
564
  /**
496
565
  *
@@ -501,7 +570,7 @@ export class Broker extends HttpServer {
501
570
  #w2b_reg_v1_handler(task) {
502
571
  const builder = new AdaptObjectBuilder();
503
572
  try {
504
- const message = builder.Attach(task.data); // attach received AdaptValue to current builder to destroy data in the end of the function
573
+ const message = builder.Attach(task.parse_payload()); // parse the inner registration message; freed with the builder
505
574
  const connection_id = task.connection_id;
506
575
  const connection = this.#connections[connection_id];
507
576
  if (connection == undefined)
@@ -510,40 +579,37 @@ export class Broker extends HttpServer {
510
579
  const cid = builder.Attach(Protocol.GetFrom(message)).Visualize();
511
580
  logging.debug("Received registration message from container with id: ", cid);
512
581
  this.#all_cids.add(cid);
513
- // if (cid in this.#connections_by_cid)
514
- // throw new AdaptProtocolError(AdaptProtocolErrorType.LOGIC_ERROR, `Duplicate/invalid registration message for container ${cid}, connection ${task.connection_id}`);
515
- // get and validate identity proof document
516
- const ip_document = message_body.Reduce(Protocol.FieldName.ip_document).Attach(this.#global_lifetime);
582
+ const existing = this.#connections_by_cid[cid];
583
+ if (existing && existing.connection_id === connection_id)
584
+ throw new AdaptProtocolError(AdaptProtocolErrorType.LOGIC_ERROR, `Duplicate registration for container ${cid}`);
585
+ const proof = builder.Attach(message_body.Reduce(Protocol.FieldName.registration_proof));
517
586
  try {
518
- builder.Attach(Protocol.ValidateIdentityProofDocument(ip_document, builder.AdaptEnvironment.SystemTime()));
519
- logging.debug("Identity proof document validated");
587
+ builder.Attach(Protocol.VerifyRegistrationProof(proof, connection.nonce_av, builder.AdaptValue.New(cid)));
520
588
  }
521
589
  catch (e) {
522
590
  logging.error(e instanceof Error ? e.message : e);
523
- throw new AdaptProtocolError(AdaptProtocolErrorType.IP_DOCUMENT_VALIDATION_FAILURE, "Identity proof document validation failed");
591
+ throw new AdaptProtocolError(AdaptProtocolErrorType.REGISTRATION_PROOF_FAILURE, "Registration possession proof failed");
524
592
  }
525
- // IP Document validation OK
526
- // create connection with packet
527
- let adapt_packet_info = new AdaptPacketInfo(cid, ip_document.Detach());
593
+ let adapt_packet_info = new AdaptPacketInfo(cid);
528
594
  let packet_connection = new PacketConnection(connection, adapt_packet_info);
529
595
  // add new packet connection
530
596
  this.#connections_by_cid[cid] = packet_connection;
531
- const data_to_send = Protocol.CreateProtocolMessage(Protocol.MessageName.b2w_reg_ok, { to: builder.AdaptValue.New(cid), message_hash: message.GetHash() }).Detach();
597
+ const reg_ok_frame = this.#build_frame(Protocol.MessageName.b2w_reg_ok, cid, Protocol.CreateProtocolMessage(Protocol.MessageName.b2w_reg_ok, { to: builder.AdaptValue.New(cid), message_hash: message.GetHash() }).Detach());
532
598
  this.queue.push({
533
599
  kind: 'outgoing_message',
534
600
  connection_id: connection_id,
535
- data: data_to_send
601
+ frame: reg_ok_frame
536
602
  });
537
603
  if (this.#pending_store) {
538
604
  for (const { id, value } of this.#pending_store.peek(cid)) {
539
- this.queue.push({ kind: 'outgoing_message', connection_id: connection_id, data: value, to_cid: cid, pending_row_id: id });
605
+ this.queue.push({ kind: 'outgoing_message', connection_id: connection_id, frame: value, to_cid: cid, pending_row_id: id });
540
606
  }
541
607
  }
542
608
  else {
543
609
  const pending = this.#pending_messages_by_cid[cid] ?? [];
544
610
  delete this.#pending_messages_by_cid[cid];
545
- for (const message of pending) {
546
- this.queue.push({ kind: 'outgoing_message', connection_id: connection_id, data: message, to_cid: cid });
611
+ for (const frame of pending) {
612
+ this.queue.push({ kind: 'outgoing_message', connection_id: connection_id, frame, to_cid: cid });
547
613
  }
548
614
  }
549
615
  }
@@ -552,48 +618,32 @@ export class Broker extends HttpServer {
552
618
  }
553
619
  }
554
620
  /**
555
- *
556
- * 1. Get transaction recipient
557
- * 2. Check, if recipient already has an identity proof document
558
- * 3. If not, send identity proof document together with transaction
559
- * 4. else, send just transaction itself
560
- *
621
+ * Relay hot path — pure byte ops, no VM:
622
+ * 1. Authorize the sender by connection identity (must be registered).
623
+ * 2. Route on the frame's `to`; flip the type byte in place.
624
+ * 3. Forward the frame verbatim (or queue it as pending if the recipient is absent).
625
+ * The inner message is opaque to the broker; the recipient verifies it.
561
626
  */
562
627
  #w2b_transaction_v1_handler(task) {
563
- AdaptObjectBuilder.execute_and_collect_garbage(builder => {
564
- const message = builder.Attach(task.data);
565
- const message_body = builder.Attach(Protocol.GetBody(message));
566
- let envlp = builder.Attach(message_body.Reduce(Protocol.FieldName.envlp));
567
- const to = builder.Attach(Protocol.GetTo(message)).Visualize();
568
- const from = builder.Attach(Protocol.GetFrom(message)).Visualize();
569
- if (from in this.#connections_by_cid === false) {
570
- throw new AdaptProtocolError(AdaptProtocolErrorType.LOGIC_ERROR, "Received message from unregistered packet");
571
- }
572
- let from_packet_connection = this.#connections_by_cid[from];
573
- let from_packet_info = from_packet_connection.packet_info;
574
- const ip_document = from_packet_info.adapt_identity_proof_document; // ip document here is already validated by the broker
575
- const attach_ip_document = from_packet_info.ip_should_be_attached(to);
576
- from_packet_info.add_connected_container(to); // What if message would not be sent(connection error, etc.), there should be a way to request ip document of the another container from broker
577
- logging.debug("Identity proof document should be attached: ", attach_ip_document);
578
- if (attach_ip_document) {
579
- envlp = builder.Attach(Protocol.SetIdentityProofDocumentToEnvelope(envlp, ip_document));
580
- }
581
- let args = builder.Attach(Protocol.GetProtocolContainer().CreateDictionary().Mutate(Protocol.FieldName.envlp, envlp));
582
- const send_message = Protocol.CreateProtocolMessage(Protocol.MessageName.b2w_exec_transaction, { from: builder.AdaptValue.New(from), to: builder.AdaptValue.New(to), body: args }).Detach();
583
- if (to in this.#connections_by_cid) {
584
- try {
585
- this.#connections_by_cid[to].send(send_message);
586
- send_message.Destroy();
587
- }
588
- catch (e) {
589
- logging.error("Failed to send transaction message to container ", to, ": ", e instanceof Error ? e.message : e);
590
- this.#add_pending_message(send_message, to);
591
- }
628
+ const sender = this.#connections[task.connection_id];
629
+ if (!sender || sender.managed_packets.size === 0)
630
+ throw new AdaptProtocolError(AdaptProtocolErrorType.LOGIC_ERROR, "Received transaction from unregistered connection");
631
+ const to = task.to_hex;
632
+ const frame = task.frame;
633
+ patchFrameType(frame, Protocol.MessageName.b2w_exec_transaction);
634
+ const recipient = this.#connections_by_cid[to];
635
+ if (recipient) {
636
+ try {
637
+ recipient.send_frame(frame);
592
638
  }
593
- else {
594
- this.#add_pending_message(send_message, to);
639
+ catch (e) {
640
+ logging.error("Failed to send transaction message to container ", to, ": ", e instanceof Error ? e.message : e);
641
+ this.#add_pending_message(frame, to);
595
642
  }
596
- });
643
+ }
644
+ else {
645
+ this.#add_pending_message(frame, to);
646
+ }
597
647
  }
598
648
  }
599
649
  //# sourceMappingURL=broker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../src/utilities/broker/broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../src/utilities/broker/broker.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AdaptProtocolWebSocketClient } from '../common/index.js';
1
+ import { AdaptProtocolWebSocketClient, IncomingFrame } from '../common/index.js';
2
2
  import { AdaptValue } from '@adapt-toolkit/sdk/backend';
3
3
  import * as async from 'async';
4
4
  type EventKind = 'broker_message_in' | 'broker_message_out' | 'adapt_message_in' | 'adapt_message_out';
@@ -11,7 +11,8 @@ export interface IAdaptWrapperBrokerClientAPI {
11
11
  register_callback_broker(cb: (message: AdaptValue) => void): void;
12
12
  broker_client_ready(): void;
13
13
  broker_connection_lost(): void;
14
- collect_registration_messages(): AdaptValue[];
14
+ collect_registration_messages(nonce: AdaptValue): AdaptValue[];
15
+ create_registration_message_for(container_id: string, nonce: AdaptValue): AdaptValue | undefined;
15
16
  }
16
17
  export declare class BrokerClient extends AdaptProtocolWebSocketClient<Event> {
17
18
  #private;
@@ -28,8 +29,10 @@ export declare class BrokerClient extends AdaptProtocolWebSocketClient<Event> {
28
29
  start: () => void;
29
30
  on_open(): void;
30
31
  on_error(error: Error): void;
31
- on_message(data: AdaptValue): void;
32
+ on_message(incoming: IncomingFrame): void;
32
33
  on_close(): void;
34
+ stop(): void;
35
+ register_packet(container_id: string): void;
33
36
  worker(task: Event, cb: async.ErrorCallback): void;
34
37
  }
35
38
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"broker_client.d.ts","sourceRoot":"","sources":["../../../src/utilities/broker/broker_client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAwB,MAAM,oBAAoB,CAAA;AAEvF,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,KAAK,SAAS,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,CAAA;AACtG,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAA;AAElD,MAAM,WAAW,4BAA4B;IACzC,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/C,wBAAwB,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAA;IACjE,mBAAmB,IAAI,IAAI,CAAA;IAC3B,sBAAsB,IAAI,IAAI,CAAA;IAC9B,6BAA6B,IAAI,UAAU,EAAE,CAAA;CAChD;AAED,qBAAa,YAAa,SAAQ,4BAA4B,CAAC,KAAK,CAAC;;IACjE,aAAa,EAAE,4BAA4B,CAAA;IAC3C,WAAW,EAAE,OAAO,CAAQ;IAC5B,OAAO,CAAC,gBAAgB,CAAmB;gBAG/B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B;IASlE,YAAY,CAAC,CAAC,EAAE,UAAU;IAI1B;;;OAGG;IACH,cAAc,GAAI,MAAM,UAAU,UAgBjC;IAED,KAAK,aAGJ;IAEQ,OAAO;IAIP,QAAQ,CAAC,KAAK,EAAE,KAAK;IAI9B,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IASzB,QAAQ,IAAI,IAAI;IAuChB,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,aAAa;CA8BvD"}
1
+ {"version":3,"file":"broker_client.d.ts","sourceRoot":"","sources":["../../../src/utilities/broker/broker_client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,aAAa,EAAwB,MAAM,oBAAoB,CAAA;AAGtG,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,KAAK,SAAS,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,mBAAmB,CAAA;AACtG,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAA;AAElD,MAAM,WAAW,4BAA4B;IACzC,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/C,wBAAwB,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAA;IACjE,mBAAmB,IAAI,IAAI,CAAA;IAC3B,sBAAsB,IAAI,IAAI,CAAA;IAC9B,6BAA6B,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,CAAA;IAC9D,+BAA+B,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAA;CACnG;AAED,qBAAa,YAAa,SAAQ,4BAA4B,CAAC,KAAK,CAAC;;IACjE,aAAa,EAAE,4BAA4B,CAAA;IAC3C,WAAW,EAAE,OAAO,CAAQ;IAC5B,OAAO,CAAC,gBAAgB,CAAmB;gBAK/B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B;IASlE,YAAY,CAAC,CAAC,EAAE,UAAU;IAI1B;;;OAGG;IACH,cAAc,GAAI,MAAM,UAAU,UAgBjC;IAED,KAAK,aAGJ;IAEQ,OAAO;IAIP,QAAQ,CAAC,KAAK,EAAE,KAAK;IAe9B,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAyBhC,QAAQ,IAAI,IAAI;IAUhB,IAAI;IA4Cb,eAAe,CAAC,YAAY,EAAE,MAAM;IAwB3B,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,aAAa;CA8BvD"}