@lodestar/beacon-node 1.40.0-dev.4acd3ce568 → 1.40.0-dev.9defa5c09b

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 (251) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +8 -18
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/debug/index.d.ts +1 -1
  5. package/lib/api/impl/debug/index.d.ts.map +1 -1
  6. package/lib/api/impl/debug/index.js +3 -6
  7. package/lib/api/impl/debug/index.js.map +1 -1
  8. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  9. package/lib/api/impl/lodestar/index.js +5 -2
  10. package/lib/api/impl/lodestar/index.js.map +1 -1
  11. package/lib/api/impl/validator/index.d.ts.map +1 -1
  12. package/lib/api/impl/validator/index.js +9 -8
  13. package/lib/api/impl/validator/index.js.map +1 -1
  14. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  15. package/lib/chain/archiveStore/utils/archiveBlocks.js +4 -0
  16. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  17. package/lib/chain/blocks/blockInput/blockInput.d.ts +2 -0
  18. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  19. package/lib/chain/blocks/blockInput/blockInput.js +6 -0
  20. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  21. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  22. package/lib/chain/blocks/importBlock.js +2 -6
  23. package/lib/chain/blocks/importBlock.js.map +1 -1
  24. package/lib/chain/blocks/index.d.ts.map +1 -1
  25. package/lib/chain/blocks/index.js +0 -14
  26. package/lib/chain/blocks/index.js.map +1 -1
  27. package/lib/chain/blocks/types.d.ts +0 -2
  28. package/lib/chain/blocks/types.d.ts.map +1 -1
  29. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  30. package/lib/chain/blocks/verifyBlock.js +0 -7
  31. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  32. package/lib/chain/blocks/writeBlockInputToDb.d.ts +1 -4
  33. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  34. package/lib/chain/blocks/writeBlockInputToDb.js +20 -28
  35. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  36. package/lib/chain/chain.d.ts +21 -4
  37. package/lib/chain/chain.d.ts.map +1 -1
  38. package/lib/chain/chain.js +178 -13
  39. package/lib/chain/chain.js.map +1 -1
  40. package/lib/chain/errors/attestationError.d.ts +14 -1
  41. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  42. package/lib/chain/errors/attestationError.js +8 -0
  43. package/lib/chain/errors/attestationError.js.map +1 -1
  44. package/lib/chain/errors/executionPayloadBid.d.ts +48 -0
  45. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -0
  46. package/lib/chain/errors/executionPayloadBid.js +15 -0
  47. package/lib/chain/errors/executionPayloadBid.js.map +1 -0
  48. package/lib/chain/errors/executionPayloadEnvelope.d.ts +48 -0
  49. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -0
  50. package/lib/chain/errors/executionPayloadEnvelope.js +16 -0
  51. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -0
  52. package/lib/chain/errors/index.d.ts +3 -0
  53. package/lib/chain/errors/index.d.ts.map +1 -1
  54. package/lib/chain/errors/index.js +3 -0
  55. package/lib/chain/errors/index.js.map +1 -1
  56. package/lib/chain/errors/payloadAttestation.d.ts +34 -0
  57. package/lib/chain/errors/payloadAttestation.d.ts.map +1 -0
  58. package/lib/chain/errors/payloadAttestation.js +13 -0
  59. package/lib/chain/errors/payloadAttestation.js.map +1 -0
  60. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  61. package/lib/chain/forkChoice/index.js +18 -0
  62. package/lib/chain/forkChoice/index.js.map +1 -1
  63. package/lib/chain/interface.d.ts +21 -3
  64. package/lib/chain/interface.d.ts.map +1 -1
  65. package/lib/chain/interface.js.map +1 -1
  66. package/lib/chain/opPools/executionPayloadBidPool.d.ts +21 -0
  67. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -0
  68. package/lib/chain/opPools/executionPayloadBidPool.js +57 -0
  69. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -0
  70. package/lib/chain/opPools/index.d.ts +2 -0
  71. package/lib/chain/opPools/index.d.ts.map +1 -1
  72. package/lib/chain/opPools/index.js +2 -0
  73. package/lib/chain/opPools/index.js.map +1 -1
  74. package/lib/chain/opPools/payloadAttestationPool.d.ts +24 -0
  75. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -0
  76. package/lib/chain/opPools/payloadAttestationPool.js +109 -0
  77. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -0
  78. package/lib/chain/prepareNextSlot.js +6 -4
  79. package/lib/chain/prepareNextSlot.js.map +1 -1
  80. package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -2
  81. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  82. package/lib/chain/produceBlock/produceBlockBody.js +5 -3
  83. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  84. package/lib/chain/regen/interface.d.ts +3 -8
  85. package/lib/chain/regen/interface.d.ts.map +1 -1
  86. package/lib/chain/regen/interface.js +1 -1
  87. package/lib/chain/regen/interface.js.map +1 -1
  88. package/lib/chain/regen/queued.d.ts +1 -2
  89. package/lib/chain/regen/queued.d.ts.map +1 -1
  90. package/lib/chain/regen/queued.js +2 -16
  91. package/lib/chain/regen/queued.js.map +1 -1
  92. package/lib/chain/regen/regen.d.ts +3 -7
  93. package/lib/chain/regen/regen.d.ts.map +1 -1
  94. package/lib/chain/regen/regen.js +3 -16
  95. package/lib/chain/regen/regen.js.map +1 -1
  96. package/lib/chain/seenCache/index.d.ts +3 -1
  97. package/lib/chain/seenCache/index.d.ts.map +1 -1
  98. package/lib/chain/seenCache/index.js +3 -1
  99. package/lib/chain/seenCache/index.js.map +1 -1
  100. package/lib/chain/seenCache/seenAttesters.d.ts +5 -0
  101. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  102. package/lib/chain/seenCache/seenAttesters.js +5 -0
  103. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  104. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts +12 -0
  105. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -0
  106. package/lib/chain/seenCache/seenExecutionPayloadBids.js +30 -0
  107. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -0
  108. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts +15 -0
  109. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -0
  110. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js +28 -0
  111. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -0
  112. package/lib/chain/validation/aggregateAndProof.js +32 -10
  113. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  114. package/lib/chain/validation/attestation.d.ts.map +1 -1
  115. package/lib/chain/validation/attestation.js +23 -4
  116. package/lib/chain/validation/attestation.js.map +1 -1
  117. package/lib/chain/validation/blobSidecar.js +1 -1
  118. package/lib/chain/validation/blobSidecar.js.map +1 -1
  119. package/lib/chain/validation/block.d.ts.map +1 -1
  120. package/lib/chain/validation/block.js +4 -3
  121. package/lib/chain/validation/block.js.map +1 -1
  122. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  123. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  124. package/lib/chain/validation/executionPayloadBid.d.ts +5 -0
  125. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -0
  126. package/lib/chain/validation/executionPayloadBid.js +103 -0
  127. package/lib/chain/validation/executionPayloadBid.js.map +1 -0
  128. package/lib/chain/validation/executionPayloadEnvelope.d.ts +5 -0
  129. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -0
  130. package/lib/chain/validation/executionPayloadEnvelope.js +89 -0
  131. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -0
  132. package/lib/chain/validation/payloadAttestationMessage.d.ts +9 -0
  133. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -0
  134. package/lib/chain/validation/payloadAttestationMessage.js +72 -0
  135. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -0
  136. package/lib/chain/validatorMonitor.d.ts +2 -0
  137. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  138. package/lib/chain/validatorMonitor.js +42 -3
  139. package/lib/chain/validatorMonitor.js.map +1 -1
  140. package/lib/db/repositories/checkpointState.js +0 -1
  141. package/lib/db/repositories/checkpointState.js.map +1 -1
  142. package/lib/metrics/metrics/lodestar.d.ts +27 -0
  143. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  144. package/lib/metrics/metrics/lodestar.js +64 -0
  145. package/lib/metrics/metrics/lodestar.js.map +1 -1
  146. package/lib/network/gossip/interface.d.ts +20 -2
  147. package/lib/network/gossip/interface.d.ts.map +1 -1
  148. package/lib/network/gossip/interface.js +3 -0
  149. package/lib/network/gossip/interface.js.map +1 -1
  150. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  151. package/lib/network/gossip/scoringParameters.js +38 -2
  152. package/lib/network/gossip/scoringParameters.js.map +1 -1
  153. package/lib/network/gossip/topic.d.ts +77 -1
  154. package/lib/network/gossip/topic.d.ts.map +1 -1
  155. package/lib/network/gossip/topic.js +20 -0
  156. package/lib/network/gossip/topic.js.map +1 -1
  157. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  158. package/lib/network/processor/gossipHandlers.js +34 -3
  159. package/lib/network/processor/gossipHandlers.js.map +1 -1
  160. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  161. package/lib/network/processor/gossipQueues/index.js +16 -0
  162. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  163. package/lib/network/processor/index.d.ts.map +1 -1
  164. package/lib/network/processor/index.js +3 -0
  165. package/lib/network/processor/index.js.map +1 -1
  166. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  167. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +2 -4
  168. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  169. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts +1 -2
  170. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts.map +1 -1
  171. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js +5 -26
  172. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  173. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts +1 -2
  174. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +1 -1
  175. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +5 -7
  176. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  177. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  178. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +1 -2
  179. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  180. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +1 -1
  181. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -5
  182. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  183. package/lib/network/reqresp/handlers/index.js +2 -2
  184. package/lib/network/reqresp/handlers/index.js.map +1 -1
  185. package/lib/sync/range/chain.d.ts.map +1 -1
  186. package/lib/sync/range/chain.js +0 -1
  187. package/lib/sync/range/chain.js.map +1 -1
  188. package/lib/sync/range/range.d.ts.map +1 -1
  189. package/lib/sync/range/range.js +0 -3
  190. package/lib/sync/range/range.js.map +1 -1
  191. package/lib/sync/unknownBlock.d.ts.map +1 -1
  192. package/lib/sync/unknownBlock.js +0 -3
  193. package/lib/sync/unknownBlock.js.map +1 -1
  194. package/package.json +15 -15
  195. package/src/api/impl/beacon/blocks/index.ts +8 -18
  196. package/src/api/impl/debug/index.ts +2 -6
  197. package/src/api/impl/lodestar/index.ts +6 -3
  198. package/src/api/impl/validator/index.ts +12 -11
  199. package/src/chain/archiveStore/utils/archiveBlocks.ts +4 -0
  200. package/src/chain/blocks/blockInput/blockInput.ts +8 -0
  201. package/src/chain/blocks/importBlock.ts +2 -6
  202. package/src/chain/blocks/index.ts +0 -19
  203. package/src/chain/blocks/types.ts +0 -2
  204. package/src/chain/blocks/verifyBlock.ts +0 -8
  205. package/src/chain/blocks/writeBlockInputToDb.ts +24 -30
  206. package/src/chain/chain.ts +203 -21
  207. package/src/chain/errors/attestationError.ts +11 -1
  208. package/src/chain/errors/executionPayloadBid.ts +35 -0
  209. package/src/chain/errors/executionPayloadEnvelope.ts +34 -0
  210. package/src/chain/errors/index.ts +3 -0
  211. package/src/chain/errors/payloadAttestation.ts +25 -0
  212. package/src/chain/forkChoice/index.ts +19 -0
  213. package/src/chain/interface.ts +32 -1
  214. package/src/chain/opPools/executionPayloadBidPool.ts +77 -0
  215. package/src/chain/opPools/index.ts +2 -0
  216. package/src/chain/opPools/payloadAttestationPool.ts +157 -0
  217. package/src/chain/prepareNextSlot.ts +6 -6
  218. package/src/chain/produceBlock/produceBlockBody.ts +7 -5
  219. package/src/chain/regen/interface.ts +2 -12
  220. package/src/chain/regen/queued.ts +3 -23
  221. package/src/chain/regen/regen.ts +4 -24
  222. package/src/chain/seenCache/index.ts +3 -1
  223. package/src/chain/seenCache/seenAttesters.ts +5 -0
  224. package/src/chain/seenCache/seenExecutionPayloadBids.ts +35 -0
  225. package/src/chain/seenCache/seenExecutionPayloadEnvelope.ts +34 -0
  226. package/src/chain/validation/aggregateAndProof.ts +33 -10
  227. package/src/chain/validation/attestation.ts +24 -3
  228. package/src/chain/validation/blobSidecar.ts +1 -1
  229. package/src/chain/validation/block.ts +4 -3
  230. package/src/chain/validation/dataColumnSidecar.ts +1 -1
  231. package/src/chain/validation/executionPayloadBid.ts +140 -0
  232. package/src/chain/validation/executionPayloadEnvelope.ts +122 -0
  233. package/src/chain/validation/payloadAttestationMessage.ts +109 -0
  234. package/src/chain/validatorMonitor.ts +52 -3
  235. package/src/db/repositories/checkpointState.ts +1 -1
  236. package/src/metrics/metrics/lodestar.ts +65 -0
  237. package/src/network/gossip/interface.ts +17 -0
  238. package/src/network/gossip/scoringParameters.ts +44 -2
  239. package/src/network/gossip/topic.ts +21 -0
  240. package/src/network/processor/gossipHandlers.ts +48 -3
  241. package/src/network/processor/gossipQueues/index.ts +16 -0
  242. package/src/network/processor/index.ts +3 -0
  243. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +2 -4
  244. package/src/network/reqresp/handlers/beaconBlocksByRoot.ts +5 -32
  245. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +5 -9
  246. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +5 -2
  247. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +1 -5
  248. package/src/network/reqresp/handlers/index.ts +2 -2
  249. package/src/sync/range/chain.ts +0 -1
  250. package/src/sync/range/range.ts +0 -3
  251. package/src/sync/unknownBlock.ts +0 -3
