@lodestar/beacon-node 1.41.0-dev.bb33751bfd → 1.41.0-dev.be5acbb8f7

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 (166) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +3 -2
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/validator/index.d.ts.map +1 -1
  5. package/lib/api/impl/validator/index.js +26 -10
  6. package/lib/api/impl/validator/index.js.map +1 -1
  7. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  8. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  9. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +3 -8
  10. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  11. package/lib/chain/archiveStore/utils/archiveBlocks.js +1 -1
  12. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  13. package/lib/chain/archiveStore/utils/updateBackfillRange.js +1 -1
  14. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +1 -1
  15. package/lib/chain/blocks/blockInput/blockInput.d.ts +5 -0
  16. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  17. package/lib/chain/blocks/blockInput/blockInput.js +24 -0
  18. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  19. package/lib/chain/blocks/blockInput/types.d.ts +16 -0
  20. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  21. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  22. package/lib/chain/blocks/importBlock.js +27 -4
  23. package/lib/chain/blocks/importBlock.js.map +1 -1
  24. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  25. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -1
  26. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  27. package/lib/chain/blocks/writeBlockInputToDb.d.ts +12 -3
  28. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  29. package/lib/chain/blocks/writeBlockInputToDb.js +92 -98
  30. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  31. package/lib/chain/chain.d.ts +2 -2
  32. package/lib/chain/chain.d.ts.map +1 -1
  33. package/lib/chain/chain.js +13 -12
  34. package/lib/chain/chain.js.map +1 -1
  35. package/lib/chain/emitter.d.ts +3 -3
  36. package/lib/chain/emitter.d.ts.map +1 -1
  37. package/lib/chain/errors/executionPayloadBid.d.ts +1 -1
  38. package/lib/chain/errors/executionPayloadEnvelope.d.ts +2 -2
  39. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  40. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  41. package/lib/chain/errors/payloadAttestation.d.ts +1 -1
  42. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  43. package/lib/chain/forkChoice/index.js +30 -24
  44. package/lib/chain/forkChoice/index.js.map +1 -1
  45. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  46. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  47. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +0 -1
  48. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  49. package/lib/chain/produceBlock/computeNewStateRoot.js +4 -3
  50. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  51. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  52. package/lib/chain/produceBlock/produceBlockBody.js +1 -2
  53. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  54. package/lib/chain/regen/queued.d.ts.map +1 -1
  55. package/lib/chain/regen/queued.js +4 -1
  56. package/lib/chain/regen/queued.js.map +1 -1
  57. package/lib/chain/regen/regen.d.ts.map +1 -1
  58. package/lib/chain/regen/regen.js +6 -2
  59. package/lib/chain/regen/regen.js.map +1 -1
  60. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +5 -1
  61. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  62. package/lib/chain/seenCache/seenGossipBlockInput.js +21 -8
  63. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  64. package/lib/chain/validation/aggregateAndProof.js +1 -1
  65. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  66. package/lib/chain/validation/attestation.js +3 -3
  67. package/lib/chain/validation/attestation.js.map +1 -1
  68. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  69. package/lib/chain/validation/attesterSlashing.js +8 -1
  70. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  71. package/lib/chain/validation/blobSidecar.js +2 -2
  72. package/lib/chain/validation/blobSidecar.js.map +1 -1
  73. package/lib/chain/validation/block.d.ts.map +1 -1
  74. package/lib/chain/validation/block.js +6 -3
  75. package/lib/chain/validation/block.js.map +1 -1
  76. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  77. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  78. package/lib/chain/validation/executionPayloadBid.js +1 -2
  79. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  80. package/lib/chain/validation/executionPayloadEnvelope.js +4 -4
  81. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  82. package/lib/chain/validation/payloadAttestationMessage.js +1 -2
  83. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  84. package/lib/db/index.d.ts +1 -0
  85. package/lib/db/index.d.ts.map +1 -1
  86. package/lib/db/index.js +1 -0
  87. package/lib/db/index.js.map +1 -1
  88. package/lib/metrics/metrics/lodestar.d.ts +1 -0
  89. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  90. package/lib/metrics/metrics/lodestar.js +4 -0
  91. package/lib/metrics/metrics/lodestar.js.map +1 -1
  92. package/lib/network/network.d.ts.map +1 -1
  93. package/lib/network/network.js +1 -1
  94. package/lib/network/network.js.map +1 -1
  95. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  96. package/lib/network/processor/gossipHandlers.js +1 -0
  97. package/lib/network/processor/gossipHandlers.js.map +1 -1
  98. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  99. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -2
  100. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  101. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  102. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +3 -2
  103. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  104. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +1 -1
  105. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  106. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  107. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +3 -2
  108. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  109. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -1
  110. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  111. package/lib/network/reqresp/utils/collect.d.ts +1 -1
  112. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts +1 -1
  113. package/lib/sync/utils/downloadByRoot.d.ts +1 -1
  114. package/lib/sync/utils/remoteSyncType.d.ts +1 -1
  115. package/lib/util/serializedCache.d.ts +4 -4
  116. package/lib/util/serializedCache.d.ts.map +1 -1
  117. package/lib/util/serializedCache.js +6 -4
  118. package/lib/util/serializedCache.js.map +1 -1
  119. package/package.json +26 -26
  120. package/src/api/impl/beacon/blocks/index.ts +3 -2
  121. package/src/api/impl/validator/index.ts +26 -12
  122. package/src/chain/archiveStore/archiveStore.ts +5 -5
  123. package/src/chain/archiveStore/utils/archiveBlocks.ts +4 -5
  124. package/src/chain/archiveStore/utils/updateBackfillRange.ts +1 -1
  125. package/src/chain/blocks/blockInput/blockInput.ts +35 -0
  126. package/src/chain/blocks/blockInput/types.ts +17 -0
  127. package/src/chain/blocks/importBlock.ts +35 -4
  128. package/src/chain/blocks/verifyBlocksSanityChecks.ts +7 -2
  129. package/src/chain/blocks/writeBlockInputToDb.ts +105 -104
  130. package/src/chain/chain.ts +31 -19
  131. package/src/chain/emitter.ts +3 -3
  132. package/src/chain/errors/executionPayloadBid.ts +1 -1
  133. package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
  134. package/src/chain/errors/payloadAttestation.ts +1 -1
  135. package/src/chain/forkChoice/index.ts +39 -21
  136. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  137. package/src/chain/produceBlock/computeNewStateRoot.ts +4 -3
  138. package/src/chain/produceBlock/produceBlockBody.ts +1 -2
  139. package/src/chain/regen/queued.ts +7 -2
  140. package/src/chain/regen/regen.ts +9 -3
  141. package/src/chain/seenCache/seenGossipBlockInput.ts +38 -10
  142. package/src/chain/validation/aggregateAndProof.ts +1 -1
  143. package/src/chain/validation/attestation.ts +3 -3
  144. package/src/chain/validation/attesterSlashing.ts +9 -0
  145. package/src/chain/validation/blobSidecar.ts +2 -2
  146. package/src/chain/validation/block.ts +9 -4
  147. package/src/chain/validation/dataColumnSidecar.ts +1 -1
  148. package/src/chain/validation/executionPayloadBid.ts +1 -2
  149. package/src/chain/validation/executionPayloadEnvelope.ts +4 -4
  150. package/src/chain/validation/payloadAttestationMessage.ts +1 -2
  151. package/src/db/index.ts +1 -0
  152. package/src/metrics/metrics/lodestar.ts +4 -0
  153. package/src/network/network.ts +2 -1
  154. package/src/network/processor/gossipHandlers.ts +6 -1
  155. package/src/network/processor/gossipValidatorFn.ts +1 -1
  156. package/src/network/reqresp/ReqRespBeaconNode.ts +1 -1
  157. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +4 -3
  158. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +3 -2
  159. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +1 -1
  160. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +4 -3
  161. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +2 -2
  162. package/src/network/reqresp/utils/collect.ts +1 -1
  163. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +1 -1
  164. package/src/sync/utils/downloadByRoot.ts +1 -1
  165. package/src/sync/utils/remoteSyncType.ts +1 -1
  166. package/src/util/serializedCache.ts +7 -5
