@peerbit/pubsub 5.3.11 → 5.4.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.
Files changed (50) hide show
  1. package/dist/src/index.d.ts +31 -13
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +622 -145
  4. package/dist/src/index.js.map +1 -1
  5. package/package.json +8 -7
  6. package/src/index.ts +914 -216
  7. package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.d.ts +0 -3
  8. package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.d.ts.map +0 -1
  9. package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.js +0 -90
  10. package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.js.map +0 -1
  11. package/dist/benchmark/fanout-tree-parent-upgrade-eval.d.ts +0 -2
  12. package/dist/benchmark/fanout-tree-parent-upgrade-eval.d.ts.map +0 -1
  13. package/dist/benchmark/fanout-tree-parent-upgrade-eval.js +0 -712
  14. package/dist/benchmark/fanout-tree-parent-upgrade-eval.js.map +0 -1
  15. package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.d.ts +0 -2
  16. package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.d.ts.map +0 -1
  17. package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.js +0 -1591
  18. package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.js.map +0 -1
  19. package/dist/benchmark/fanout-tree-parent-upgrade-prepush.d.ts +0 -2
  20. package/dist/benchmark/fanout-tree-parent-upgrade-prepush.d.ts.map +0 -1
  21. package/dist/benchmark/fanout-tree-parent-upgrade-prepush.js +0 -297
  22. package/dist/benchmark/fanout-tree-parent-upgrade-prepush.js.map +0 -1
  23. package/dist/benchmark/fanout-tree-parent-upgrade-preset.d.ts +0 -73
  24. package/dist/benchmark/fanout-tree-parent-upgrade-preset.d.ts.map +0 -1
  25. package/dist/benchmark/fanout-tree-parent-upgrade-preset.js +0 -183
  26. package/dist/benchmark/fanout-tree-parent-upgrade-preset.js.map +0 -1
  27. package/dist/benchmark/fanout-tree-sim-lib.d.ts +0 -303
  28. package/dist/benchmark/fanout-tree-sim-lib.d.ts.map +0 -1
  29. package/dist/benchmark/fanout-tree-sim-lib.js +0 -1752
  30. package/dist/benchmark/fanout-tree-sim-lib.js.map +0 -1
  31. package/dist/benchmark/fanout-tree-sim.d.ts +0 -2
  32. package/dist/benchmark/fanout-tree-sim.d.ts.map +0 -1
  33. package/dist/benchmark/fanout-tree-sim.js +0 -870
  34. package/dist/benchmark/fanout-tree-sim.js.map +0 -1
  35. package/dist/benchmark/index.d.ts +0 -8
  36. package/dist/benchmark/index.d.ts.map +0 -1
  37. package/dist/benchmark/index.js +0 -62
  38. package/dist/benchmark/index.js.map +0 -1
  39. package/dist/benchmark/pubsub-topic-sim-lib.d.ts +0 -86
  40. package/dist/benchmark/pubsub-topic-sim-lib.d.ts.map +0 -1
  41. package/dist/benchmark/pubsub-topic-sim-lib.js +0 -680
  42. package/dist/benchmark/pubsub-topic-sim-lib.js.map +0 -1
  43. package/dist/benchmark/pubsub-topic-sim.d.ts +0 -9
  44. package/dist/benchmark/pubsub-topic-sim.d.ts.map +0 -1
  45. package/dist/benchmark/pubsub-topic-sim.js +0 -134
  46. package/dist/benchmark/pubsub-topic-sim.js.map +0 -1
  47. package/dist/benchmark/sim/bench-utils.d.ts +0 -25
  48. package/dist/benchmark/sim/bench-utils.d.ts.map +0 -1
  49. package/dist/benchmark/sim/bench-utils.js +0 -141
  50. package/dist/benchmark/sim/bench-utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"pubsub-topic-sim-lib.js","sourceRoot":"","sources":["../../benchmark/pubsub-topic-sim-lib.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * In-memory TopicControlPlane simulator (1 writer -> many subscribers).
3
- *
4
- * Goal: stress the real @peerbit/pubsub + @peerbit/stream code paths (routing,
5
- * ACK learning, backpressure/lanes, dialer/pruner) while avoiding real sockets
6
- * and heavy crypto costs.
7
- */
8
- export {};
9
- //# sourceMappingURL=pubsub-topic-sim.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pubsub-topic-sim.d.ts","sourceRoot":"","sources":["../../benchmark/pubsub-topic-sim.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -1,134 +0,0 @@
1
- /**
2
- * In-memory TopicControlPlane simulator (1 writer -> many subscribers).
3
- *
4
- * Goal: stress the real @peerbit/pubsub + @peerbit/stream code paths (routing,
5
- * ACK learning, backpressure/lanes, dialer/pruner) while avoiding real sockets
6
- * and heavy crypto costs.
7
- */
8
- import { formatPubsubTopicSimResult, resolvePubsubTopicSimParams, runPubsubTopicSim, } from "./pubsub-topic-sim-lib.js";
9
- const parseArgs = (argv) => {
10
- const get = (key) => {
11
- const idx = argv.indexOf(key);
12
- if (idx === -1)
13
- return undefined;
14
- return argv[idx + 1];
15
- };
16
- const has = (key) => argv.includes(key);
17
- if (argv.includes("--help") || argv.includes("-h")) {
18
- console.log([
19
- "pubsub-topic-sim.ts",
20
- "",
21
- "Args:",
22
- " --nodes N total nodes (default: 2000)",
23
- " --degree K target undirected degree (default: 6)",
24
- " --writerIndex I writer node index (default: 0)",
25
- " --fanoutTopic 0|1 use fanout-backed topic delivery (default: 0)",
26
- " --fanoutRootIndex I fanout root node index (default: writerIndex)",
27
- " --subscribers N number of subscribers (default: nodes-1)",
28
- " --messages M messages to publish (default: 200)",
29
- " --msgSize BYTES payload bytes (default: 1024)",
30
- " --intervalMs MS delay between publishes (default: 0)",
31
- " --strict 0|1 alias for --silent (default: 0)",
32
- " --silent 0|1 publish with SilentDelivery (default: 0)",
33
- " --redundancy R stream redundancy (default: 2)",
34
- " --seed S RNG seed (default: 1)",
35
- " --topic NAME topic name (default: concert)",
36
- " --subscribeModel real|preseed (default: preseed)",
37
- " --subscriptionDebounceDelayMs MS (default: 0)",
38
- " --relayFraction F fraction of non-router nodes promoted to relays (default: 0.25)",
39
- " --relayMaxChildren N maxChildren for promoted relays (default: 32)",
40
- " --joinTimeoutMs MS fanout join timeout override (default: 0 = library default)",
41
- " --minDeliveredPct P fail (exit 2) if deliveredPct < P (default: 0 = no assert)",
42
- " --warmupMs MS warmup delay before measuring (default: 0)",
43
- " --warmupMessages N warmup messages before measuring (default: 0)",
44
- " --settleMs MS time to wait for delivery after publish (default: 200)",
45
- " --timeoutMs MS global timeout (default: 300000)",
46
- " --dialConcurrency N dial concurrency (default: 256)",
47
- " --dialer 0|1 enable stream autodial (default: 0)",
48
- " --pruner 0|1 enable stream pruning (default: 0)",
49
- " --prunerIntervalMs MS (default: 50)",
50
- " --prunerMaxBufferBytes BYTES (default: 65536)",
51
- " --dialDelayMs MS artificial dial delay (default: 0)",
52
- " --streamRxDelayMs MS per-chunk inbound delay in shim (default: 0)",
53
- " --streamHighWaterMarkBytes B backpressure threshold (default: 262144)",
54
- " --dropDataFrameRate P drop rate for stream data frames (default: 0)",
55
- " --maxLatencySamples N reservoir sample size (default: 1000000)",
56
- " --churnEveryMs MS churn interval (default: 0, off)",
57
- " --churnDownMs MS offline duration per churn (default: 0, off)",
58
- " --churnFraction F fraction to churn per event (default: 0, off)",
59
- " --churnRedialIntervalMs MS graph redial tick (default: 50)",
60
- " --churnRedialConcurrency N redial concurrency (default: 128)",
61
- "",
62
- "Examples:",
63
- " pnpm -C packages/transport/pubsub run bench -- topic-sim --nodes 3 --degree 2 --subscribers 2 --messages 5 --msgSize 32 --intervalMs 0 --seed 1 --subscribeModel preseed",
64
- " pnpm -C packages/transport/pubsub run bench -- topic-sim --nodes 2000 --degree 6 --subscribers 1500 --messages 200 --msgSize 1024 --intervalMs 0 --seed 1 --subscribeModel preseed",
65
- ].join("\n"));
66
- process.exit(0);
67
- }
68
- const nodes = Number(get("--nodes") ?? 2000);
69
- const strict = has("--strict") ? String(get("--strict") ?? "0") === "1" : undefined;
70
- const silent = has("--silent") ? String(get("--silent") ?? "0") === "1" : undefined;
71
- return resolvePubsubTopicSimParams({
72
- nodes,
73
- degree: Number(get("--degree") ?? 6),
74
- writerIndex: Number(get("--writerIndex") ?? 0),
75
- fanoutTopic: String(get("--fanoutTopic") ?? "0") === "1",
76
- fanoutRootIndex: Number(get("--fanoutRootIndex") ?? Number(get("--writerIndex") ?? 0)),
77
- subscribers: Number(get("--subscribers") ?? nodes - 1),
78
- messages: Number(get("--messages") ?? 200),
79
- msgSize: Number(get("--msgSize") ?? 1024),
80
- intervalMs: Number(get("--intervalMs") ?? 0),
81
- silent: silent ?? strict ?? false,
82
- redundancy: Number(get("--redundancy") ?? 2),
83
- seed: Number(get("--seed") ?? 1),
84
- topic: String(get("--topic") ?? "concert"),
85
- subscribeModel: String(get("--subscribeModel") ?? "preseed") ?? "preseed",
86
- subscriptionDebounceDelayMs: Number(get("--subscriptionDebounceDelayMs") ?? 0),
87
- relayFraction: Number(get("--relayFraction") ?? 0.25),
88
- relayMaxChildren: Number(get("--relayMaxChildren") ?? 32),
89
- joinTimeoutMs: Number(get("--joinTimeoutMs") ?? 0),
90
- minDeliveredPct: Number(get("--minDeliveredPct") ?? 0),
91
- warmupMs: Number(get("--warmupMs") ?? 0),
92
- warmupMessages: Number(get("--warmupMessages") ?? 0),
93
- settleMs: Number(get("--settleMs") ?? 200),
94
- timeoutMs: Number(get("--timeoutMs") ?? 300_000),
95
- dialConcurrency: Number(get("--dialConcurrency") ?? 256),
96
- dialer: String(get("--dialer") ?? "0") === "1",
97
- pruner: String(get("--pruner") ?? "0") === "1",
98
- prunerIntervalMs: Number(get("--prunerIntervalMs") ?? 50),
99
- prunerMaxBufferBytes: Number(get("--prunerMaxBufferBytes") ?? 64 * 1024),
100
- dialDelayMs: Number(get("--dialDelayMs") ?? 0),
101
- streamRxDelayMs: Number(get("--streamRxDelayMs") ?? 0),
102
- streamHighWaterMarkBytes: Number(get("--streamHighWaterMarkBytes") ?? 256 * 1024),
103
- dropDataFrameRate: Number(get("--dropDataFrameRate") ?? 0),
104
- maxLatencySamples: Number(get("--maxLatencySamples") ?? 1_000_000),
105
- churnEveryMs: Number(get("--churnEveryMs") ?? 0),
106
- churnDownMs: Number(get("--churnDownMs") ?? 0),
107
- churnFraction: Number(get("--churnFraction") ?? 0),
108
- churnRedialIntervalMs: Number(get("--churnRedialIntervalMs") ?? 50),
109
- churnRedialConcurrency: Number(get("--churnRedialConcurrency") ?? 128),
110
- });
111
- };
112
- const main = async () => {
113
- const params = parseArgs(process.argv.slice(2));
114
- const result = await runPubsubTopicSim(params);
115
- console.log(formatPubsubTopicSimResult(result));
116
- if (params.minDeliveredPct > 0 &&
117
- result.deliveredPct < params.minDeliveredPct) {
118
- console.error(`ASSERT FAILED: deliveredPct ${result.deliveredPct.toFixed(2)} < ${params.minDeliveredPct}`);
119
- process.exit(2);
120
- }
121
- };
122
- // Backstop: report stray rejections with context instead of Node's bare crash.
123
- process.on("unhandledRejection", (reason) => {
124
- console.error(`UNHANDLED REJECTION: ${reason?.message ?? reason}`);
125
- process.exit(1);
126
- });
127
- try {
128
- await main();
129
- }
130
- catch (e) {
131
- console.error(e?.message ?? e);
132
- process.exit(String(e?.message ?? "").includes("timed out") ? 124 : 1);
133
- }
134
- //# sourceMappingURL=pubsub-topic-sim.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pubsub-topic-sim.js","sourceRoot":"","sources":["../../benchmark/pubsub-topic-sim.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACN,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,GACjB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,SAAS,GAAG,CAAC,IAAc,EAAE,EAAE;IACpC,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QACjC,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEhD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CACV;YACC,qBAAqB;YACrB,EAAE;YACF,OAAO;YACP,6DAA6D;YAC7D,uEAAuE;YACvE,gEAAgE;YAChE,+EAA+E;YAC/E,+EAA+E;YAC/E,0EAA0E;YAC1E,oEAAoE;YACpE,+DAA+D;YAC/D,sEAAsE;YACtE,iEAAiE;YACjE,0EAA0E;YAC1E,gEAAgE;YAChE,uDAAuD;YACvD,+DAA+D;YAC/D,oDAAoD;YACpD,iDAAiD;YACjD,iGAAiG;YACjG,+EAA+E;YAC/E,6FAA6F;YAC7F,4FAA4F;YAC5F,4EAA4E;YAC5E,+EAA+E;YAC/E,wFAAwF;YACxF,kEAAkE;YAClE,iEAAiE;YACjE,qEAAqE;YACrE,oEAAoE;YACpE,+CAA+C;YAC/C,kDAAkD;YAClD,oEAAoE;YACpE,8EAA8E;YAC9E,0EAA0E;YAC1E,+EAA+E;YAC/E,0EAA0E;YAC1E,kEAAkE;YAClE,8EAA8E;YAC9E,+EAA+E;YAC/E,iEAAiE;YACjE,mEAAmE;YACnE,EAAE;YACF,WAAW;YACX,4KAA4K;YAC5K,sLAAsL;SACtL,CAAC,IAAI,CAAC,IAAI,CAAC,CACZ,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAEpF,OAAO,2BAA2B,CAAC;QAClC,KAAK;QACL,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9C,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG;QACxD,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACtF,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QACtD,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;QAC1C,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;QACzC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,EAAE,MAAM,IAAI,MAAM,IAAI,KAAK;QACjC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;QAC1C,cAAc,EAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAS,IAAI,SAAS;QAClF,2BAA2B,EAAE,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;QAC9E,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;QACrD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACzD,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAClD,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACtD,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACxC,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;QAC1C,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC;QAChD,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC;QACxD,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG;QAC9C,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG;QAC9C,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACzD,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;QACxE,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9C,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACtD,wBAAwB,EAAE,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC;QACjF,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC1D,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,SAAS,CAAC;QAClE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChD,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9C,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAClD,qBAAqB,EAAE,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;QACnE,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,GAAG,CAAC;KACtE,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IACvB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,IACC,MAAM,CAAC,eAAe,GAAG,CAAC;QAC1B,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,eAAe,EAC3C,CAAC;QACF,OAAO,CAAC,KAAK,CACZ,+BAA+B,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,eAAe,EAAE,CAC3F,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC,CAAC;AAEF,+EAA+E;AAC/E,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAW,EAAE,EAAE;IAChD,OAAO,CAAC,KAAK,CAAC,wBAAwB,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC;IACJ,MAAM,IAAI,EAAE,CAAC;AACd,CAAC;AAAC,OAAO,CAAM,EAAE,CAAC;IACjB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC"}
@@ -1,25 +0,0 @@
1
- export declare const BENCH_ID_PREFIX: Uint8Array<ArrayBuffer>;
2
- export declare const isBenchId: (id: Uint8Array) => boolean;
3
- export declare const writeU32BE: (buf: Uint8Array, offset: number, value: number) => void;
4
- export declare const readU32BE: (buf: Uint8Array, offset: number) => number;
5
- export declare const mulberry32: (seed: number) => () => number;
6
- export declare const int: (rng: () => number, maxExclusive: number) => number;
7
- export declare const quantile: (sorted: number[], q: number) => number;
8
- export declare const buildRandomGraph: (n: number, targetDegree: number, rng: () => number) => number[][];
9
- export declare const runWithConcurrency: <T>(tasks: Array<() => Promise<T>>, concurrency: number) => Promise<T[]>;
10
- type ProtocolNode = {
11
- multicodecs: string[];
12
- components: {
13
- connectionManager: {
14
- getConnections: () => Array<{
15
- streams: Array<{
16
- protocol?: string;
17
- direction?: string;
18
- }>;
19
- }>;
20
- };
21
- };
22
- };
23
- export declare const waitForProtocolStreams: (nodes: ProtocolNode[], timeoutMs?: number) => Promise<void>;
24
- export {};
25
- //# sourceMappingURL=bench-utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bench-utils.d.ts","sourceRoot":"","sources":["../../../benchmark/sim/bench-utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,yBAA4C,CAAC;AAEzE,eAAO,MAAM,SAAS,GAAI,IAAI,UAAU,YAKX,CAAC;AAE9B,eAAO,MAAM,UAAU,GAAI,KAAK,UAAU,EAAE,QAAQ,MAAM,EAAE,OAAO,MAAM,SAKxE,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,KAAK,UAAU,EAAE,QAAQ,MAAM,WAIjC,CAAC;AAEzB,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,iBAStC,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,MAAM,EAAE,cAAc,MAAM,WAC1B,CAAC;AAElC,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,EAAE,EAAE,GAAG,MAAM,WAOnD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC5B,GAAG,MAAM,EACT,cAAc,MAAM,EACpB,KAAK,MAAM,MAAM,KACf,MAAM,EAAE,EA4DV,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,CAAC,EACzC,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAC9B,aAAa,MAAM,KACjB,OAAO,CAAC,CAAC,EAAE,CAYb,CAAC;AAEF,KAAK,YAAY,GAAG;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE;QACX,iBAAiB,EAAE;YAClB,cAAc,EAAE,MAAM,KAAK,CAAC;gBAC3B,OAAO,EAAE,KAAK,CAAC;oBAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;oBAAC,SAAS,CAAC,EAAE,MAAM,CAAA;iBAAE,CAAC,CAAC;aAC1D,CAAC,CAAC;SACH,CAAC;KACF,CAAC;CACF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAClC,OAAO,YAAY,EAAE,EACrB,kBAAkB,kBA+BlB,CAAC"}
@@ -1,141 +0,0 @@
1
- import { delay } from "@peerbit/time";
2
- export const BENCH_ID_PREFIX = Uint8Array.from([0x50, 0x53, 0x49, 0x4d]); // "PSIM"
3
- export const isBenchId = (id) => id.length === 32 &&
4
- id[0] === BENCH_ID_PREFIX[0] &&
5
- id[1] === BENCH_ID_PREFIX[1] &&
6
- id[2] === BENCH_ID_PREFIX[2] &&
7
- id[3] === BENCH_ID_PREFIX[3];
8
- export const writeU32BE = (buf, offset, value) => {
9
- buf[offset + 0] = (value >>> 24) & 0xff;
10
- buf[offset + 1] = (value >>> 16) & 0xff;
11
- buf[offset + 2] = (value >>> 8) & 0xff;
12
- buf[offset + 3] = value & 0xff;
13
- };
14
- export const readU32BE = (buf, offset) => ((buf[offset + 0] << 24) |
15
- (buf[offset + 1] << 16) |
16
- (buf[offset + 2] << 8) |
17
- buf[offset + 3]) >>> 0;
18
- export const mulberry32 = (seed) => {
19
- let t = seed >>> 0;
20
- return () => {
21
- t += 0x6d2b79f5;
22
- let x = t;
23
- x = Math.imul(x ^ (x >>> 15), x | 1);
24
- x ^= x + Math.imul(x ^ (x >>> 7), x | 61);
25
- return ((x ^ (x >>> 14)) >>> 0) / 4294967296;
26
- };
27
- };
28
- export const int = (rng, maxExclusive) => Math.floor(rng() * maxExclusive);
29
- export const quantile = (sorted, q) => {
30
- if (sorted.length === 0)
31
- return NaN;
32
- const idx = Math.min(sorted.length - 1, Math.max(0, Math.floor(q * (sorted.length - 1))));
33
- return sorted[idx];
34
- };
35
- export const buildRandomGraph = (n, targetDegree, rng) => {
36
- if (n <= 0)
37
- throw new Error("nodes must be > 0");
38
- if (targetDegree < 0)
39
- throw new Error("degree must be >= 0");
40
- if (targetDegree >= n) {
41
- throw new Error("degree must be < nodes for a simple graph");
42
- }
43
- const adj = Array.from({ length: n }, () => new Set());
44
- const degree = new Uint16Array(n);
45
- const connect = (a, b) => {
46
- if (a === b)
47
- return false;
48
- if (adj[a].has(b))
49
- return false;
50
- if (degree[a] >= targetDegree || degree[b] >= targetDegree)
51
- return false;
52
- adj[a].add(b);
53
- adj[b].add(a);
54
- degree[a] += 1;
55
- degree[b] += 1;
56
- return true;
57
- };
58
- // Seed connectivity.
59
- if (targetDegree >= 2 && n >= 3) {
60
- for (let i = 0; i < n; i++)
61
- connect(i, (i + 1) % n);
62
- }
63
- else if (targetDegree >= 1 && n >= 2) {
64
- for (let i = 0; i < n - 1; i++)
65
- connect(i, i + 1);
66
- }
67
- const available = [];
68
- const pos = new Int32Array(n).fill(-1);
69
- for (let i = 0; i < n; i++) {
70
- if (degree[i] < targetDegree) {
71
- pos[i] = available.length;
72
- available.push(i);
73
- }
74
- }
75
- const removeAvailable = (id) => {
76
- const p = pos[id];
77
- if (p < 0)
78
- return;
79
- const last = available.pop();
80
- if (last !== id) {
81
- available[p] = last;
82
- pos[last] = p;
83
- }
84
- pos[id] = -1;
85
- };
86
- const maxAttempts = n * Math.max(1, targetDegree) * 200;
87
- let attempts = 0;
88
- while (available.length > 1 && attempts < maxAttempts) {
89
- attempts++;
90
- const a = available[int(rng, available.length)];
91
- const b = available[int(rng, available.length)];
92
- if (a === b)
93
- continue;
94
- if (!connect(a, b))
95
- continue;
96
- if (degree[a] >= targetDegree)
97
- removeAvailable(a);
98
- if (degree[b] >= targetDegree)
99
- removeAvailable(b);
100
- }
101
- return adj.map((s) => [...s]);
102
- };
103
- export const runWithConcurrency = async (tasks, concurrency) => {
104
- const results = new Array(tasks.length);
105
- let index = 0;
106
- const workers = Array.from({ length: Math.max(1, concurrency) }, async () => {
107
- for (;;) {
108
- const i = index++;
109
- if (i >= tasks.length)
110
- return;
111
- results[i] = await tasks[i]();
112
- }
113
- });
114
- await Promise.all(workers);
115
- return results;
116
- };
117
- export const waitForProtocolStreams = async (nodes, timeoutMs = 30_000) => {
118
- const start = Date.now();
119
- while (Date.now() - start < timeoutMs) {
120
- let missing = 0;
121
- for (const node of nodes) {
122
- const protocols = node.multicodecs;
123
- for (const conn of node.components.connectionManager.getConnections()) {
124
- const streams = conn.streams;
125
- const hasOutbound = streams.some((s) => s.protocol &&
126
- protocols.includes(s.protocol) &&
127
- s.direction === "outbound");
128
- const hasInbound = streams.some((s) => s.protocol &&
129
- protocols.includes(s.protocol) &&
130
- s.direction === "inbound");
131
- if (!hasOutbound || !hasInbound)
132
- missing++;
133
- }
134
- }
135
- if (missing === 0)
136
- return;
137
- await delay(0);
138
- }
139
- throw new Error("Timeout waiting for protocol streams to become duplex");
140
- };
141
- //# sourceMappingURL=bench-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bench-utils.js","sourceRoot":"","sources":["../../../benchmark/sim/bench-utils.ts"],"names":[],"mappings":"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"}