@lodestar/beacon-node 1.19.0-dev.ab10788c3a → 1.19.0-dev.b439da2f6e

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 (97) hide show
  1. package/README.md +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +2 -2
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/rest/base.js +0 -1
  5. package/lib/api/rest/base.js.map +1 -1
  6. package/lib/chain/blocks/importBlock.js +17 -7
  7. package/lib/chain/blocks/importBlock.js.map +1 -1
  8. package/lib/chain/blocks/index.js +2 -2
  9. package/lib/chain/blocks/index.js.map +1 -1
  10. package/lib/chain/blocks/types.d.ts +10 -2
  11. package/lib/chain/blocks/types.js +10 -1
  12. package/lib/chain/blocks/types.js.map +1 -1
  13. package/lib/chain/blocks/verifyBlock.d.ts +1 -0
  14. package/lib/chain/blocks/verifyBlock.js +2 -2
  15. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  16. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts +1 -0
  17. package/lib/chain/blocks/verifyBlocksDataAvailability.js +10 -7
  18. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  19. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +3 -0
  20. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  21. package/lib/chain/blocks/verifyBlocksSignatures.js +3 -3
  22. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  23. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +3 -2
  24. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  25. package/lib/chain/bls/index.d.ts +3 -2
  26. package/lib/chain/bls/index.js +1 -1
  27. package/lib/chain/bls/index.js.map +1 -1
  28. package/lib/chain/bls/{multithread/jobItem.d.ts → jobItem.d.ts} +3 -3
  29. package/lib/chain/bls/{multithread/jobItem.js → jobItem.js} +12 -5
  30. package/lib/chain/bls/jobItem.js.map +1 -0
  31. package/lib/chain/bls/{multithread/index.d.ts → multiThread.d.ts} +5 -10
  32. package/lib/chain/bls/{multithread/index.js → multiThread.js} +46 -130
  33. package/lib/chain/bls/multiThread.js.map +1 -0
  34. package/lib/chain/bls/runBlsWorkReq.d.ts +3 -0
  35. package/lib/chain/bls/{multithread/worker.js → runBlsWorkReq.js} +9 -32
  36. package/lib/chain/bls/runBlsWorkReq.js.map +1 -0
  37. package/lib/chain/bls/singleThread.js +3 -3
  38. package/lib/chain/bls/singleThread.js.map +1 -1
  39. package/lib/chain/bls/{multithread/types.d.ts → types.d.ts} +11 -10
  40. package/lib/chain/bls/types.js.map +1 -0
  41. package/lib/chain/bls/utils.d.ts +12 -1
  42. package/lib/chain/bls/utils.js +35 -0
  43. package/lib/chain/bls/utils.js.map +1 -1
  44. package/lib/chain/bls/verifySets.d.ts +8 -0
  45. package/lib/chain/bls/verifySets.js +46 -0
  46. package/lib/chain/bls/verifySets.js.map +1 -0
  47. package/lib/chain/regen/regen.js +3 -3
  48. package/lib/chain/regen/regen.js.map +1 -1
  49. package/lib/chain/seenCache/seenGossipBlockInput.js +3 -3
  50. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  51. package/lib/chain/validation/aggregateAndProof.js +9 -0
  52. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  53. package/lib/metrics/metrics/lodestar.d.ts +4 -1
  54. package/lib/metrics/metrics/lodestar.js +5 -0
  55. package/lib/metrics/metrics/lodestar.js.map +1 -1
  56. package/lib/monitoring/clientStats.js +1 -1
  57. package/lib/monitoring/clientStats.js.map +1 -1
  58. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  59. package/lib/network/discv5/index.js.map +1 -1
  60. package/lib/network/gossip/encoding.d.ts +1 -1
  61. package/lib/network/gossip/encoding.js.map +1 -1
  62. package/lib/network/gossip/gossipsub.d.ts +1 -0
  63. package/lib/network/gossip/gossipsub.js +9 -5
  64. package/lib/network/gossip/gossipsub.js.map +1 -1
  65. package/lib/network/peers/client.d.ts +1 -0
  66. package/lib/network/peers/client.js +3 -0
  67. package/lib/network/peers/client.js.map +1 -1
  68. package/lib/network/processor/index.js +5 -4
  69. package/lib/network/processor/index.js.map +1 -1
  70. package/lib/network/reqresp/ReqRespBeaconNode.js +2 -1
  71. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  72. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +2 -2
  73. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +4 -4
  74. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
  75. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +4 -4
  76. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
  77. package/lib/util/eventLoop.d.ts +12 -0
  78. package/lib/util/eventLoop.js +21 -0
  79. package/lib/util/eventLoop.js.map +1 -0
  80. package/lib/util/queue/itemQueue.js +3 -3
  81. package/lib/util/queue/itemQueue.js.map +1 -1
  82. package/package.json +29 -31
  83. package/lib/chain/bls/maybeBatch.d.ts +0 -12
  84. package/lib/chain/bls/maybeBatch.js +0 -36
  85. package/lib/chain/bls/maybeBatch.js.map +0 -1
  86. package/lib/chain/bls/multithread/index.js.map +0 -1
  87. package/lib/chain/bls/multithread/jobItem.js.map +0 -1
  88. package/lib/chain/bls/multithread/poolSize.d.ts +0 -6
  89. package/lib/chain/bls/multithread/poolSize.js +0 -17
  90. package/lib/chain/bls/multithread/poolSize.js.map +0 -1
  91. package/lib/chain/bls/multithread/types.js.map +0 -1
  92. package/lib/chain/bls/multithread/utils.d.ts +0 -5
  93. package/lib/chain/bls/multithread/utils.js +0 -17
  94. package/lib/chain/bls/multithread/utils.js.map +0 -1
  95. package/lib/chain/bls/multithread/worker.d.ts +0 -2
  96. package/lib/chain/bls/multithread/worker.js.map +0 -1
  97. /package/lib/chain/bls/{multithread/types.js → types.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"verifyBlocksExecutionPayloads.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksExecutionPayloads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyBlocksExecutionPayloads.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksExecutionPayloads.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { getBlockSignatureSets } from "@lodestar/state-transition";
2
- import { sleep } from "@lodestar/utils";
3
2
  import { BlockError, BlockErrorCode } from "../errors/blockError.js";
3
+ import { nextEventLoop } from "../../util/eventLoop.js";
4
4
  /**
5
5
  * Verifies 1 or more block's signatures from a group of blocks in the same epoch.
6
6
  * getBlockSignatureSets() guarantees to return the correct signingRoots as long as all blocks belong in the same
@@ -24,10 +24,10 @@ export async function verifyBlocksSignatures(bls, logger, metrics, preState0, bl
24
24
  // Verify signatures per block to track which block is invalid
25
25
  bls.verifySignatureSets(getBlockSignatureSets(preState0, block, { skipProposerSignature: opts.validProposerSignature }));
26
26
  // getBlockSignatureSets() takes 45ms in benchmarks for 2022Q2 mainnet blocks (100 sigs). When syncing a 32 blocks
27
- // segments it will block the event loop for 1400 ms, which is too much. This sleep will allow the event loop to
27
+ // segments it will block the event loop for 1400 ms, which is too much. This call will allow the event loop to
28
28
  // yield, which will cause one block's state transition to run. However, the tradeoff is okay and doesn't slow sync
29
29
  if ((i + 1) % 8 === 0) {
30
- await sleep(0);
30
+ await nextEventLoop();
31
31
  }
32
32
  }
33
33
  // `rejectFirstInvalidResolveAllValid()` returns on isValid result with its index
@@ -1 +1 @@
1
- {"version":3,"file":"verifyBlocksSignatures.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksSignatures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyBlocksSignatures.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksSignatures.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { stateTransition, ExecutionPayloadStatus, StateHashTreeRootSource, } from "@lodestar/state-transition";
2
- import { ErrorAborted, sleep } from "@lodestar/utils";
2
+ import { ErrorAborted } from "@lodestar/utils";
3
3
  import { BlockError, BlockErrorCode } from "../errors/index.js";
4
4
  import { byteArrayEquals } from "../../util/bytes.js";
5
+ import { nextEventLoop } from "../../util/eventLoop.js";
5
6
  /**
6
7
  * Verifies 1 or more blocks are fully valid running the full state transition; from a linear sequence of blocks.
7
8
  *
@@ -59,7 +60,7 @@ export async function verifyBlocksStateTransitionOnly(preState0, blocks, dataAva
59
60
  }
60
61
  // this avoids keeping our node busy processing blocks
61
62
  if (i < blocks.length - 1) {
62
- await sleep(0);
63
+ await nextEventLoop();
63
64
  }
64
65
  }
65
66
  const verifyStateTime = Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"verifyBlocksStateTransitionOnly.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksStateTransitionOnly.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyBlocksStateTransitionOnly.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksStateTransitionOnly.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export type { IBlsVerifier } from "./interface.js";
2
- export type { BlsMultiThreadWorkerPoolModules, JobQueueItemType } from "./multithread/index.js";
3
- export { BlsMultiThreadWorkerPool } from "./multithread/index.js";
2
+ export type { JobQueueItemType } from "./jobItem.js";
3
+ export type { BlsMultiThreadWorkerPoolModules } from "./multiThread.js";
4
+ export { BlsMultiThreadWorkerPool } from "./multiThread.js";
4
5
  export { BlsSingleThreadVerifier } from "./singleThread.js";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,3 @@
1
- export { BlsMultiThreadWorkerPool } from "./multithread/index.js";
1
+ export { BlsMultiThreadWorkerPool } from "./multiThread.js";
2
2
  export { BlsSingleThreadVerifier } from "./singleThread.js";
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/bls/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,wBAAwB,EAAC,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/bls/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,wBAAwB,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,uBAAuB,EAAC,MAAM,mBAAmB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { PointFormat, PublicKey } from "@chainsafe/bls/types";
2
2
  import { ISignatureSet } from "@lodestar/state-transition";
3
- import { VerifySignatureOpts } from "../interface.js";
4
- import { LinkedList } from "../../../util/array.js";
5
- import { Metrics } from "../../../metrics/metrics.js";
3
+ import { LinkedList } from "../../util/array.js";
4
+ import { Metrics } from "../../metrics/metrics.js";
5
+ import { VerifySignatureOpts } from "./interface.js";
6
6
  import { BlsWorkReq } from "./types.js";
7
7
  export type JobQueueItem = JobQueueItemDefault | JobQueueItemSameMessage;
8
8
  export type JobQueueItemDefault = {
@@ -1,8 +1,9 @@
1
1
  import bls from "@chainsafe/bls";
2
2
  import { CoordType } from "@chainsafe/bls/types";
3
3
  import { SignatureSetType } from "@lodestar/state-transition";
4
- import { getAggregatedPubkey } from "../utils.js";
5
- import { LinkedList } from "../../../util/array.js";
4
+ import { LinkedList } from "../../util/array.js";
5
+ import { getAggregatedPubkey } from "./utils.js";
6
+ import { randomBytesNonZero } from "./utils.js";
6
7
  export var JobQueueItemType;
7
8
  (function (JobQueueItemType) {
8
9
  JobQueueItemType["default"] = "default";
@@ -30,7 +31,7 @@ export function jobItemWorkReq(job, format, metrics) {
30
31
  opts: job.opts,
31
32
  sets: job.sets.map((set) => ({
32
33
  // this can throw, handled in the consumer code
33
- publicKey: getAggregatedPubkey(set, metrics).toBytes(format),
34
+ publicKey: getAggregatedPubkey(set, metrics),
34
35
  signature: set.signature,
35
36
  message: set.signingRoot,
36
37
  })),
@@ -46,13 +47,19 @@ export function jobItemWorkReq(job, format, metrics) {
46
47
  const timer = metrics?.blsThreadPool.signatureDeserializationMainThreadDuration.startTimer();
47
48
  const signatures = job.sets.map((set) => bls.Signature.fromBytes(set.signature, CoordType.affine, true));
48
49
  timer?.();
50
+ // adding verification randomness is napi specific. must not attempt with herumi until
51
+ // @chainsafe/bls is updated to support it with herumi
52
+ const randomness = [];
53
+ for (let i = 0; i < job.sets.length; i++) {
54
+ randomness.push(randomBytesNonZero(8));
55
+ }
49
56
  return {
50
57
  opts: job.opts,
51
58
  sets: [
52
59
  {
53
- publicKey: bls.PublicKey.aggregate(job.sets.map((set) => set.publicKey)).toBytes(format),
54
- signature: bls.Signature.aggregate(signatures).toBytes(format),
55
60
  message: job.message,
61
+ publicKey: bls.PublicKey.aggregate(job.sets.map((set, i) => set.publicKey.multiplyBy(randomness[i]))),
62
+ signature: bls.Signature.aggregate(signatures.map((sig, i) => sig.multiplyBy(randomness[i]))),
56
63
  },
57
64
  ],
58
65
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobItem.js","sourceRoot":"","sources":["../../../src/chain/bls/jobItem.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { PublicKey } from "@chainsafe/bls/types";
2
2
  import { Logger } from "@lodestar/utils";
3
3
  import { ISignatureSet } from "@lodestar/state-transition";
4
- import { Metrics } from "../../../metrics/index.js";
5
- import { IBlsVerifier, VerifySignatureOpts } from "../interface.js";
6
- import { JobQueueItemType } from "./jobItem.js";
4
+ import { Metrics } from "../../metrics/index.js";
5
+ import { IBlsVerifier, VerifySignatureOpts } from "./interface.js";
7
6
  export type BlsMultiThreadWorkerPoolModules = {
8
7
  logger: Logger;
9
8
  metrics: Metrics | null;
@@ -11,7 +10,6 @@ export type BlsMultiThreadWorkerPoolModules = {
11
10
  export type BlsMultiThreadWorkerPoolOptions = {
12
11
  blsVerifyAllMultiThread?: boolean;
13
12
  };
14
- export type { JobQueueItemType };
15
13
  /**
16
14
  * Wraps "threads" library thread pool queue system with the goals:
17
15
  * - Complete total outstanding jobs in total minimum time possible.
@@ -24,12 +22,12 @@ export declare class BlsMultiThreadWorkerPool implements IBlsVerifier {
24
22
  private readonly logger;
25
23
  private readonly metrics;
26
24
  private readonly format;
27
- private readonly workers;
25
+ private blsPoolSize;
26
+ private workersBusy;
28
27
  private readonly jobs;
29
28
  private bufferedJobs;
30
29
  private blsVerifyAllMultiThread;
31
30
  private closed;
32
- private workersBusy;
33
31
  constructor(options: BlsMultiThreadWorkerPoolOptions, modules: BlsMultiThreadWorkerPoolModules);
34
32
  canAcceptWork(): boolean;
35
33
  verifySignatureSets(sets: ISignatureSet[], opts?: VerifySignatureOpts): Promise<boolean>;
@@ -41,7 +39,6 @@ export declare class BlsMultiThreadWorkerPool implements IBlsVerifier {
41
39
  signature: Uint8Array;
42
40
  }[], message: Uint8Array, opts?: Omit<VerifySignatureOpts, "verifyOnMainThread">): Promise<boolean[]>;
43
41
  close(): Promise<void>;
44
- private createWorkers;
45
42
  /**
46
43
  * Register BLS work to be done eventually in a worker
47
44
  */
@@ -59,7 +56,5 @@ export declare class BlsMultiThreadWorkerPool implements IBlsVerifier {
59
56
  */
60
57
  private runBufferedJobs;
61
58
  private retryJobItemSameMessage;
62
- /** For testing */
63
- private waitTillInitialized;
64
59
  }
65
- //# sourceMappingURL=index.d.ts.map
60
+ //# sourceMappingURL=multiThread.d.ts.map
@@ -1,26 +1,15 @@
1
- /* eslint-disable @typescript-eslint/strict-boolean-expressions */
2
- import path from "node:path";
3
- import { spawn, Worker } from "@chainsafe/threads";
4
- // `threads` library creates self global variable which breaks `timeout-abort-controller` https://github.com/jacobheun/timeout-abort-controller/issues/9
5
- // Don't add an eslint disable here as a reminder that this has to be fixed eventually
6
- // eslint-disable-next-line
7
- // @ts-ignore
8
- // eslint-disable-next-line
9
- self = undefined;
1
+ import os from "node:os";
10
2
  import bls from "@chainsafe/bls";
11
3
  import { PointFormat } from "@chainsafe/bls/types";
12
- import { QueueError, QueueErrorCode } from "../../../util/queue/index.js";
13
- import { getAggregatedPubkey, getAggregatedPubkeysCount } from "../utils.js";
14
- import { verifySignatureSetsMaybeBatch } from "../maybeBatch.js";
15
- import { LinkedList } from "../../../util/array.js";
4
+ import { QueueError, QueueErrorCode } from "../../util/queue/index.js";
5
+ import { LinkedList } from "../../util/array.js";
6
+ import { callInNextEventLoop } from "../../util/eventLoop.js";
7
+ import { getAggregatedPubkey, getAggregatedPubkeysCount, getJobResultError } from "./utils.js";
8
+ import { verifySets } from "./verifySets.js";
16
9
  import { WorkResultCode } from "./types.js";
17
10
  import { chunkifyMaximizeChunkSize } from "./utils.js";
18
- import { defaultPoolSize } from "./poolSize.js";
11
+ import { runBlsWorkReq } from "./runBlsWorkReq.js";
19
12
  import { JobQueueItemType, jobItemSameMessageToMultiSet, jobItemSigSets, jobItemWorkReq, } from "./jobItem.js";
20
- // Worker constructor consider the path relative to the current working directory
21
- const workerDir = process.env.NODE_ENV === "test" ? "../../../../lib/chain/bls/multithread" : "./";
22
- // 1 worker for the main thread
23
- const blsPoolSize = Math.max(defaultPoolSize - 1, 1);
24
13
  /**
25
14
  * Split big signature sets into smaller sets so they can be sent to multiple workers.
26
15
  *
@@ -51,14 +40,6 @@ const MAX_BUFFER_WAIT_MS = 100;
51
40
  * Max concurrent jobs on `canAcceptWork` status
52
41
  */
53
42
  const MAX_JOBS_CAN_ACCEPT_WORK = 512;
54
- var WorkerStatusCode;
55
- (function (WorkerStatusCode) {
56
- WorkerStatusCode[WorkerStatusCode["notInitialized"] = 0] = "notInitialized";
57
- WorkerStatusCode[WorkerStatusCode["initializing"] = 1] = "initializing";
58
- WorkerStatusCode[WorkerStatusCode["initializationError"] = 2] = "initializationError";
59
- WorkerStatusCode[WorkerStatusCode["idle"] = 3] = "idle";
60
- WorkerStatusCode[WorkerStatusCode["running"] = 4] = "running";
61
- })(WorkerStatusCode || (WorkerStatusCode = {}));
62
43
  /**
63
44
  * Wraps "threads" library thread pool queue system with the goals:
64
45
  * - Complete total outstanding jobs in total minimum time possible.
@@ -69,10 +50,11 @@ var WorkerStatusCode;
69
50
  */
70
51
  export class BlsMultiThreadWorkerPool {
71
52
  constructor(options, modules) {
53
+ this.format = PointFormat.uncompressed;
54
+ this.workersBusy = 0;
72
55
  this.jobs = new LinkedList();
73
56
  this.bufferedJobs = null;
74
57
  this.closed = false;
75
- this.workersBusy = 0;
76
58
  /**
77
59
  * Potentially submit jobs to an idle worker, only if there's a worker and jobs
78
60
  */
@@ -80,21 +62,11 @@ export class BlsMultiThreadWorkerPool {
80
62
  if (this.closed) {
81
63
  return;
82
64
  }
83
- // Find idle worker
84
- const worker = this.workers.find((worker) => worker.status.code === WorkerStatusCode.idle);
85
- if (!worker || worker.status.code !== WorkerStatusCode.idle) {
86
- return;
87
- }
88
65
  // Prepare work package
89
66
  const jobsInput = this.prepareWork();
90
67
  if (jobsInput.length === 0) {
91
68
  return;
92
69
  }
93
- // TODO: After sending the work to the worker the main thread can drop the job arguments
94
- // and free-up memory, only needs to keep the job's Promise handlers.
95
- // Maybe it's not useful since all data referenced in jobs is likely referenced by others
96
- const workerApi = worker.status.workerApi;
97
- worker.status = { code: WorkerStatusCode.running, workerApi };
98
70
  this.workersBusy++;
99
71
  try {
100
72
  let startedJobsDefault = 0;
@@ -146,9 +118,9 @@ export class BlsMultiThreadWorkerPool {
146
118
  // If the job, metrics or any code below throws: the job will reject never going stale.
147
119
  // Only downside is the job promise may be resolved twice, but that's not an issue
148
120
  const [jobStartSec, jobStartNs] = process.hrtime();
149
- const workResult = await workerApi.verifyManySignatureSets(workReqs);
121
+ const workResult = await runBlsWorkReq(workReqs);
150
122
  const [jobEndSec, jobEndNs] = process.hrtime();
151
- const { workerId, batchRetries, batchSigsSuccess, workerStartTime, workerEndTime, results } = workResult;
123
+ const { batchRetries, batchSigsSuccess, workerStartTime, workerEndTime, results } = workResult;
152
124
  const [workerStartSec, workerStartNs] = workerStartTime;
153
125
  const [workerEndSec, workerEndNs] = workerEndTime;
154
126
  let successCount = 0;
@@ -161,7 +133,7 @@ export class BlsMultiThreadWorkerPool {
161
133
  // TODO: enable exhaustive switch case checks lint rule
162
134
  switch (job.type) {
163
135
  case JobQueueItemType.default:
164
- if (!jobResult || jobResult.code !== WorkResultCode.success) {
136
+ if (jobResult.code !== WorkResultCode.success) {
165
137
  job.reject(getJobResultError(jobResult, i));
166
138
  errorCount += sigSetCount;
167
139
  }
@@ -172,7 +144,7 @@ export class BlsMultiThreadWorkerPool {
172
144
  break;
173
145
  // handle result of the verification of aggregated signature against aggregated pubkeys
174
146
  case JobQueueItemType.sameMessage:
175
- if (!jobResult || jobResult.code !== WorkResultCode.success) {
147
+ if (jobResult.code !== WorkResultCode.success) {
176
148
  job.reject(getJobResultError(jobResult, i));
177
149
  errorCount += 1;
178
150
  }
@@ -190,11 +162,12 @@ export class BlsMultiThreadWorkerPool {
190
162
  break;
191
163
  }
192
164
  }
165
+ // TODO: (@matthewkeil) all of these metrics need to be revisited
193
166
  const workerJobTimeSec = workerEndSec - workerStartSec + (workerEndNs - workerStartNs) / 1e9;
194
167
  const latencyToWorkerSec = workerStartSec - jobStartSec + (workerStartNs - jobStartNs) / 1e9;
195
168
  const latencyFromWorkerSec = jobEndSec - workerEndSec + Number(jobEndNs - workerEndNs) / 1e9;
196
169
  this.metrics?.blsThreadPool.timePerSigSet.observe(workerJobTimeSec / startedSigSets);
197
- this.metrics?.blsThreadPool.jobsWorkerTime.inc({ workerId }, workerJobTimeSec);
170
+ this.metrics?.blsThreadPool.jobsWorkerTime.inc({ workerId: 0 }, workerJobTimeSec);
198
171
  this.metrics?.blsThreadPool.latencyToWorker.observe(latencyToWorkerSec);
199
172
  this.metrics?.blsThreadPool.latencyFromWorker.observe(latencyFromWorkerSec);
200
173
  this.metrics?.blsThreadPool.successJobsSignatureSetsCount.inc(successCount);
@@ -212,10 +185,9 @@ export class BlsMultiThreadWorkerPool {
212
185
  job.reject(e);
213
186
  }
214
187
  }
215
- worker.status = { code: WorkerStatusCode.idle, workerApi };
216
188
  this.workersBusy--;
217
189
  // Potentially run a new job
218
- setTimeout(this.runJob, 0);
190
+ callInNextEventLoop(this.runJob);
219
191
  };
220
192
  /**
221
193
  * Add all buffered jobs to the job queue and potentially run them immediately
@@ -229,29 +201,37 @@ export class BlsMultiThreadWorkerPool {
229
201
  this.jobs.unshift(job);
230
202
  }
231
203
  this.bufferedJobs = null;
232
- setTimeout(this.runJob, 0);
204
+ callInNextEventLoop(this.runJob);
233
205
  }
234
206
  };
235
- const { logger, metrics } = modules;
236
- this.logger = logger;
237
- this.metrics = metrics;
207
+ if (bls.implementation === "herumi") {
208
+ throw new Error("Herumi BLS implementation is not supported");
209
+ }
210
+ this.logger = modules.logger;
238
211
  this.blsVerifyAllMultiThread = options.blsVerifyAllMultiThread ?? false;
239
- // TODO: Allow to customize implementation
240
- const implementation = bls.implementation;
241
- // Use compressed for herumi for now.
242
- // THe worker is not able to deserialize from uncompressed
243
- // `Error: err _wrapDeserialize`
244
- this.format = implementation === "blst-native" ? PointFormat.uncompressed : PointFormat.compressed;
245
- this.workers = this.createWorkers(implementation, blsPoolSize);
212
+ this.blsPoolSize = Number(process.env.UV_THREADPOOL_SIZE);
213
+ const defaultThreadpoolSize = os.availableParallelism();
214
+ this.logger.info(`BLS libuv pool size: ${this.blsPoolSize}`);
215
+ /**
216
+ * Help users ensure that thread pool is large enough for optimal performance
217
+ *
218
+ * Node reports available CPUs. There is enough idle time on the main and
219
+ * network threads that setting UV_THREADPOOL_SIZE to $(nproc) provides the
220
+ * best performance. Recommend this value to consumers
221
+ */
222
+ if (this.blsPoolSize < defaultThreadpoolSize) {
223
+ this.logger.warn(`UV_THREADPOOL_SIZE=${this.blsPoolSize} which is less than available CPUs: ${defaultThreadpoolSize}. This will cause performance degradation.`);
224
+ }
225
+ const { metrics } = modules;
226
+ this.metrics = metrics;
246
227
  if (metrics) {
247
228
  metrics.blsThreadPool.queueLength.addCollect(() => {
248
229
  metrics.blsThreadPool.queueLength.set(this.jobs.length);
249
- metrics.blsThreadPool.workersBusy.set(this.workersBusy);
250
230
  });
251
231
  }
252
232
  }
253
233
  canAcceptWork() {
254
- return (this.workersBusy < blsPoolSize &&
234
+ return (this.workersBusy < this.blsPoolSize &&
255
235
  // TODO: Should also bound the jobs queue?
256
236
  this.jobs.length < MAX_JOBS_CAN_ACCEPT_WORK);
257
237
  }
@@ -267,17 +247,13 @@ export class BlsMultiThreadWorkerPool {
267
247
  }
268
248
  if (opts.verifyOnMainThread && !this.blsVerifyAllMultiThread) {
269
249
  const timer = this.metrics?.blsThreadPool.mainThreadDurationInThreadPool.startTimer();
270
- try {
271
- return verifySignatureSetsMaybeBatch(sets.map((set) => ({
272
- publicKey: getAggregatedPubkey(set),
273
- message: set.signingRoot.valueOf(),
274
- signature: set.signature,
275
- })));
276
- }
277
- finally {
278
- if (timer)
279
- timer();
280
- }
250
+ const isValid = verifySets(sets.map((set) => ({
251
+ publicKey: getAggregatedPubkey(set),
252
+ message: set.signingRoot.valueOf(),
253
+ signature: set.signature,
254
+ })));
255
+ timer?.();
256
+ return isValid;
281
257
  }
282
258
  // Split large array of sets into smaller.
283
259
  // Very helpful when syncing finalized, sync may submit +1000 sets so chunkify allows to distribute to many workers
@@ -324,44 +300,6 @@ export class BlsMultiThreadWorkerPool {
324
300
  job.reject(new QueueError({ code: QueueErrorCode.QUEUE_ABORTED }));
325
301
  }
326
302
  this.jobs.clear();
327
- // Terminate all workers. await to ensure no workers are left hanging
328
- await Promise.all(Array.from(this.workers.entries()).map(([id, worker]) =>
329
- // NOTE: 'threads' has not yet updated types, and NodeJS complains with
330
- // [DEP0132] DeprecationWarning: Passing a callback to worker.terminate() is deprecated. It returns a Promise instead.
331
- worker.worker.terminate().catch((e) => {
332
- this.logger.error("Error terminating worker", { id }, e);
333
- })));
334
- }
335
- createWorkers(implementation, poolSize) {
336
- const workers = [];
337
- for (let i = 0; i < poolSize; i++) {
338
- const workerData = { implementation, workerId: i };
339
- const worker = new Worker(path.join(workerDir, "worker.js"), {
340
- workerData,
341
- });
342
- const workerDescriptor = {
343
- worker,
344
- status: { code: WorkerStatusCode.notInitialized },
345
- };
346
- workers.push(workerDescriptor);
347
- // TODO: Consider initializing only when necessary
348
- const initPromise = spawn(worker, {
349
- // A Lodestar Node may do very expensive task at start blocking the event loop and causing
350
- // the initialization to timeout. The number below is big enough to almost disable the timeout
351
- timeout: 5 * 60 * 1000,
352
- });
353
- workerDescriptor.status = { code: WorkerStatusCode.initializing, initPromise };
354
- initPromise
355
- .then((workerApi) => {
356
- workerDescriptor.status = { code: WorkerStatusCode.idle, workerApi };
357
- // Potentially run jobs that were queued before initialization of the first worker
358
- setTimeout(this.runJob, 0);
359
- })
360
- .catch((error) => {
361
- workerDescriptor.status = { code: WorkerStatusCode.initializationError, error };
362
- });
363
- }
364
- return workers;
365
303
  }
366
304
  /**
367
305
  * Register BLS work to be done eventually in a worker
@@ -370,14 +308,6 @@ export class BlsMultiThreadWorkerPool {
370
308
  if (this.closed) {
371
309
  throw new QueueError({ code: QueueErrorCode.QUEUE_ABORTED });
372
310
  }
373
- // TODO: Consider if limiting queue size is necessary here.
374
- // It would be bad to reject signatures because the node is slow.
375
- // However, if the worker communication broke jobs won't ever finish
376
- if (this.workers.length > 0 &&
377
- this.workers[0].status.code === WorkerStatusCode.initializationError &&
378
- this.workers.every((worker) => worker.status.code === WorkerStatusCode.initializationError)) {
379
- return job.reject(this.workers[0].status.error);
380
- }
381
311
  // Append batchable sets to `bufferedJobs`, starting a timeout to push them into `jobs`.
382
312
  // Do not call `runJob()`, it is called from `runBufferedJobs()`
383
313
  if (job.opts.batchable) {
@@ -408,7 +338,7 @@ export class BlsMultiThreadWorkerPool {
408
338
  else {
409
339
  this.jobs.push(job);
410
340
  }
411
- setTimeout(this.runJob, 0);
341
+ callInNextEventLoop(this.runJob);
412
342
  }
413
343
  }
414
344
  /**
@@ -440,19 +370,5 @@ export class BlsMultiThreadWorkerPool {
440
370
  this.metrics?.blsThreadPool.sameMessageRetryJobs.inc(1);
441
371
  this.metrics?.blsThreadPool.sameMessageRetrySets.inc(job.sets.length);
442
372
  }
443
- /** For testing */
444
- async waitTillInitialized() {
445
- await Promise.all(this.workers.map(async (worker) => {
446
- if (worker.status.code === WorkerStatusCode.initializing) {
447
- await worker.status.initPromise;
448
- }
449
- }));
450
- }
451
- }
452
- function getJobResultError(jobResult, i) {
453
- const workerError = jobResult ? Error(jobResult.error.message) : Error(`No jobResult for index ${i}`);
454
- if (jobResult?.error?.stack)
455
- workerError.stack = jobResult.error.stack;
456
- return workerError;
457
373
  }
458
- //# sourceMappingURL=index.js.map
374
+ //# sourceMappingURL=multiThread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiThread.js","sourceRoot":"","sources":["../../../src/chain/bls/multiThread.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { BlsWorkReq, BlsWorkResult } from "./types.js";
2
+ export declare function runBlsWorkReq(workReqArr: BlsWorkReq[]): Promise<BlsWorkResult>;
3
+ //# sourceMappingURL=runBlsWorkReq.d.ts.map