@@ -1 +1 @@
1
- {"version":3,"file":"blobSidecarsByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/blobSidecarsByRange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blobSidecarsByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/blobSidecarsByRange.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export async function* onBlobSidecarsByRoot(requestBody, chain) {
11
11
  for (const blobIdentifier of requestBody) {
12
12
  const { blockRoot, index } = blobIdentifier;
13
13
  const blockRootHex = toRootHex(blockRoot);
14
- const block = chain.forkChoice.getBlockHex(blockRootHex);
14
+ const block = chain.forkChoice.getBlockHexDefaultStatus(blockRootHex);
15
15
  // NOTE: Only support non-finalized blocks.
16
16
  // SPEC: Clients MUST support requesting blocks and sidecars since the latest finalized epoch.
17
17
  // https://github.com/ethereum/consensus-specs/blob/11a037fd9227e29ee809c9397b09f8cc3383a8c0/specs/eip4844/p2p-interface.md#beaconblockandblobssidecarbyroot-v1
@@ -1 +1 @@
1
- {"version":3,"file":"blobSidecarsByRoot.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/blobSidecarsByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAC,UAAU,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAI1C,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CACzC,WAAsC,EACtC,KAAmB;IAEnB,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC;IAEhE,qFAAqF;IACrF,mFAAmF;IACnF,aAAa;IACb,IAAI,mBAAmB,GAAmD,IAAI,CAAC;IAE/E,KAAK,MAAM,cAAc,IAAI,WAAW,EAAE,CAAC;QACzC,MAAM,EAAC,SAAS,EAAE,KAAK,EAAC,GAAG,cAAc,CAAC;QAC1C,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAEzD,2CAA2C;QAC3C,8FAA8F;QAC9F,+JAA+J;QAC/J,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,aAAa,EAAE,CAAC;YAC1C,SAAS;QACX,CAAC;QAED,yDAAyD;QACzD,IAAI,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACnF,MAAM,iBAAiB,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC1F,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,2CAA2C;gBAC3C,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,YAAY,EAAE,oBAAoB,KAAK,CAAC,SAAS,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7G,CAAC;YAED,mBAAmB,GAAG,EAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAC,CAAC;QAC5E,CAAC;QAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,CACtD,KAAK,GAAG,uBAAuB,EAC/B,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,uBAAuB,CACtC,CAAC;QACF,IAAI,gBAAgB,CAAC,MAAM,KAAK,uBAAuB,EAAE,CAAC;YACxD,MAAM,KAAK,CACT,6CAA6C,YAAY,UAAU,KAAK,qBAAqB,gBAAgB,CAAC,MAAM,aAAa,uBAAuB,EAAE,CAC3J,CAAC;QACJ,CAAC;QAED,MAAM;YACJ,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9E,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"blobSidecarsByRoot.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/blobSidecarsByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,uBAAuB,EAAC,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAC,UAAU,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAI1C,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CACzC,WAAsC,EACtC,KAAmB;IAEnB,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC;IAEhE,qFAAqF;IACrF,mFAAmF;IACnF,aAAa;IACb,IAAI,mBAAmB,GAAmD,IAAI,CAAC;IAE/E,KAAK,MAAM,cAAc,IAAI,WAAW,EAAE,CAAC;QACzC,MAAM,EAAC,SAAS,EAAE,KAAK,EAAC,GAAG,cAAc,CAAC;QAC1C,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;QAEtE,2CAA2C;QAC3C,8FAA8F;QAC9F,+JAA+J;QAC/J,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,aAAa,EAAE,CAAC;YAC1C,SAAS;QACX,CAAC;QAED,yDAAyD;QACzD,IAAI,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACnF,MAAM,iBAAiB,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC1F,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,2CAA2C;gBAC3C,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,YAAY,EAAE,oBAAoB,KAAK,CAAC,SAAS,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7G,CAAC;YAED,mBAAmB,GAAG,EAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAC,CAAC;QAC5E,CAAC;QAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,CACtD,KAAK,GAAG,uBAAuB,EAC/B,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,uBAAuB,CACtC,CAAC;QACF,IAAI,gBAAgB,CAAC,MAAM,KAAK,uBAAuB,EAAE,CAAC;YACxD,MAAM,KAAK,CACT,6CAA6C,YAAY,UAAU,KAAK,qBAAqB,gBAAgB,CAAC,MAAM,aAAa,uBAAuB,EAAE,CAC3J,CAAC;QACJ,CAAC;QAED,MAAM;YACJ,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC9E,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dataColumnSidecarsByRange.d.ts","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/dataColumnSidecarsByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAA4B,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAc,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAO/C,wBAAuB,2BAA2B,CAChD,OAAO,EAAE,IAAI,CAAC,gCAAgC,EAC9C,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,aAAa,CAAC,gBAAgB,CAAC,CAmHjC;AAED,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,IAAI,CAAC,gCAAgC,GAC7C,IAAI,CAAC,gCAAgC,CAiBvC"}
1
+ {"version":3,"file":"dataColumnSidecarsByRange.d.ts","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/dataColumnSidecarsByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAA4B,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAc,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAO/C,wBAAuB,2BAA2B,CAChD,OAAO,EAAE,IAAI,CAAC,gCAAgC,EAC9C,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,aAAa,CAAC,gBAAgB,CAAC,CAoHjC;AAED,wBAAgB,wCAAwC,CACtD,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,IAAI,CAAC,gCAAgC,GAC7C,IAAI,CAAC,gCAAgC,CAiBvC"}
@@ -55,8 +55,9 @@ export async function* onDataColumnSidecarsByRange(request, chain, db, peerId, p
55
55
  }
56
56
  // Non-finalized range of columns
57
57
  if (endSlot > finalizedSlot) {
58
- const headRoot = chain.forkChoice.getHeadRoot();
59
- const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot);
58
+ const headBlock = chain.forkChoice.getHead();
59
+ const headRoot = headBlock.blockRoot;
60
+ const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot, headBlock.payloadStatus);
60
61
  // Iterate head chain with ascending block numbers
61
62
  for (let i = headChain.length - 1; i >= 0; i--) {
62
63
  const block = headChain[i];
@@ -1 +1 @@
1
- {"version":3,"file":"dataColumnSidecarsByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/dataColumnSidecarsByRange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataColumnSidecarsByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/dataColumnSidecarsByRange.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export async function* onDataColumnSidecarsByRoot(requestBody, chain, db, peerId
13
13
  return;
14
14
  }
15
15
  const blockRootHex = toRootHex(blockRoot);
16
- const block = chain.forkChoice.getBlockHex(blockRootHex);
16
+ const block = chain.forkChoice.getBlockHexDefaultStatus(blockRootHex);
17
17
  // If the block is not in fork choice, it may be finalized. Attempt to find its slot in block archive
18
18
  const slot = block ? block.slot : await db.blockArchive.getSlotByRoot(blockRoot);
19
19
  if (slot === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"dataColumnSidecarsByRoot.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataColumnSidecarsByRoot.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Type } from "@chainsafe/ssz";
2
2
  import { ResponseIncoming } from "@lodestar/reqresp";
3
- import { SerializedCache } from "../../../util/serializedCache.ts";
3
+ import { SerializedCache } from "../../../util/serializedCache.js";
4
4
  import { ResponseTypeGetter } from "../types.js";
5
5
  /**
6
6
  * Sink for `<response_chunk>*`, from
@@ -1,7 +1,7 @@
1
1
  import { ResponseIncoming } from "@lodestar/reqresp";
2
2
  import { SignedBeaconBlock, phase0 } from "@lodestar/types";
3
3
  import { LodestarError } from "@lodestar/utils";
4
- import { SerializedCache } from "../../../util/serializedCache.ts";
4
+ import { SerializedCache } from "../../../util/serializedCache.js";
5
5
  /**
6
6
  * Asserts a response from BeaconBlocksByRange respects the request and is sequential
7
7
  * Note: MUST allow missing block for skipped slots.
@@ -3,7 +3,7 @@ import { ForkPostDeneb, ForkPostFulu, ForkPreFulu } from "@lodestar/params";
3
3
  import { BlobIndex, ColumnIndex, SignedBeaconBlock, Slot, deneb, fulu } from "@lodestar/types";
4
4
  import { LodestarError } from "@lodestar/utils";
5
5
  import { ChainEventEmitter } from "../../chain/emitter.js";
6
- import { IBeaconChain } from "../../chain/interface.ts";
6
+ import { IBeaconChain } from "../../chain/interface.js";
7
7
  import { INetwork } from "../../network/interface.js";
8
8
  import { PeerSyncMeta } from "../../network/peers/peersData.js";
9
9
  import { PeerIdStr } from "../../util/peerId.js";
@@ -1,6 +1,6 @@
1
1
  import { IForkChoice } from "@lodestar/fork-choice";
2
2
  import { Slot, Status } from "@lodestar/types";
3
- import { IBeaconChain } from "../../chain/interface.ts";
3
+ import { IBeaconChain } from "../../chain/interface.js";
4
4
  import { ChainTarget } from "../range/utils/index.js";
5
5
  /** The type of peer relative to our current state */
6
6
  export declare enum PeerSyncType {
@@ -4,14 +4,14 @@
4
4
  * This is a thin wrapper around WeakMap
5
5
  */
6
6
  export declare class SerializedCache {
7
- map: WeakMap<object, Uint8Array>;
7
+ private map;
8
8
  get(obj: object): Uint8Array | undefined;
9
9
  set(obj: object, serialized: Uint8Array): void;
10
10
  /**
11
- * Replace the internal WeakMap to force GC of all cached entries.
12
- * Must only be called after all DB writes that may read from this cache have completed,
11
+ * Delete cached serialized entries for the provided object references.
12
+ * Must only be called after all DB writes that read from this cache for these objects have completed,
13
13
  * otherwise cached serialized bytes will be unavailable and data will be re-serialized unnecessarily.
14
14
  */
15
- clear(): void;
15
+ delete(objs: object[]): void;
16
16
  }
17
17
  //# sourceMappingURL=serializedCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializedCache.d.ts","sourceRoot":"","sources":["../../src/util/serializedCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAiB;IAEjD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAI9C;;;;OAIG;IACH,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"serializedCache.d.ts","sourceRoot":"","sources":["../../src/util/serializedCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAA8C;IAEzD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAI9C;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;CAK7B"}
@@ -12,12 +12,14 @@ export class SerializedCache {
12
12
  this.map.set(obj, serialized);
13
13
  }
14
14
  /**
15
- * Replace the internal WeakMap to force GC of all cached entries.
16
- * Must only be called after all DB writes that may read from this cache have completed,
15
+ * Delete cached serialized entries for the provided object references.
16
+ * Must only be called after all DB writes that read from this cache for these objects have completed,
17
17
  * otherwise cached serialized bytes will be unavailable and data will be re-serialized unnecessarily.
18
18
  */
19
- clear() {
20
- this.map = new WeakMap();
19
+ delete(objs) {
20
+ for (const obj of objs) {
21
+ this.map.delete(obj);
22
+ }
21
23
  }
22
24
  }
23
25
  //# sourceMappingURL=serializedCache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializedCache.js","sourceRoot":"","sources":["../../src/util/serializedCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAC1B,GAAG,GAAgC,IAAI,OAAO,EAAE,CAAC;IAEjD,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,UAAsB;QACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"serializedCache.js","sourceRoot":"","sources":["../../src/util/serializedCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAClB,GAAG,GAAgC,IAAI,OAAO,EAAE,CAAC;IAEzD,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,UAAsB;QACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAc;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.41.0-dev.bb33751bfd",
14
+ "version": "1.41.0-dev.be5acbb8f7",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -124,37 +124,37 @@
124
124
  "@fastify/cors": "^10.0.1",
125
125
  "@fastify/swagger": "^9.0.0",
126
126
  "@fastify/swagger-ui": "^5.0.1",
127
- "@libp2p/bootstrap": "^12.0.12",
127
+ "@libp2p/bootstrap": "^12.0.13",
128
128
  "@libp2p/crypto": "^5.1.13",
129
- "@libp2p/gossipsub": "^15.0.13",
130
- "@libp2p/identify": "^4.0.11",
129
+ "@libp2p/gossipsub": "^15.0.14",
130
+ "@libp2p/identify": "^4.0.12",
131
131
  "@libp2p/interface": "^3.1.0",
132
- "@libp2p/mdns": "^12.0.12",
133
- "@libp2p/mplex": "^12.0.12",
132
+ "@libp2p/mdns": "^12.0.13",
133
+ "@libp2p/mplex": "^12.0.13",
134
134
  "@libp2p/peer-id": "^6.0.4",
135
- "@libp2p/prometheus-metrics": "^5.0.11",
136
- "@libp2p/tcp": "^11.0.11",
137
- "@lodestar/api": "^1.41.0-dev.bb33751bfd",
138
- "@lodestar/config": "^1.41.0-dev.bb33751bfd",
139
- "@lodestar/db": "^1.41.0-dev.bb33751bfd",
140
- "@lodestar/fork-choice": "^1.41.0-dev.bb33751bfd",
141
- "@lodestar/light-client": "^1.41.0-dev.bb33751bfd",
142
- "@lodestar/logger": "^1.41.0-dev.bb33751bfd",
143
- "@lodestar/params": "^1.41.0-dev.bb33751bfd",
144
- "@lodestar/reqresp": "^1.41.0-dev.bb33751bfd",
145
- "@lodestar/state-transition": "^1.41.0-dev.bb33751bfd",
146
- "@lodestar/types": "^1.41.0-dev.bb33751bfd",
147
- "@lodestar/utils": "^1.41.0-dev.bb33751bfd",
148
- "@lodestar/validator": "^1.41.0-dev.bb33751bfd",
135
+ "@libp2p/prometheus-metrics": "^5.0.13",
136
+ "@libp2p/tcp": "^11.0.12",
137
+ "@lodestar/api": "^1.41.0-dev.be5acbb8f7",
138
+ "@lodestar/config": "^1.41.0-dev.be5acbb8f7",
139
+ "@lodestar/db": "^1.41.0-dev.be5acbb8f7",
140
+ "@lodestar/fork-choice": "^1.41.0-dev.be5acbb8f7",
141
+ "@lodestar/light-client": "^1.41.0-dev.be5acbb8f7",
142
+ "@lodestar/logger": "^1.41.0-dev.be5acbb8f7",
143
+ "@lodestar/params": "^1.41.0-dev.be5acbb8f7",
144
+ "@lodestar/reqresp": "^1.41.0-dev.be5acbb8f7",
145
+ "@lodestar/state-transition": "^1.41.0-dev.be5acbb8f7",
146
+ "@lodestar/types": "^1.41.0-dev.be5acbb8f7",
147
+ "@lodestar/utils": "^1.41.0-dev.be5acbb8f7",
148
+ "@lodestar/validator": "^1.41.0-dev.be5acbb8f7",
149
149
  "@multiformats/multiaddr": "^13.0.1",
150
150
  "datastore-core": "^11.0.2",
151
151
  "datastore-fs": "^11.0.2",
152
152
  "datastore-level": "^12.0.2",
153
153
  "deepmerge": "^4.3.1",
154
- "fastify": "^5.7.4",
154
+ "fastify": "^5.8.1",
155
155
  "interface-datastore": "^9.0.2",
156
156
  "jwt-simple": "0.5.6",
157
- "libp2p": "3.1.4",
157
+ "libp2p": "3.1.5",
158
158
  "multiformats": "^13.4.2",
159
159
  "prom-client": "^15.1.0",
160
160
  "qs": "^6.11.1",
@@ -165,10 +165,10 @@
165
165
  },
166
166
  "devDependencies": {
167
167
  "@chainsafe/swap-or-not-shuffle": "^1.2.1",
168
- "@libp2p/interface-internal": "^3.0.11",
168
+ "@libp2p/interface-internal": "^3.0.12",
169
169
  "@libp2p/logger": "^6.2.2",
170
- "@libp2p/utils": "^7.0.11",
171
- "@lodestar/spec-test-util": "^1.41.0-dev.bb33751bfd",
170
+ "@libp2p/utils": "^7.0.12",
171
+ "@lodestar/spec-test-util": "^1.41.0-dev.be5acbb8f7",
172
172
  "@types/js-yaml": "^4.0.5",
173
173
  "@types/qs": "^6.9.7",
174
174
  "@types/tmp": "^0.2.3",
@@ -185,5 +185,5 @@
185
185
  "beacon",
186
186
  "blockchain"
187
187
  ],
188
- "gitHead": "2c9a0cd74a616638db49f1c60be741ef758e7647"
188
+ "gitHead": "daf32e31b38dd272b28016e37de0d0419ce72864"
189
189
  }
@@ -1,5 +1,6 @@
1
1
  import {routes} from "@lodestar/api";
2
2
  import {ApiError, ApplicationMethods} from "@lodestar/api/server";
3
+ import {PayloadStatus} from "@lodestar/fork-choice";
3
4
  import {
4
5
  BUILDER_INDEX_SELF_BUILD,
5
6
  ForkPostBellatrix,
@@ -205,7 +206,7 @@ export function getBeaconBlockApi({
205
206
  case routes.beacon.BroadcastValidation.consensus: {
206
207
  // check if this beacon node produced the block else run validations
207
208
  if (!blockLocallyProduced) {
208
- const parentBlock = chain.forkChoice.getBlock(signedBlock.message.parentRoot);
209
+ const parentBlock = chain.forkChoice.getBlockDefaultStatus(signedBlock.message.parentRoot);
209
210
  if (parentBlock === null) {
210
211
  chain.emitter.emit(ChainEvent.unknownParent, {
211
212
  blockInput: blockForImport,
@@ -650,7 +651,7 @@ export function getBeaconBlockApi({
650
651
  }
651
652
 
652
653
  // TODO GLOAS: review checks, do we want to implement `broadcast_validation`?
653
- const block = chain.forkChoice.getBlockHex(blockRootHex);
654
+ const block = chain.forkChoice.getBlockHex(blockRootHex, PayloadStatus.EMPTY);
654
655
  if (block === null) {
655
656
  throw new ApiError(404, `Block not found for beacon block root ${blockRootHex}`);
656
657
  }
@@ -1,6 +1,6 @@
1
1
  import {routes} from "@lodestar/api";
2
2
  import {ApplicationMethods} from "@lodestar/api/server";
3
- import {ExecutionStatus, ProtoBlock} from "@lodestar/fork-choice";
3
+ import {ExecutionStatus, PayloadStatus, ProtoBlock} from "@lodestar/fork-choice";
4
4
  import {
5
5
  BUILDER_INDEX_SELF_BUILD,
6
6
  ForkName,
@@ -389,7 +389,7 @@ export function getValidatorApi(
389
389
  */
390
390
 
391
391
  function notOnOptimisticBlockRoot(beaconBlockRoot: Root): void {
392
- const protoBeaconBlock = chain.forkChoice.getBlock(beaconBlockRoot);
392
+ const protoBeaconBlock = chain.forkChoice.getBlockDefaultStatus(beaconBlockRoot);
393
393
  if (!protoBeaconBlock) {
394
394
  throw new ApiError(404, `Block not in forkChoice, beaconBlockRoot=${toRootHex(beaconBlockRoot)}`);
395
395
  }
@@ -401,7 +401,7 @@ export function getValidatorApi(
401
401
  }
402
402
 
403
403
  function notOnOutOfRangeData(beaconBlockRoot: Root): void {
404
- const protoBeaconBlock = chain.forkChoice.getBlock(beaconBlockRoot);
404
+ const protoBeaconBlock = chain.forkChoice.getBlockDefaultStatus(beaconBlockRoot);
405
405
  if (!protoBeaconBlock) {
406
406
  throw new ApiError(404, `Block not in forkChoice, beaconBlockRoot=${toRootHex(beaconBlockRoot)}`);
407
407
  }
@@ -989,8 +989,30 @@ export function getValidatorApi(
989
989
  const headBlockRoot = fromHex(headBlockRootHex);
990
990
  const fork = config.getForkName(slot);
991
991
 
992
+ const beaconBlockRoot =
993
+ slot >= headSlot
994
+ ? // When attesting to the head slot or later, always use the head of the chain.
995
+ headBlockRoot
996
+ : // Permit attesting to slots *prior* to the current head. This is desirable when
997
+ // the VC and BN are out-of-sync due to time issues or overloading.
998
+ getBlockRootAtSlot(headState, slot);
999
+
992
1000
  let index: CommitteeIndex;
993
- if (isForkPostElectra(fork)) {
1001
+ if (isForkPostGloas(fork)) {
1002
+ const canonicalBlock = chain.forkChoice.getCanonicalBlockByRoot(beaconBlockRoot);
1003
+ if (!canonicalBlock) {
1004
+ // This should never happen
1005
+ throw Error(`Block not found in fork choice for slot=${slot}, root=${toRootHex(beaconBlockRoot)}`);
1006
+ }
1007
+ // After Gloas, attestation.data.index signals payload status in fork-choice:
1008
+ // - 0 = EMPTY / not present, 1 = FULL / present
1009
+ // - same-slot attestations must always use index = 0
1010
+ if (canonicalBlock.slot !== slot) {
1011
+ index = canonicalBlock.payloadStatus === PayloadStatus.FULL ? 1 : 0;
1012
+ } else {
1013
+ index = 0;
1014
+ }
1015
+ } else if (isForkPostElectra(fork)) {
994
1016
  index = 0;
995
1017
  } else {
996
1018
  if (committeeIndex === undefined) {
@@ -999,14 +1021,6 @@ export function getValidatorApi(
999
1021
  index = committeeIndex;
1000
1022
  }
1001
1023
 
1002
- const beaconBlockRoot =
1003
- slot >= headSlot
1004
- ? // When attesting to the head slot or later, always use the head of the chain.
1005
- headBlockRoot
1006
- : // Permit attesting to slots *prior* to the current head. This is desirable when
1007
- // the VC and BN are out-of-sync due to time issues or overloading.
1008
- getBlockRootAtSlot(headState, slot);
1009
-
1010
1024
  const targetSlot = computeStartSlotAtEpoch(attEpoch);
1011
1025
  const targetRoot =
1012
1026
  targetSlot >= headSlot
@@ -1,4 +1,4 @@
1
- import {CheckpointWithHex} from "@lodestar/fork-choice";
1
+ import {CheckpointWithPayloadStatus} from "@lodestar/fork-choice";
2
2
  import {LoggerNode} from "@lodestar/logger/node";
3
3
  import {ForkSeq} from "@lodestar/params";
4
4
  import {Checkpoint} from "@lodestar/types/phase0";
@@ -44,7 +44,7 @@ export enum ArchiveStoreTask {
44
44
  */
45
45
  export class ArchiveStore {
46
46
  private archiveMode: ArchiveMode;
47
- private jobQueue: JobItemQueue<[CheckpointWithHex], void>;
47
+ private jobQueue: JobItemQueue<[CheckpointWithPayloadStatus], void>;
48
48
 
49
49
  private archiveDataEpochs?: number;
50
50
  private readonly statesArchiverStrategy: StateArchiveStrategy;
@@ -67,7 +67,7 @@ export class ArchiveStore {
67
67
  this.archiveMode = opts.archiveMode;
68
68
  this.archiveDataEpochs = opts.archiveDataEpochs;
69
69
 
70
- this.jobQueue = new JobItemQueue<[CheckpointWithHex], void>(this.processFinalizedCheckpoint, {
70
+ this.jobQueue = new JobItemQueue<[CheckpointWithPayloadStatus], void>(this.processFinalizedCheckpoint, {
71
71
  maxLength: PROCESS_FINALIZED_CHECKPOINT_QUEUE_LENGTH,
72
72
  signal,
73
73
  });
@@ -168,7 +168,7 @@ export class ArchiveStore {
168
168
  //-------------------------------------------------------------------------
169
169
  // Event handlers
170
170
  //-------------------------------------------------------------------------
171
- private onFinalizedCheckpoint = (finalized: CheckpointWithHex): void => {
171
+ private onFinalizedCheckpoint = (finalized: CheckpointWithPayloadStatus): void => {
172
172
  this.jobQueue.push(finalized).catch((e) => {
173
173
  if (!isQueueErrorAborted(e)) {
174
174
  this.logger.error("Error queuing finalized checkpoint", {epoch: finalized.epoch}, e as Error);
@@ -189,7 +189,7 @@ export class ArchiveStore {
189
189
  });
190
190
  };
191
191
 
192
- private processFinalizedCheckpoint = async (finalized: CheckpointWithHex): Promise<void> => {
192
+ private processFinalizedCheckpoint = async (finalized: CheckpointWithPayloadStatus): Promise<void> => {
193
193
  try {
194
194
  const finalizedEpoch = finalized.epoch;
195
195
  const finalizedFork = this.chain.config.getForkSeqAtEpoch(finalizedEpoch);
@@ -1,10 +1,10 @@
1
1
  import path from "node:path";
2
2
  import {ChainForkConfig} from "@lodestar/config";
3
3
  import {KeyValue} from "@lodestar/db";
4
- import {IForkChoice} from "@lodestar/fork-choice";
4
+ import {CheckpointWithPayloadStatus, IForkChoice} from "@lodestar/fork-choice";
5
5
  import {ForkSeq, SLOTS_PER_EPOCH} from "@lodestar/params";
6
6
  import {computeEpochAtSlot, computeStartSlotAtEpoch} from "@lodestar/state-transition";
7
- import {Epoch, RootHex, Slot} from "@lodestar/types";
7
+ import {Epoch, Slot} from "@lodestar/types";
8
8
  import {Logger, fromAsync, fromHex, prettyPrintIndices, toRootHex} from "@lodestar/utils";
9
9
  import {IBeaconDb} from "../../../db/index.js";
10
10
  import {BlockArchiveBatchPutBinaryItem} from "../../../db/repositories/index.js";
@@ -19,7 +19,6 @@ const BLOCK_BATCH_SIZE = 256;
19
19
  const BLOB_SIDECAR_BATCH_SIZE = 32;
20
20
 
21
21
  type BlockRootSlot = {slot: Slot; root: Uint8Array};
22
- type CheckpointHex = {epoch: Epoch; rootHex: RootHex};
23
22
 
24
23
  /**
25
24
  * Persist orphaned block to disk
@@ -53,7 +52,7 @@ export async function archiveBlocks(
53
52
  forkChoice: IForkChoice,
54
53
  lightclientServer: LightClientServer | undefined,
55
54
  logger: Logger,
56
- finalizedCheckpoint: CheckpointHex,
55
+ finalizedCheckpoint: CheckpointWithPayloadStatus,
57
56
  currentEpoch: Epoch,
58
57
  archiveDataEpochs?: number,
59
58
  persistOrphanedBlocks?: boolean,
@@ -62,7 +61,7 @@ export async function archiveBlocks(
62
61
  // Use fork choice to determine the blocks to archive and delete
63
62
  // getAllAncestorBlocks response includes the finalized block, so it's also moved to the cold db
64
63
  const {ancestors: finalizedCanonicalBlocks, nonAncestors: finalizedNonCanonicalBlocks} =
65
- forkChoice.getAllAncestorAndNonAncestorBlocks(finalizedCheckpoint.rootHex);
64
+ forkChoice.getAllAncestorAndNonAncestorBlocks(finalizedCheckpoint.rootHex, finalizedCheckpoint.payloadStatus);
66
65
 
67
66
  // NOTE: The finalized block will be exactly the first block of `epoch` or previous
68
67
  const finalizedPostDeneb = finalizedCheckpoint.epoch >= config.DENEB_FORK_EPOCH;
@@ -20,7 +20,7 @@ export async function updateBackfillRange(
20
20
  try {
21
21
  // Mark the sequence in backfill db from finalized block's slot till anchor slot as
22
22
  // filled.
23
- const finalizedBlockFC = chain.forkChoice.getBlockHex(finalized.rootHex);
23
+ const finalizedBlockFC = chain.forkChoice.getBlockHexDefaultStatus(finalized.rootHex);
24
24
  if (finalizedBlockFC && finalizedBlockFC.slot > chain.anchorStateLatestBlockSlot) {
25
25
  await db.backfilledRanges.put(finalizedBlockFC.slot, chain.anchorStateLatestBlockSlot);
26
26
 
@@ -105,6 +105,7 @@ abstract class AbstractBlockInput<F extends ForkName = ForkName, TData extends D
105
105
  }
106
106
 
107
107
  abstract addBlock(props: AddBlock<F>): void;
108
+ abstract getSerializedCacheKeys(): object[];
108
109
 
109
110
  hasBlock(): boolean {
110
111
  return this.state.hasBlock;
@@ -243,6 +244,10 @@ export class BlockInputPreData extends AbstractBlockInput<ForkPreDeneb, null> {
243
244
  );
244
245
  }
245
246
  }
247
+
248
+ getSerializedCacheKeys(): object[] {
249
+ return [this.state.block];
250
+ }
246
251
  }
247
252
 
248
253
  // Blobs DA
@@ -526,6 +531,20 @@ export class BlockInputBlobs extends AbstractBlockInput<ForkBlobsDA, deneb.BlobS
526
531
  getBlobs(): deneb.BlobSidecars {
527
532
  return this.getAllBlobsWithSource().map(({blobSidecar}) => blobSidecar);
528
533
  }
534
+
535
+ getSerializedCacheKeys(): object[] {
536
+ const objects: object[] = [];
537
+
538
+ if (this.state.hasBlock) {
539
+ objects.push(this.state.block);
540
+ }
541
+
542
+ for (const {blobSidecar} of this.blobsCache.values()) {
543
+ objects.push(blobSidecar);
544
+ }
545
+
546
+ return objects;
547
+ }
529
548
  }
530
549
 
531
550
  function blockAndBlobArePaired(block: SignedBeaconBlock<ForkBlobsDA>, blobSidecar: deneb.BlobSidecar): boolean {
@@ -906,6 +925,18 @@ export class BlockInputColumns extends AbstractBlockInput<ForkColumnsDA, fulu.Da
906
925
  }
907
926
  return Promise.resolve(this.getSampledColumns());
908
927
  }
928
+
929
+ getSerializedCacheKeys(): object[] {
930
+ const objects: object[] = [];
931
+
932
+ if (this.state.hasBlock) {
933
+ objects.push(this.state.block);
934
+ }
935
+
936
+ objects.push(...this.getAllColumns());
937
+
938
+ return objects;
939
+ }
909
940
  }
910
941
 
911
942
  type BlockInputNoDataState = {
@@ -967,4 +998,8 @@ export class BlockInputNoData extends AbstractBlockInput<ForkPostGloas, null> {
967
998
  return (this.state.block.message.body as gloas.BeaconBlockBody).signedExecutionPayloadBid.message
968
999
  .blobKzgCommitments;
969
1000
  }
1001
+
1002
+ getSerializedCacheKeys(): object[] {
1003
+ return [this.state.block];
1004
+ }
970
1005
  }
@@ -100,6 +100,18 @@ export type MissingColumnMeta = {
100
100
  versionedHashes: VersionedHashes;
101
101
  };
102
102
 
103
+ /**
104
+ * Minimal interface required to write data columns to the DB.
105
+ * Used by `writeDataColumnsToDb` and designed to be reusable across forks (e.g. Fulu, Gloas).
106
+ */
107
+ export interface IDataColumnsInput {
108
+ readonly slot: Slot;
109
+ readonly blockRootHex: string;
110
+ getCustodyColumns(): fulu.DataColumnSidecars;
111
+ hasComputedAllData(): boolean;
112
+ waitForComputedAllData(timeout: number, signal?: AbortSignal): Promise<fulu.DataColumnSidecars>;
113
+ }
114
+
103
115
  /**
104
116
  * This is used to validate that BlockInput implementations follow some minimal subset of operations
105
117
  * and that adding a new implementation won't break consumers that rely on this subset.
@@ -139,6 +151,11 @@ export interface IBlockInput<F extends ForkName = ForkName, TData extends DAData
139
151
 
140
152
  /** Only safe to call when `hasBlockAndAllData` is true */
141
153
  getTimeComplete(): number;
154
+ /**
155
+ * Return object references used as keys in `SerializedCache` that can be safely removed
156
+ * once this block input lifecycle has completed.
157
+ */
158
+ getSerializedCacheKeys(): object[];
142
159
 
143
160
  waitForBlock(timeout: number, signal?: AbortSignal): Promise<SignedBeaconBlock<F>>;
144
161
  waitForAllData(timeout: number, signal?: AbortSignal): Promise<TData>;