@lodestar/beacon-node 1.30.0-dev.c91cd9c141 → 1.30.0-dev.cbebcdc0d5

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 (127) hide show
  1. package/README.md +1 -1
  2. package/lib/api/impl/beacon/blocks/index.d.ts +1 -1
  3. package/lib/api/impl/beacon/blocks/index.js +4 -2
  4. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  5. package/lib/api/impl/beacon/blocks/utils.js +1 -1
  6. package/lib/api/impl/beacon/blocks/utils.js.map +1 -1
  7. package/lib/api/impl/beacon/pool/index.js +1 -1
  8. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  9. package/lib/api/impl/beacon/state/index.js +14 -9
  10. package/lib/api/impl/beacon/state/index.js.map +1 -1
  11. package/lib/api/impl/beacon/state/utils.js +2 -2
  12. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  13. package/lib/api/impl/lodestar/index.js +3 -1
  14. package/lib/api/impl/lodestar/index.js.map +1 -1
  15. package/lib/api/impl/proof/index.js +4 -2
  16. package/lib/api/impl/proof/index.js.map +1 -1
  17. package/lib/api/impl/validator/index.js +1 -21
  18. package/lib/api/impl/validator/index.js.map +1 -1
  19. package/lib/api/rest/base.js +0 -10
  20. package/lib/api/rest/base.js.map +1 -1
  21. package/lib/chain/archiveStore/archiveStore.d.ts +0 -1
  22. package/lib/chain/archiveStore/archiveStore.js +14 -13
  23. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  24. package/lib/chain/archiveStore/historicalState/worker.js +0 -2
  25. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  26. package/lib/chain/archiveStore/interface.d.ts +1 -0
  27. package/lib/chain/archiveStore/utils/archiveBlocks.js +1 -1
  28. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  29. package/lib/chain/beaconProposerCache.d.ts +1 -3
  30. package/lib/chain/beaconProposerCache.js +1 -2
  31. package/lib/chain/beaconProposerCache.js.map +1 -1
  32. package/lib/chain/blocks/blockInput/blockInput.d.ts +164 -0
  33. package/lib/chain/blocks/blockInput/blockInput.js +522 -0
  34. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -0
  35. package/lib/chain/blocks/blockInput/errors.d.ts +38 -0
  36. package/lib/chain/blocks/blockInput/errors.js +17 -0
  37. package/lib/chain/blocks/blockInput/errors.js.map +1 -0
  38. package/lib/chain/blocks/blockInput/index.d.ts +4 -0
  39. package/lib/chain/blocks/blockInput/index.js +4 -0
  40. package/lib/chain/blocks/blockInput/index.js.map +1 -0
  41. package/lib/chain/blocks/blockInput/types.d.ts +116 -0
  42. package/lib/chain/blocks/blockInput/types.js +19 -0
  43. package/lib/chain/blocks/blockInput/types.js.map +1 -0
  44. package/lib/chain/bls/multithread/index.d.ts +1 -1
  45. package/lib/chain/bls/multithread/index.js +1 -3
  46. package/lib/chain/bls/multithread/index.js.map +1 -1
  47. package/lib/chain/bls/multithread/jobItem.d.ts +1 -1
  48. package/lib/chain/bls/multithread/jobItem.js +4 -12
  49. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  50. package/lib/chain/bls/multithread/worker.js +0 -1
  51. package/lib/chain/bls/multithread/worker.js.map +1 -1
  52. package/lib/chain/chain.d.ts +23 -0
  53. package/lib/chain/chain.js +8 -10
  54. package/lib/chain/chain.js.map +1 -1
  55. package/lib/chain/options.js +1 -0
  56. package/lib/chain/options.js.map +1 -1
  57. package/lib/chain/regen/queued.d.ts +0 -1
  58. package/lib/chain/regen/queued.js +0 -1
  59. package/lib/chain/regen/queued.js.map +1 -1
  60. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  61. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  62. package/lib/chain/validatorMonitor.d.ts +3 -3
  63. package/lib/chain/validatorMonitor.js +273 -56
  64. package/lib/chain/validatorMonitor.js.map +1 -1
  65. package/lib/eth1/provider/eth1Provider.js +1 -2
  66. package/lib/eth1/provider/eth1Provider.js.map +1 -1
  67. package/lib/eth1/provider/jsonRpcHttpClient.js +1 -2
  68. package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
  69. package/lib/execution/engine/payloadIdCache.d.ts +0 -3
  70. package/lib/execution/engine/payloadIdCache.js +1 -2
  71. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  72. package/lib/execution/engine/utils.js +1 -1
  73. package/lib/execution/engine/utils.js.map +1 -1
  74. package/lib/metrics/metrics/lodestar.d.ts +4 -100
  75. package/lib/metrics/metrics/lodestar.js +5 -307
  76. package/lib/metrics/metrics/lodestar.js.map +1 -1
  77. package/lib/metrics/metrics.d.ts +2 -1
  78. package/lib/metrics/metrics.js +3 -0
  79. package/lib/metrics/metrics.js.map +1 -1
  80. package/lib/monitoring/service.js +1 -2
  81. package/lib/monitoring/service.js.map +1 -1
  82. package/lib/monitoring/system.js +0 -1
  83. package/lib/monitoring/system.js.map +1 -1
  84. package/lib/network/core/metrics.d.ts +1 -0
  85. package/lib/network/core/metrics.js +4 -0
  86. package/lib/network/core/metrics.js.map +1 -1
  87. package/lib/network/core/networkCore.d.ts +3 -1
  88. package/lib/network/core/networkCore.js +19 -26
  89. package/lib/network/core/networkCore.js.map +1 -1
  90. package/lib/network/core/networkCoreWorkerHandler.d.ts +6 -4
  91. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  92. package/lib/network/core/types.d.ts +1 -1
  93. package/lib/network/gossip/topic.d.ts +181 -152
  94. package/lib/network/libp2p/index.js +1 -1
  95. package/lib/network/libp2p/index.js.map +1 -1
  96. package/lib/network/network.d.ts +0 -1
  97. package/lib/network/network.js +2 -3
  98. package/lib/network/network.js.map +1 -1
  99. package/lib/network/options.d.ts +18 -0
  100. package/lib/network/options.js.map +1 -1
  101. package/lib/network/peers/discover.d.ts +0 -4
  102. package/lib/network/peers/discover.js +1 -3
  103. package/lib/network/peers/discover.js.map +1 -1
  104. package/lib/network/peers/peerManager.d.ts +1 -0
  105. package/lib/network/peers/peerManager.js +26 -4
  106. package/lib/network/peers/peerManager.js.map +1 -1
  107. package/lib/network/peers/peersData.d.ts +2 -1
  108. package/lib/network/peers/peersData.js.map +1 -1
  109. package/lib/network/peers/score/interface.d.ts +1 -1
  110. package/lib/network/peers/score/interface.js.map +1 -1
  111. package/lib/network/peers/score/store.d.ts +2 -1
  112. package/lib/network/peers/score/store.js +1 -1
  113. package/lib/network/peers/score/store.js.map +1 -1
  114. package/lib/network/peers/utils/prioritizePeers.d.ts +21 -1
  115. package/lib/network/peers/utils/prioritizePeers.js +49 -2
  116. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  117. package/lib/network/processor/gossipHandlers.js +3 -1
  118. package/lib/network/processor/gossipHandlers.js.map +1 -1
  119. package/lib/network/processor/index.d.ts +1 -1
  120. package/lib/network/processor/index.js.map +1 -1
  121. package/lib/network/reqresp/ReqRespBeaconNode.js +2 -2
  122. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  123. package/lib/node/nodejs.js +1 -1
  124. package/lib/node/nodejs.js.map +1 -1
  125. package/lib/util/kzg.js +0 -2
  126. package/lib/util/kzg.js.map +1 -1
  127. package/package.json +21 -21
