@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.
- package/dist/src/index.d.ts +31 -13
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +622 -145
- package/dist/src/index.js.map +1 -1
- package/package.json +8 -7
- package/src/index.ts +914 -216
- package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.d.ts +0 -3
- package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.d.ts.map +0 -1
- package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.js +0 -90
- package/dist/benchmark/fanout-tree-parent-upgrade-default-ready.js.map +0 -1
- package/dist/benchmark/fanout-tree-parent-upgrade-eval.d.ts +0 -2
- package/dist/benchmark/fanout-tree-parent-upgrade-eval.d.ts.map +0 -1
- package/dist/benchmark/fanout-tree-parent-upgrade-eval.js +0 -712
- package/dist/benchmark/fanout-tree-parent-upgrade-eval.js.map +0 -1
- package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.d.ts +0 -2
- package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.d.ts.map +0 -1
- package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.js +0 -1591
- package/dist/benchmark/fanout-tree-parent-upgrade-multi-eval.js.map +0 -1
- package/dist/benchmark/fanout-tree-parent-upgrade-prepush.d.ts +0 -2
- package/dist/benchmark/fanout-tree-parent-upgrade-prepush.d.ts.map +0 -1
- package/dist/benchmark/fanout-tree-parent-upgrade-prepush.js +0 -297
- package/dist/benchmark/fanout-tree-parent-upgrade-prepush.js.map +0 -1
- package/dist/benchmark/fanout-tree-parent-upgrade-preset.d.ts +0 -73
- package/dist/benchmark/fanout-tree-parent-upgrade-preset.d.ts.map +0 -1
- package/dist/benchmark/fanout-tree-parent-upgrade-preset.js +0 -183
- package/dist/benchmark/fanout-tree-parent-upgrade-preset.js.map +0 -1
- package/dist/benchmark/fanout-tree-sim-lib.d.ts +0 -303
- package/dist/benchmark/fanout-tree-sim-lib.d.ts.map +0 -1
- package/dist/benchmark/fanout-tree-sim-lib.js +0 -1752
- package/dist/benchmark/fanout-tree-sim-lib.js.map +0 -1
- package/dist/benchmark/fanout-tree-sim.d.ts +0 -2
- package/dist/benchmark/fanout-tree-sim.d.ts.map +0 -1
- package/dist/benchmark/fanout-tree-sim.js +0 -870
- package/dist/benchmark/fanout-tree-sim.js.map +0 -1
- package/dist/benchmark/index.d.ts +0 -8
- package/dist/benchmark/index.d.ts.map +0 -1
- package/dist/benchmark/index.js +0 -62
- package/dist/benchmark/index.js.map +0 -1
- package/dist/benchmark/pubsub-topic-sim-lib.d.ts +0 -86
- package/dist/benchmark/pubsub-topic-sim-lib.d.ts.map +0 -1
- package/dist/benchmark/pubsub-topic-sim-lib.js +0 -680
- package/dist/benchmark/pubsub-topic-sim-lib.js.map +0 -1
- package/dist/benchmark/pubsub-topic-sim.d.ts +0 -9
- package/dist/benchmark/pubsub-topic-sim.d.ts.map +0 -1
- package/dist/benchmark/pubsub-topic-sim.js +0 -134
- package/dist/benchmark/pubsub-topic-sim.js.map +0 -1
- package/dist/benchmark/sim/bench-utils.d.ts +0 -25
- package/dist/benchmark/sim/bench-utils.d.ts.map +0 -1
- package/dist/benchmark/sim/bench-utils.js +0 -141
- 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":"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"}
|
|
@@ -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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"}
|