@@ -61,11 +61,7 @@ export async function* onDataColumnSidecarsByRoot(
61
61
  continue;
62
62
  }
63
63
 
64
- const dataColumns = block
65
- ? // Non-finalized sidecars are stored by block root
66
- await db.dataColumnSidecar.getManyBinary(blockRoot, availableColumns)
67
- : // Finalized sidecars are archived and stored by slot
68
- await db.dataColumnSidecarArchive.getManyBinary(slot, availableColumns);
64
+ const dataColumns = await chain.getSerializedDataColumnSidecars(slot, blockRootHex, availableColumns);
69
65
 
70
66
  const unavailableColumnIndices: ColumnIndex[] = [];
71
67
  for (let i = 0; i < dataColumns.length; i++) {
@@ -42,12 +42,12 @@ export function getReqRespHandlers({db, chain}: {db: IBeaconDb; chain: IBeaconCh
42
42
  [ReqRespMethod.BeaconBlocksByRoot]: (req) => {
43
43
  const fork = chain.config.getForkName(chain.clock.currentSlot);
44
44
  const body = BeaconBlocksByRootRequestType(fork, chain.config).deserialize(req.data);
45
- return onBeaconBlocksByRoot(body, chain, db);
45
+ return onBeaconBlocksByRoot(body, chain);
46
46
  },
47
47
  [ReqRespMethod.BlobSidecarsByRoot]: (req) => {
48
48
  const fork = chain.config.getForkName(chain.clock.currentSlot);
49
49
  const body = BlobSidecarsByRootRequestType(fork, chain.config).deserialize(req.data);
50
- return onBlobSidecarsByRoot(body, chain, db);
50
+ return onBlobSidecarsByRoot(body, chain);
51
51
  },
52
52
  [ReqRespMethod.BlobSidecarsByRange]: (req) => {
53
53
  const body = ssz.deneb.BlobSidecarsByRangeRequest.deserialize(req.data);
@@ -585,7 +585,6 @@ export class SyncChain {
585
585
 
586
586
  if (!res.err) {
587
587
  batch.processingSuccess();
588
- this.pruneBlockInputs(batch.getBlocks());
589
588
 
590
589
  // If the processed batch is not empty, validate previous AwaitingValidation blocks.
591
590
  if (blocks.length > 0) {
@@ -188,9 +188,6 @@ export class RangeSync extends (EventEmitter as {new (): RangeSyncEmitter}) {
188
188
  // when this runs, syncing is the most important thing and gossip is not likely to run
189
189
  // so we can utilize worker threads to verify signatures
190
190
  blsVerifyOnMainThread: false,
191
- // we want to be safe to only persist blocks after verifying it to avoid any attacks that may cause our DB
192
- // to grow too much
193
- eagerPersistBlock: false,
194
191
  };
195
192
 
196
193
  if (this.opts?.disableProcessAsChainSegment) {
@@ -423,8 +423,6 @@ export class BlockInputSync {
423
423
  // see https://github.com/ChainSafe/lodestar/issues/5650
424
424
  ignoreIfFinalized: true,
425
425
  blsVerifyOnMainThread: true,
426
- // block is validated with correct root, we want to process it as soon as possible
427
- eagerPersistBlock: true,
428
426
  })
429
427
  );
430
428
 
@@ -434,7 +432,6 @@ export class BlockInputSync {
434
432
  if (!res.err) {
435
433
  // no need to update status to "processed", delete anyway
436
434
  this.pendingBlocks.delete(pendingBlock.blockInput.blockRootHex);
437
- this.chain.seenBlockInputCache.prune(pendingBlock.blockInput.blockRootHex);
438
435
 
439
436
  // Send child blocks to the processor
440
437
  for (const descendantBlock of getDescendantBlocks(pendingBlock.blockInput.blockRootHex, this.pendingBlocks)) {