@@ -0,0 +1,522 @@
1
+ import { fromHex, prettyBytes, toHex, withTimeout } from "@lodestar/utils";
2
+ import { kzgCommitmentToVersionedHash } from "../../../util/blobs.js";
3
+ import { byteArrayEquals } from "../../../util/bytes.js";
4
+ import { BlockInputError, BlockInputErrorCode } from "./errors.js";
5
+ import { DAType, } from "./types.js";
6
+ export function createPromise() {
7
+ let resolve;
8
+ let reject;
9
+ const promise = new Promise((_resolve, _reject) => {
10
+ resolve = _resolve;
11
+ reject = _reject;
12
+ });
13
+ return {
14
+ promise,
15
+ resolve,
16
+ reject,
17
+ };
18
+ }
19
+ class AbstractBlockInput {
20
+ constructor(init) {
21
+ this.blockPromise = createPromise();
22
+ this.dataPromise = createPromise();
23
+ this.daOutOfRange = init.daOutOfRange;
24
+ this.timeCreated = init.timeCreated;
25
+ this.forkName = init.forkName;
26
+ this.slot = init.slot;
27
+ this.blockRootHex = init.blockRootHex;
28
+ this.parentRootHex = init.parentRootHex;
29
+ }
30
+ hasBlock() {
31
+ return this.state.hasBlock;
32
+ }
33
+ getBlock() {
34
+ if (!this.state.hasBlock) {
35
+ throw new BlockInputError({
36
+ code: BlockInputErrorCode.MISSING_BLOCK,
37
+ blockRoot: this.blockRootHex,
38
+ }, "Cannot getBlock from BlockInput without a block");
39
+ }
40
+ return this.state.block;
41
+ }
42
+ getBlockSource() {
43
+ if (!this.state.hasBlock) {
44
+ throw new BlockInputError({
45
+ code: BlockInputErrorCode.MISSING_BLOCK,
46
+ blockRoot: this.blockRootHex,
47
+ }, "Cannot getBlockSource from BlockInput without a block");
48
+ }
49
+ return this.state.source;
50
+ }
51
+ hasAllData() {
52
+ return this.state.hasAllData;
53
+ }
54
+ hasBlockAndAllData() {
55
+ return this.state.hasBlock && this.state.hasAllData;
56
+ }
57
+ getLogMeta() {
58
+ return {
59
+ blockRoot: prettyBytes(this.blockRootHex),
60
+ slot: this.slot,
61
+ };
62
+ }
63
+ getTimeComplete() {
64
+ if (!this.state.hasBlock || !this.state.hasAllData) {
65
+ throw new BlockInputError({
66
+ code: BlockInputErrorCode.MISSING_TIME_COMPLETE,
67
+ blockRoot: this.blockRootHex,
68
+ }, "Cannot getTimeComplete from BlockInput without a block and data");
69
+ }
70
+ return this.state.timeCompleteSec;
71
+ }
72
+ waitForBlock(timeout, signal) {
73
+ if (!this.state.hasBlock) {
74
+ return withTimeout(() => this.blockPromise.promise, timeout, signal);
75
+ }
76
+ return Promise.resolve(this.state.block);
77
+ }
78
+ waitForAllData(timeout, signal) {
79
+ return withTimeout(() => this.dataPromise.promise, timeout, signal);
80
+ }
81
+ async waitForBlockAndAllData(timeout, signal) {
82
+ if (!this.state.hasBlock || !this.state.hasAllData) {
83
+ await withTimeout(() => Promise.all([this.blockPromise.promise, this.dataPromise.promise]), timeout, signal);
84
+ }
85
+ return this;
86
+ }
87
+ }
88
+ /**
89
+ * Pre-DA, BlockInput only has a single state.
90
+ * - the block simply exists
91
+ */
92
+ export class BlockInputPreData extends AbstractBlockInput {
93
+ constructor(init, state) {
94
+ super(init);
95
+ this.type = DAType.PreData;
96
+ this.state = state;
97
+ }
98
+ static createFromBlock(props) {
99
+ const init = {
100
+ daOutOfRange: props.daOutOfRange,
101
+ timeCreated: props.source.seenTimestampSec,
102
+ forkName: props.forkName,
103
+ slot: props.block.message.slot,
104
+ blockRootHex: props.blockRootHex,
105
+ parentRootHex: toHex(props.block.message.parentRoot),
106
+ };
107
+ const state = {
108
+ hasBlock: true,
109
+ hasAllData: true,
110
+ block: props.block,
111
+ source: props.source,
112
+ timeCompleteSec: props.source.seenTimestampSec,
113
+ };
114
+ return new BlockInputPreData(init, state);
115
+ }
116
+ addBlock(_) {
117
+ throw new BlockInputError({
118
+ code: BlockInputErrorCode.INVALID_CONSTRUCTION,
119
+ blockRoot: this.blockRootHex,
120
+ }, "Cannot addBlock to BlockInputPreData");
121
+ }
122
+ }
123
+ /**
124
+ * With blobs, BlockInput has several states:
125
+ * - The block is seen and all blobs are seen
126
+ * - The block is seen and all blobs are not yet seen
127
+ * - The block is yet not seen and its unknown if all blobs are seen
128
+ */
129
+ export class BlockInputBlobs extends AbstractBlockInput {
130
+ constructor(init, state) {
131
+ super(init);
132
+ this.type = DAType.Blobs;
133
+ this.blobsCache = new Map();
134
+ this.state = state;
135
+ }
136
+ static createFromBlock(props) {
137
+ const hasAllData = props.daOutOfRange || props.block.message.body.blobKzgCommitments.length === 0;
138
+ const state = {
139
+ hasBlock: true,
140
+ hasAllData,
141
+ versionedHashes: props.block.message.body.blobKzgCommitments.map(kzgCommitmentToVersionedHash),
142
+ block: props.block,
143
+ source: props.source,
144
+ timeCompleteSec: hasAllData ? props.source.seenTimestampSec : undefined,
145
+ };
146
+ const init = {
147
+ daOutOfRange: props.daOutOfRange,
148
+ timeCreated: props.source.seenTimestampSec,
149
+ forkName: props.forkName,
150
+ slot: props.block.message.slot,
151
+ blockRootHex: props.blockRootHex,
152
+ parentRootHex: toHex(props.block.message.parentRoot),
153
+ };
154
+ const blockInput = new BlockInputBlobs(init, state);
155
+ blockInput.blockPromise.resolve(props.block);
156
+ if (hasAllData) {
157
+ blockInput.dataPromise.resolve([]);
158
+ }
159
+ return blockInput;
160
+ }
161
+ static createFromBlob(props) {
162
+ const state = {
163
+ hasBlock: false,
164
+ hasAllData: false,
165
+ };
166
+ const init = {
167
+ daOutOfRange: props.daOutOfRange,
168
+ timeCreated: props.seenTimestampSec,
169
+ forkName: props.forkName,
170
+ blockRootHex: props.blockRootHex,
171
+ parentRootHex: toHex(props.blobSidecar.signedBlockHeader.message.parentRoot),
172
+ slot: props.blobSidecar.signedBlockHeader.message.slot,
173
+ };
174
+ const blockInput = new BlockInputBlobs(init, state);
175
+ blockInput.blobsCache.set(props.blobSidecar.index, {
176
+ blobSidecar: props.blobSidecar,
177
+ source: props.source,
178
+ seenTimestampSec: props.seenTimestampSec,
179
+ peerIdStr: props.peerIdStr,
180
+ });
181
+ return blockInput;
182
+ }
183
+ getLogMeta() {
184
+ return {
185
+ blockRoot: prettyBytes(this.blockRootHex),
186
+ slot: this.slot,
187
+ expectedBlobs: this.state.hasBlock ? this.state.block.message.body.blobKzgCommitments.length : "unknown",
188
+ receivedBlobs: this.blobsCache.size,
189
+ };
190
+ }
191
+ addBlock({ blockRootHex, block, source }) {
192
+ if (!this.state.hasBlock) {
193
+ throw new BlockInputError({
194
+ code: BlockInputErrorCode.INVALID_CONSTRUCTION,
195
+ blockRoot: this.blockRootHex,
196
+ }, "Cannot addBlock to BlockInputBlobs after it already has a block");
197
+ }
198
+ // this check suffices for checking slot, parentRoot, and forkName
199
+ if (blockRootHex !== this.blockRootHex) {
200
+ throw new BlockInputError({
201
+ code: BlockInputErrorCode.MISMATCHED_ROOT_HEX,
202
+ blockInputRoot: this.blockRootHex,
203
+ mismatchedRoot: blockRootHex,
204
+ source: source.source,
205
+ peerId: `${source.peerIdStr}`,
206
+ }, "addBlock blockRootHex does not match BlockInput.blockRootHex");
207
+ }
208
+ for (const { blobSidecar } of this.blobsCache.values()) {
209
+ if (!blockAndBlobArePaired(block, blobSidecar)) {
210
+ this.blobsCache.delete(blobSidecar.index);
211
+ // TODO: (@matthewkeil) spec says to ignore invalid blobs but should we downscore the peer maybe?
212
+ // this.logger?.error(`Removing blobIndex=${blobSidecar.index} from BlockInput`, {}, err);
213
+ }
214
+ }
215
+ const hasAllData = this.blobsCache.size === block.message.body.blobKzgCommitments.length;
216
+ this.state = {
217
+ ...this.state,
218
+ hasAllData,
219
+ block,
220
+ versionedHashes: block.message.body.blobKzgCommitments.map(kzgCommitmentToVersionedHash),
221
+ source,
222
+ timeCompleteSec: hasAllData ? source.seenTimestampSec : undefined,
223
+ };
224
+ this.blockPromise.resolve(block);
225
+ if (hasAllData) {
226
+ this.dataPromise.resolve(this.getBlobs());
227
+ }
228
+ }
229
+ hasBlob(blobIndex) {
230
+ return this.blobsCache.has(blobIndex);
231
+ }
232
+ addBlob({ blockRootHex, blobSidecar, source, peerIdStr, seenTimestampSec }) {
233
+ if (this.state.hasAllData) {
234
+ throw new BlockInputError({
235
+ code: BlockInputErrorCode.INVALID_CONSTRUCTION,
236
+ blockRoot: this.blockRootHex,
237
+ }, "Cannot addBlob to BlockInputBlobs after it already is complete");
238
+ }
239
+ if (this.blobsCache.has(blobSidecar.index)) {
240
+ throw new BlockInputError({
241
+ code: BlockInputErrorCode.INVALID_CONSTRUCTION,
242
+ blockRoot: this.blockRootHex,
243
+ }, "Cannot addBlob to BlockInputBlobs with duplicate blobIndex");
244
+ }
245
+ // this check suffices for checking slot, parentRoot, and forkName
246
+ if (blockRootHex !== this.blockRootHex) {
247
+ throw new BlockInputError({
248
+ code: BlockInputErrorCode.MISMATCHED_ROOT_HEX,
249
+ blockInputRoot: this.blockRootHex,
250
+ mismatchedRoot: blockRootHex,
251
+ source: source,
252
+ peerId: `${peerIdStr}`,
253
+ }, "Blob BeaconBlockHeader blockRootHex does not match BlockInput.blockRootHex");
254
+ }
255
+ if (this.state.hasBlock) {
256
+ assertBlockAndBlobArePaired(this.blockRootHex, this.state.block, blobSidecar);
257
+ }
258
+ this.blobsCache.set(blobSidecar.index, { blobSidecar, source, seenTimestampSec, peerIdStr });
259
+ if (this.state.hasBlock && this.blobsCache.size === this.state.block.message.body.blobKzgCommitments.length) {
260
+ this.state = {
261
+ ...this.state,
262
+ hasAllData: true,
263
+ timeCompleteSec: seenTimestampSec,
264
+ };
265
+ this.dataPromise.resolve([...this.blobsCache.values()].map(({ blobSidecar }) => blobSidecar));
266
+ }
267
+ }
268
+ getVersionedHashes() {
269
+ if (!this.state.hasBlock) {
270
+ throw new BlockInputError({
271
+ code: BlockInputErrorCode.INCOMPLETE_DATA,
272
+ ...this.getLogMeta(),
273
+ }, "Cannot get versioned hashes. Block is unknown");
274
+ }
275
+ return this.state.versionedHashes;
276
+ }
277
+ getMissingBlobMeta() {
278
+ if (!this.state.hasBlock) {
279
+ throw new BlockInputError({
280
+ code: BlockInputErrorCode.INCOMPLETE_DATA,
281
+ ...this.getLogMeta(),
282
+ }, "Cannot get missing blobs. Block is unknown");
283
+ }
284
+ if (this.state.hasAllData) {
285
+ return [];
286
+ }
287
+ const blobMeta = [];
288
+ const versionedHashes = this.state.versionedHashes;
289
+ for (let index = 0; index < versionedHashes.length; index++) {
290
+ if (!this.blobsCache.has(index)) {
291
+ blobMeta.push({
292
+ index,
293
+ blockRoot: fromHex(this.blockRootHex),
294
+ versionHash: versionedHashes[index],
295
+ });
296
+ }
297
+ }
298
+ return blobMeta;
299
+ }
300
+ getAllBlobsWithSource() {
301
+ if (!this.state.hasAllData) {
302
+ throw new BlockInputError({
303
+ code: BlockInputErrorCode.INCOMPLETE_DATA,
304
+ ...this.getLogMeta(),
305
+ }, "Cannot get all blobs. DA status is not complete");
306
+ }
307
+ return [...this.blobsCache.values()];
308
+ }
309
+ getBlobs() {
310
+ return this.getAllBlobsWithSource().map(({ blobSidecar }) => blobSidecar);
311
+ }
312
+ }
313
+ function blockAndBlobArePaired(block, blobSidecar) {
314
+ return byteArrayEquals(block.message.body.blobKzgCommitments[blobSidecar.index], blobSidecar.kzgCommitment);
315
+ }
316
+ function assertBlockAndBlobArePaired(blockRootHex, block, blobSidecar) {
317
+ if (!blockAndBlobArePaired(block, blobSidecar)) {
318
+ // TODO: (@matthewkeil) should this eject the bad blob instead? No way to tell if the blob or the block
319
+ // has the invalid commitment. Guessing it would be the blob though because we match via block
320
+ // hashTreeRoot and we do not take a hashTreeRoot of the BlobSidecar
321
+ throw new BlockInputError({
322
+ code: BlockInputErrorCode.MISMATCHED_KZG_COMMITMENT,
323
+ blockRoot: blockRootHex,
324
+ slot: block.message.slot,
325
+ sidecarIndex: blobSidecar.index,
326
+ }, "BlobSidecar commitment does not match block commitment");
327
+ }
328
+ }
329
+ /**
330
+ * With columns, BlockInput has several states:
331
+ * - The block is seen and all required sampled columns are seen
332
+ * - The block is seen and all required sampled columns are not yet seen
333
+ * - The block is not yet seen and all required sampled columns are seen
334
+ * - The block is not yet seen and all required sampled columns are not yet seen
335
+ */
336
+ export class BlockInputColumns extends AbstractBlockInput {
337
+ constructor(init, state, sampledColumns, custodyColumns) {
338
+ super(init);
339
+ this.type = DAType.Columns;
340
+ this.columnsCache = new Map();
341
+ this.state = state;
342
+ this.sampledColumns = sampledColumns;
343
+ this.custodyColumns = custodyColumns;
344
+ }
345
+ static createFromBlock(props) {
346
+ const hasAllData = props.daOutOfRange ||
347
+ props.block.message.body.blobKzgCommitments.length === 0 ||
348
+ props.sampledColumns.length === 0;
349
+ const state = {
350
+ hasBlock: true,
351
+ hasAllData,
352
+ versionedHashes: props.block.message.body.blobKzgCommitments.map(kzgCommitmentToVersionedHash),
353
+ block: props.block,
354
+ source: props.source,
355
+ timeCreated: props.source.seenTimestampSec,
356
+ timeCompleteSec: hasAllData ? props.source.seenTimestampSec : undefined,
357
+ };
358
+ const init = {
359
+ daOutOfRange: props.daOutOfRange,
360
+ timeCreated: props.source.seenTimestampSec,
361
+ forkName: props.forkName,
362
+ blockRootHex: props.blockRootHex,
363
+ parentRootHex: toHex(props.block.message.parentRoot),
364
+ slot: props.block.message.slot,
365
+ };
366
+ const blockInput = new BlockInputColumns(init, state, props.sampledColumns, props.custodyColumns);
367
+ blockInput.blockPromise.resolve(props.block);
368
+ if (hasAllData) {
369
+ blockInput.dataPromise.resolve([]);
370
+ }
371
+ return blockInput;
372
+ }
373
+ static createFromColumn(props) {
374
+ const hasAllData = props.sampledColumns.length === 0;
375
+ const state = {
376
+ hasBlock: false,
377
+ hasAllData,
378
+ versionedHashes: props.columnSidecar.kzgCommitments.map(kzgCommitmentToVersionedHash),
379
+ };
380
+ const init = {
381
+ daOutOfRange: false,
382
+ timeCreated: props.seenTimestampSec,
383
+ forkName: props.forkName,
384
+ blockRootHex: props.blockRootHex,
385
+ parentRootHex: toHex(props.columnSidecar.signedBlockHeader.message.parentRoot),
386
+ slot: props.columnSidecar.signedBlockHeader.message.slot,
387
+ };
388
+ const blockInput = new BlockInputColumns(init, state, props.sampledColumns, props.custodyColumns);
389
+ if (hasAllData) {
390
+ blockInput.dataPromise.resolve([]);
391
+ }
392
+ return blockInput;
393
+ }
394
+ getLogMeta() {
395
+ return {
396
+ blockRoot: prettyBytes(this.blockRootHex),
397
+ slot: this.slot,
398
+ expectedColumns: this.state.hasBlock && this.state.block.message.body.blobKzgCommitments.length === 0
399
+ ? 0
400
+ : this.sampledColumns.length,
401
+ receivedColumns: this.getSampledColumns().length,
402
+ };
403
+ }
404
+ addBlock(props) {
405
+ if (this.state.hasBlock) {
406
+ throw new BlockInputError({
407
+ code: BlockInputErrorCode.INVALID_CONSTRUCTION,
408
+ blockRoot: this.blockRootHex,
409
+ }, "Cannot addBlock to BlockInputColumns after it already has a block");
410
+ }
411
+ if (props.blockRootHex !== this.blockRootHex) {
412
+ throw new BlockInputError({
413
+ code: BlockInputErrorCode.MISMATCHED_ROOT_HEX,
414
+ blockInputRoot: this.blockRootHex,
415
+ mismatchedRoot: props.blockRootHex,
416
+ source: props.source.source,
417
+ peerId: `${props.source.peerIdStr}`,
418
+ }, "addBlock blockRootHex does not match BlockInput.blockRootHex");
419
+ }
420
+ for (const { columnSidecar } of this.columnsCache.values()) {
421
+ if (!blockAndColumnArePaired(props.block, columnSidecar)) {
422
+ this.columnsCache.delete(columnSidecar.index);
423
+ // this.logger?.error(`Removing columnIndex=${columnSidecar.index} from BlockInput`, {}, err);
424
+ }
425
+ }
426
+ const hasAllData = props.block.message.body.blobKzgCommitments.length === 0 || this.state.hasAllData;
427
+ this.state = {
428
+ ...this.state,
429
+ hasBlock: true,
430
+ hasAllData,
431
+ block: props.block,
432
+ source: props.source,
433
+ timeCompleteSec: hasAllData ? props.source.seenTimestampSec : undefined,
434
+ };
435
+ this.blockPromise.resolve(props.block);
436
+ }
437
+ addColumn({ blockRootHex, columnSidecar, source, seenTimestampSec, peerIdStr }) {
438
+ if (blockRootHex !== this.blockRootHex) {
439
+ throw new BlockInputError({
440
+ code: BlockInputErrorCode.MISMATCHED_ROOT_HEX,
441
+ blockInputRoot: this.blockRootHex,
442
+ mismatchedRoot: blockRootHex,
443
+ source: source,
444
+ peerId: `${peerIdStr}`,
445
+ }, "Column BeaconBlockHeader blockRootHex does not match BlockInput.blockRootHex");
446
+ }
447
+ if (this.state.hasBlock) {
448
+ assertBlockAndColumnArePaired(this.blockRootHex, this.state.block, columnSidecar);
449
+ }
450
+ this.columnsCache.set(columnSidecar.index, { columnSidecar, source, seenTimestampSec, peerIdStr });
451
+ const sampledColumns = this.getSampledColumns();
452
+ const hasAllData = this.state.hasAllData || sampledColumns.length === this.sampledColumns.length;
453
+ this.state = {
454
+ ...this.state,
455
+ hasAllData: hasAllData || this.state.hasAllData,
456
+ timeCompleteSec: hasAllData ? seenTimestampSec : undefined,
457
+ };
458
+ if (hasAllData && sampledColumns !== null) {
459
+ this.dataPromise.resolve(sampledColumns);
460
+ }
461
+ }
462
+ hasColumn(columnIndex) {
463
+ return this.columnsCache.has(columnIndex);
464
+ }
465
+ getVersionedHashes() {
466
+ return this.state.versionedHashes;
467
+ }
468
+ getCustodyColumns() {
469
+ const columns = [];
470
+ for (const index of this.custodyColumns) {
471
+ const column = this.columnsCache.get(index);
472
+ if (column) {
473
+ columns.push(column.columnSidecar);
474
+ }
475
+ }
476
+ return columns;
477
+ }
478
+ getSampledColumns() {
479
+ const columns = [];
480
+ for (const index of this.sampledColumns) {
481
+ const column = this.columnsCache.get(index);
482
+ if (column) {
483
+ columns.push(column.columnSidecar);
484
+ }
485
+ }
486
+ return columns;
487
+ }
488
+ getAllColumnsWithSource() {
489
+ return [...this.columnsCache.values()];
490
+ }
491
+ getAllColumns() {
492
+ return this.getAllColumnsWithSource().map(({ columnSidecar }) => columnSidecar);
493
+ }
494
+ getMissingSampledColumnMeta() {
495
+ if (this.state.hasAllData) {
496
+ return [];
497
+ }
498
+ const needed = [];
499
+ const blockRoot = fromHex(this.blockRootHex);
500
+ for (const index of this.sampledColumns) {
501
+ if (!this.columnsCache.has(index)) {
502
+ needed.push({ index, blockRoot });
503
+ }
504
+ }
505
+ return needed;
506
+ }
507
+ }
508
+ function blockAndColumnArePaired(block, columnSidecar) {
509
+ return (block.message.body.blobKzgCommitments.length === columnSidecar.kzgCommitments.length &&
510
+ block.message.body.blobKzgCommitments.every((commitment, index) => byteArrayEquals(commitment, columnSidecar.kzgCommitments[index])));
511
+ }
512
+ function assertBlockAndColumnArePaired(blockRootHex, block, columnSidecar) {
513
+ if (!blockAndColumnArePaired(block, columnSidecar)) {
514
+ throw new BlockInputError({
515
+ code: BlockInputErrorCode.MISMATCHED_KZG_COMMITMENT,
516
+ blockRoot: blockRootHex,
517
+ slot: block.message.slot,
518
+ sidecarIndex: columnSidecar.index,
519
+ }, "DataColumnsSidecar kzgCommitment does not match block kzgCommitment");
520
+ }
521
+ }
522
+ //# sourceMappingURL=blockInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockInput.js","sourceRoot":"","sources":["../../../../src/chain/blocks/blockInput/blockInput.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { Slot } from "@lodestar/types";
2
+ import { LodestarError } from "@lodestar/utils";
3
+ import { PeerIdStr } from "../../../util/peerId.js";
4
+ import { BlockInputSource, LogMetaBlobs, LogMetaColumns } from "./types.js";
5
+ export declare enum BlockInputErrorCode {
6
+ INVALID_CONSTRUCTION = "BLOCK_INPUT_ERROR_INVALID_CONSTRUCTION",
7
+ INCOMPLETE_DATA = "BLOCK_INPUT_ERROR_INCOMPLETE_DATA",
8
+ MISSING_BLOCK = "BLOCK_INPUT_ERROR_MISSING_BLOCK",
9
+ MISSING_TIME_COMPLETE = "BLOCK_INPUT_ERROR_MISSING_TIME_COMPLETE",
10
+ MISMATCHED_ROOT_HEX = "BLOCK_INPUT_ERROR_MISMATCHED_ROOT_HEX",
11
+ MISMATCHED_KZG_COMMITMENT = "BLOCK_INPUT_ERROR_MISMATCHED_KZG_COMMITMENT"
12
+ }
13
+ export type BlockInputErrorType = {
14
+ code: BlockInputErrorCode.MISSING_BLOCK | BlockInputErrorCode.MISSING_TIME_COMPLETE;
15
+ blockRoot: string;
16
+ } | {
17
+ code: BlockInputErrorCode.INVALID_CONSTRUCTION;
18
+ blockRoot: string;
19
+ } | {
20
+ code: BlockInputErrorCode.MISMATCHED_ROOT_HEX;
21
+ blockInputRoot: string;
22
+ mismatchedRoot: string;
23
+ source: BlockInputSource;
24
+ peerId: PeerIdStr;
25
+ } | {
26
+ code: BlockInputErrorCode.MISMATCHED_KZG_COMMITMENT;
27
+ blockRoot: string;
28
+ slot: undefined | Slot;
29
+ sidecarIndex: number;
30
+ commitmentIndex?: number;
31
+ } | (LogMetaBlobs & {
32
+ code: BlockInputErrorCode.INCOMPLETE_DATA;
33
+ }) | (LogMetaColumns & {
34
+ code: BlockInputErrorCode.INCOMPLETE_DATA;
35
+ });
36
+ export declare class BlockInputError extends LodestarError<BlockInputErrorType> {
37
+ }
38
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1,17 @@
1
+ import { LodestarError } from "@lodestar/utils";
2
+ export var BlockInputErrorCode;
3
+ (function (BlockInputErrorCode) {
4
+ // Bad Arguments
5
+ BlockInputErrorCode["INVALID_CONSTRUCTION"] = "BLOCK_INPUT_ERROR_INVALID_CONSTRUCTION";
6
+ // Attempt to get all data but some is missing
7
+ BlockInputErrorCode["INCOMPLETE_DATA"] = "BLOCK_INPUT_ERROR_INCOMPLETE_DATA";
8
+ // Missing class property values for getters
9
+ BlockInputErrorCode["MISSING_BLOCK"] = "BLOCK_INPUT_ERROR_MISSING_BLOCK";
10
+ BlockInputErrorCode["MISSING_TIME_COMPLETE"] = "BLOCK_INPUT_ERROR_MISSING_TIME_COMPLETE";
11
+ // Mismatched values
12
+ BlockInputErrorCode["MISMATCHED_ROOT_HEX"] = "BLOCK_INPUT_ERROR_MISMATCHED_ROOT_HEX";
13
+ BlockInputErrorCode["MISMATCHED_KZG_COMMITMENT"] = "BLOCK_INPUT_ERROR_MISMATCHED_KZG_COMMITMENT";
14
+ })(BlockInputErrorCode || (BlockInputErrorCode = {}));
15
+ export class BlockInputError extends LodestarError {
16
+ }
17
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/chain/blocks/blockInput/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAI9C,MAAM,CAAN,IAAY,mBAcX;AAdD,WAAY,mBAAmB;IAC7B,gBAAgB;IAChB,sFAA+D,CAAA;IAE/D,8CAA8C;IAC9C,4EAAqD,CAAA;IAErD,4CAA4C;IAC5C,wEAAiD,CAAA;IACjD,wFAAiE,CAAA;IAEjE,oBAAoB;IACpB,oFAA6D,CAAA;IAC7D,gGAAyE,CAAA;AAC3E,CAAC,EAdW,mBAAmB,KAAnB,mBAAmB,QAc9B;AA4BD,MAAM,OAAO,eAAgB,SAAQ,aAAkC;CAAG"}
@@ -0,0 +1,4 @@
1
+ export * from "./blockInput.js";
2
+ export * from "./errors.js";
3
+ export * from "./types.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,4 @@
1
+ export * from "./blockInput.js";
2
+ export * from "./errors.js";
3
+ export * from "./types.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/chain/blocks/blockInput/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}