@lodestar/beacon-node 1.43.0-dev.e341cdc614 → 1.43.0-dev.f758dd5f38

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 (144) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +1 -4
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/state/utils.d.ts +2 -2
  5. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  6. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  7. package/lib/api/impl/validator/index.d.ts.map +1 -1
  8. package/lib/api/impl/validator/index.js +0 -4
  9. package/lib/api/impl/validator/index.js.map +1 -1
  10. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  11. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  12. package/lib/chain/archiveStore/interface.d.ts +4 -4
  13. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  14. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +4 -4
  15. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  16. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  17. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +2 -2
  18. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  19. package/lib/chain/archiveStore/utils/archiveBlocks.js +110 -58
  20. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  21. package/lib/chain/blocks/importExecutionPayload.d.ts +14 -13
  22. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  23. package/lib/chain/blocks/importExecutionPayload.js +59 -83
  24. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  25. package/lib/chain/blocks/index.d.ts.map +1 -1
  26. package/lib/chain/blocks/index.js +0 -1
  27. package/lib/chain/blocks/index.js.map +1 -1
  28. package/lib/chain/blocks/types.d.ts +14 -20
  29. package/lib/chain/blocks/types.d.ts.map +1 -1
  30. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts +24 -0
  31. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts.map +1 -0
  32. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +76 -0
  33. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -0
  34. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts +1 -1
  35. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts.map +1 -1
  36. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js +2 -11
  37. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js.map +1 -1
  38. package/lib/chain/chain.d.ts +5 -4
  39. package/lib/chain/chain.d.ts.map +1 -1
  40. package/lib/chain/chain.js +9 -2
  41. package/lib/chain/chain.js.map +1 -1
  42. package/lib/chain/emitter.d.ts +3 -3
  43. package/lib/chain/emitter.d.ts.map +1 -1
  44. package/lib/chain/errors/executionPayloadBid.d.ts +5 -0
  45. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
  46. package/lib/chain/errors/executionPayloadBid.js +1 -0
  47. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  48. package/lib/chain/errors/executionPayloadEnvelope.d.ts +5 -0
  49. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  50. package/lib/chain/errors/executionPayloadEnvelope.js +1 -0
  51. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  52. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  53. package/lib/chain/forkChoice/index.js +11 -19
  54. package/lib/chain/forkChoice/index.js.map +1 -1
  55. package/lib/chain/interface.d.ts +4 -3
  56. package/lib/chain/interface.d.ts.map +1 -1
  57. package/lib/chain/interface.js.map +1 -1
  58. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  59. package/lib/chain/prepareNextSlot.js +46 -16
  60. package/lib/chain/prepareNextSlot.js.map +1 -1
  61. package/lib/chain/produceBlock/produceBlockBody.d.ts +4 -2
  62. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  63. package/lib/chain/produceBlock/produceBlockBody.js +48 -23
  64. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  65. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +11 -4
  66. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
  67. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +20 -18
  68. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
  69. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  70. package/lib/chain/stateCache/persistentCheckpointsCache.js +4 -1
  71. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  72. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  73. package/lib/chain/validation/executionPayloadBid.js +13 -1
  74. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  75. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  76. package/lib/chain/validation/executionPayloadEnvelope.js +19 -9
  77. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  78. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  79. package/lib/chain/validation/payloadAttestationMessage.js +4 -3
  80. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  81. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +1 -1
  82. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -1
  83. package/lib/execution/engine/http.d.ts.map +1 -1
  84. package/lib/execution/engine/http.js +21 -14
  85. package/lib/execution/engine/http.js.map +1 -1
  86. package/lib/execution/engine/interface.d.ts +1 -0
  87. package/lib/execution/engine/interface.d.ts.map +1 -1
  88. package/lib/execution/engine/mock.d.ts.map +1 -1
  89. package/lib/execution/engine/mock.js +6 -0
  90. package/lib/execution/engine/mock.js.map +1 -1
  91. package/lib/execution/engine/types.d.ts +20 -0
  92. package/lib/execution/engine/types.d.ts.map +1 -1
  93. package/lib/execution/engine/types.js +18 -0
  94. package/lib/execution/engine/types.js.map +1 -1
  95. package/lib/network/gossip/topic.d.ts +3 -2
  96. package/lib/network/gossip/topic.d.ts.map +1 -1
  97. package/lib/network/network.js +1 -1
  98. package/lib/network/network.js.map +1 -1
  99. package/lib/network/processor/gossipHandlers.js +3 -3
  100. package/lib/network/processor/gossipHandlers.js.map +1 -1
  101. package/lib/node/nodejs.d.ts.map +1 -1
  102. package/lib/node/nodejs.js +4 -2
  103. package/lib/node/nodejs.js.map +1 -1
  104. package/lib/node/notifier.js +7 -1
  105. package/lib/node/notifier.js.map +1 -1
  106. package/lib/util/sszBytes.d.ts.map +1 -1
  107. package/lib/util/sszBytes.js +16 -3
  108. package/lib/util/sszBytes.js.map +1 -1
  109. package/package.json +17 -16
  110. package/src/api/impl/beacon/blocks/index.ts +1 -4
  111. package/src/api/impl/beacon/state/utils.ts +2 -2
  112. package/src/api/impl/validator/index.ts +0 -4
  113. package/src/chain/archiveStore/archiveStore.ts +5 -5
  114. package/src/chain/archiveStore/interface.ts +4 -4
  115. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +4 -4
  116. package/src/chain/archiveStore/utils/archiveBlocks.ts +153 -94
  117. package/src/chain/blocks/importExecutionPayload.ts +73 -103
  118. package/src/chain/blocks/index.ts +0 -1
  119. package/src/chain/blocks/types.ts +14 -25
  120. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +129 -0
  121. package/src/chain/blocks/writePayloadEnvelopeInputToDb.ts +9 -18
  122. package/src/chain/chain.ts +22 -16
  123. package/src/chain/emitter.ts +3 -3
  124. package/src/chain/errors/executionPayloadBid.ts +6 -0
  125. package/src/chain/errors/executionPayloadEnvelope.ts +6 -0
  126. package/src/chain/forkChoice/index.ts +8 -24
  127. package/src/chain/interface.ts +4 -2
  128. package/src/chain/prepareNextSlot.ts +60 -17
  129. package/src/chain/produceBlock/produceBlockBody.ts +66 -20
  130. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +22 -20
  131. package/src/chain/stateCache/persistentCheckpointsCache.ts +4 -1
  132. package/src/chain/validation/executionPayloadBid.ts +14 -0
  133. package/src/chain/validation/executionPayloadEnvelope.ts +20 -10
  134. package/src/chain/validation/payloadAttestationMessage.ts +5 -3
  135. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +1 -1
  136. package/src/execution/engine/http.ts +21 -14
  137. package/src/execution/engine/interface.ts +1 -0
  138. package/src/execution/engine/mock.ts +8 -1
  139. package/src/execution/engine/types.ts +41 -0
  140. package/src/network/network.ts +1 -1
  141. package/src/network/processor/gossipHandlers.ts +3 -3
  142. package/src/node/nodejs.ts +4 -2
  143. package/src/node/notifier.ts +8 -1
  144. package/src/util/sszBytes.ts +21 -3
@@ -1 +1 @@
1
- {"version":3,"file":"frequencyStateArchiveStrategy.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frequencyStateArchiveStrategy.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AAKvF,OAAO,EAAC,WAAW,EAAa,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAGvD;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAC;SAEtC,yBAAyB;AAArC,IAAY,yBAOX;AAPD,WAAY,yBAAyB;IACnC,yEAA4C,CAAA;IAC5C,sEAAyC,CAAA;IACzC,8DAA8D;IAC9D,2DAA8B,CAAA;IAC9B,oFAAuD,CAAA;IACvD,kEAAqC,CAAA;AAAC,CACxC,EAPY,yBAAyB,KAAzB,yBAAyB,QAOpC;AAED;;;;GAIG;AACH,MAAM,OAAO,6BAA6B;IAErB,KAAK;IACL,EAAE;IACF,MAAM;IACN,IAAI;IACJ,UAAU;IAL7B,YACmB,KAAwB,EACxB,EAAa,EACb,MAAc,EACd,IAAuB,EACvB,UAA8B,EAC/C;qBALiB,KAAK;kBACL,EAAE;sBACF,MAAM;oBACN,IAAI;0BACJ,UAAU;IAC1B,CAAC;IAEJ,KAAK,CAAC,qBAAqB,CAAC,UAA6B,EAAE,QAAyB,EAAiB,EAAC,CAAC;IACvG,KAAK,CAAC,YAAY,CAAC,UAAmB,EAAE,QAAyB,EAAiB,EAAC,CAAC;IAEpF;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAA4B,EAAE,OAAwB,EAAiB;QAC7F,IAAI,KAAK,GAAG,OAAO,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;QACnF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5D,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,yBAAyB,CAAC,kBAAkB,EAAC,CAAC,CAAC;QAE9D,MAAM,eAAe,GAAG,kBAAkB,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;QAChE,MAAM,EAAC,0BAA0B,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAE/C,MAAM,MAAM,GAAG,EAAC,cAAc,EAAE,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,0BAA0B,EAAC,CAAC;QAC9F,IAAI,SAAS,CAAC,KAAK,GAAG,eAAe,IAAI,IAAI,CAAC,GAAG,CAAC,+BAA+B,EAAE,0BAA0B,CAAC,EAAE,CAAC;YAC/G,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;YACrD,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAE5C,gDAAgD;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,CAAC,EACD,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC,GAAG,0BAA0B,CAC5F,CAAC;YAEF,KAAK,GAAG,OAAO,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;YAC/E,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;gBACvD,EAAE,EAAE,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5C,GAAG,EAAE,uBAAuB,CAAC,QAAQ,CAAC;aACvC,CAAC,CAAC;YACH,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,yBAAyB,CAAC,uBAAuB,EAAC,CAAC,CAAC;YAEnE,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;YACpG,KAAK,GAAG,OAAO,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;YAC/E,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;YAC9D,CAAC;YACD,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,yBAAyB,CAAC,eAAe,EAAC,CAAC,CAAC;YAE3D,iGAAiG;YACjG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE;gBAC9C,GAAG,MAAM;gBACT,QAAQ;gBACR,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC5C,mBAAmB,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;IAAA,CACF;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,SAA4B,EAAE,OAAwB,EAAiB;QACxF,8EAA8E;QAC9E,IAAI,KAAK,GAAG,OAAO,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;QACnF,MAAM,YAAY,GAAG,EAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAC,CAAC;QAC1E,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QACvF,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,yBAAyB,CAAC,iBAAiB,EAAC,CAAC,CAAC;QAE7D,MAAM,EAAC,OAAO,EAAC,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,MAAM,KAAK,CAAC,2DAA2D,SAAS,CAAC,KAAK,SAAS,OAAO,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,qBAAqB,YAAY,UAAU,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;YAC1D,KAAK,GAAG,OAAO,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;YAC/E,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;YAClE,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,yBAAyB,CAAC,YAAY,EAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gCAAgC,EAAE,EAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;QACvG,CAAC;aAAM,CAAC;YACN,+CAA+C;YAC/C,MAAM,QAAQ,GAAG,OAAO,EAAE,sBAAsB,CAAC,UAAU,CAAC,EAAC,MAAM,EAAE,WAAW,CAAC,aAAa,EAAC,CAAC,CAAC;YACjG,MAAM,cAAc,CAClB,qBAAqB,EACrB,WAAW,CAAC,aAAa,EACzB,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC;gBACpB,QAAQ,EAAE,EAAE,CAAC;gBACb,KAAK,GAAG,OAAO,EAAE,0BAA0B,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;gBAC/E,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC7E,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,yBAAyB,CAAC,YAAY,EAAC,CAAC,CAAC;YAAA,CACzD,EACD,IAAI,CAAC,UAAU,CAChB,CAAC;YACF,kFAAkF;YAClF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE;gBAC9C,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,IAAI,EAAE,qBAAqB,CAAC,IAAI;gBAChC,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;QACL,CAAC;IAAA,CACF;CACF;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,gBAAwB,EAAE,kBAAyB,EAAU;IACrG,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,eAAe,CAAC;IAC/D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC;QACtD,IAAI,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;AAAA,CAChD"}
@@ -1,5 +1,5 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
- import { CheckpointWithPayloadStatus, IForkChoice } from "@lodestar/fork-choice";
2
+ import { CheckpointWithHex, IForkChoice } from "@lodestar/fork-choice";
3
3
  import { Epoch, Slot } from "@lodestar/types";
4
4
  import { Logger } from "@lodestar/utils";
5
5
  import { IBeaconDb } from "../../../db/index.js";
@@ -13,7 +13,7 @@ import { LightClientServer } from "../../lightClient/index.js";
13
13
  * Note that the finalized block still stay in forkchoice to check finalize checkpoint of next onBlock calls,
14
14
  * the next run should not reprocess finalzied block of this run.
15
15
  */
16
- export declare function archiveBlocks(config: ChainForkConfig, db: IBeaconDb, forkChoice: IForkChoice, lightclientServer: LightClientServer | undefined, logger: Logger, finalizedCheckpoint: CheckpointWithPayloadStatus, currentEpoch: Epoch, archiveDataEpochs?: number, persistOrphanedBlocks?: boolean, persistOrphanedBlocksDir?: string): Promise<void>;
16
+ export declare function archiveBlocks(config: ChainForkConfig, db: IBeaconDb, forkChoice: IForkChoice, lightclientServer: LightClientServer | undefined, logger: Logger, finalizedCheckpoint: CheckpointWithHex, currentEpoch: Epoch, archiveDataEpochs?: number, persistOrphanedBlocks?: boolean, persistOrphanedBlocksDir?: string): Promise<void>;
17
17
  /**
18
18
  * ```
19
19
  * class SignedBeaconBlock(Container):
@@ -1 +1 @@
1
- {"version":3,"file":"archiveBlocks.d.ts","sourceRoot":"","sources":["../../../../src/chain/archiveStore/utils/archiveBlocks.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,2BAA2B,EAAE,WAAW,EAA4B,MAAM,uBAAuB,CAAC;AAG1G,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAoD,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAI/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AA2B7D;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,SAAS,EACb,UAAU,EAAE,WAAW,EACvB,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,EAChD,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,2BAA2B,EAChD,YAAY,EAAE,KAAK,EACnB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,qBAAqB,CAAC,EAAE,OAAO,EAC/B,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,IAAI,CAAC,CAoLf;AAiMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAC,IAAI,EAAE,IAAI,CAAA;CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CA+C/E"}
1
+ {"version":3,"file":"archiveBlocks.d.ts","sourceRoot":"","sources":["../../../../src/chain/archiveStore/utils/archiveBlocks.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,iBAAiB,EAAE,WAAW,EAA4B,MAAM,uBAAuB,CAAC;AAGhG,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,MAAM,EAAoD,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAI/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AA2B7D;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,SAAS,EACb,UAAU,EAAE,WAAW,EACvB,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,EAChD,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,iBAAiB,EACtC,YAAY,EAAE,KAAK,EACnB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,qBAAqB,CAAC,EAAE,OAAO,EAC/B,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,IAAI,CAAC,CAoMf;AA4OD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS;IAAC,IAAI,EAAE,IAAI,CAAA;CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CA+C/E"}
@@ -28,9 +28,10 @@ async function persistOrphanedBlock(slot, blockRoot, bytes, opts) {
28
28
  * the next run should not reprocess finalzied block of this run.
29
29
  */
30
30
  export async function archiveBlocks(config, db, forkChoice, lightclientServer, logger, finalizedCheckpoint, currentEpoch, archiveDataEpochs, persistOrphanedBlocks, persistOrphanedBlocksDir) {
31
- // Use fork choice to determine the blocks to archive and delete
32
- // getAllAncestorBlocks response includes the finalized block, so it's also moved to the cold db
33
- const { ancestors: finalizedCanonicalBlocks, nonAncestors: finalizedNonCanonicalBlocks } = forkChoice.getAllAncestorAndNonAncestorBlocks(finalizedCheckpoint.rootHex, finalizedCheckpoint.payloadStatus);
31
+ // Use fork choice to determine the blocks to archive and delete.
32
+ // `ancestors` is the canonical walk back from the finalized root, including the previous finalized
33
+ // block as its last element.
34
+ const { ancestors: finalizedCanonicalBlocks, nonAncestors: finalizedNonCanonicalBlocks } = forkChoice.getAllAncestorAndNonAncestorBlocksDefaultStatus(finalizedCheckpoint.rootHex);
34
35
  // NOTE: The finalized block will be exactly the first block of `epoch` or previous
35
36
  const finalizedPostDeneb = finalizedCheckpoint.epoch >= config.DENEB_FORK_EPOCH;
36
37
  const finalizedPostFulu = finalizedCheckpoint.epoch >= config.FULU_FORK_EPOCH;
@@ -41,24 +42,34 @@ export async function archiveBlocks(config, db, forkChoice, lightclientServer, l
41
42
  }));
42
43
  const logCtx = { currentEpoch, finalizedEpoch: finalizedCheckpoint.epoch, finalizedRoot: finalizedCheckpoint.rootHex };
43
44
  if (finalizedCanonicalBlockRoots.length > 0) {
44
- await migrateBlocksFromHotToColdDb(db, finalizedCanonicalBlockRoots);
45
+ const migratedSlots = await migrateBlocksFromHotToColdDb(db, logger, finalizedCanonicalBlockRoots);
45
46
  logger.verbose("Migrated blocks from hot DB to cold DB", {
46
47
  ...logCtx,
47
48
  fromSlot: finalizedCanonicalBlockRoots[0].slot,
48
49
  toSlot: finalizedCanonicalBlockRoots.at(-1)?.slot,
49
50
  size: finalizedCanonicalBlockRoots.length,
51
+ migratedEntries: migratedSlots.length,
52
+ slotRange: prettyPrintIndices(migratedSlots),
50
53
  });
51
54
  if (finalizedPostDeneb) {
52
- const migratedEntries = await migrateBlobSidecarsFromHotToColdDb(config, db, finalizedCanonicalBlockRoots, currentEpoch);
55
+ const migratedEntries = await migrateBlobSidecarsFromHotToColdDb(config, db, logger, finalizedCanonicalBlockRoots, currentEpoch);
53
56
  logger.verbose("Migrated blobSidecars from hot DB to cold DB", { ...logCtx, migratedEntries });
54
57
  }
55
58
  if (finalizedPostFulu) {
56
- const migratedEntries = await migrateDataColumnSidecarsFromHotToColdDb(config, db, logger, finalizedCanonicalBlockRoots, currentEpoch);
57
- logger.verbose("Migrated dataColumnSidecars from hot DB to cold DB", { ...logCtx, migratedEntries });
59
+ const migratedSlots = await migrateDataColumnSidecarsFromHotToColdDb(config, db, logger, finalizedCanonicalBlocks, currentEpoch);
60
+ logger.verbose("Migrated dataColumnSidecars from hot DB to cold DB", {
61
+ ...logCtx,
62
+ migratedEntries: migratedSlots.length,
63
+ slotRange: prettyPrintIndices(migratedSlots),
64
+ });
58
65
  }
59
66
  if (finalizedPostGloas) {
60
- const migratedEntries = await migrateExecutionPayloadEnvelopesFromHotToColdDb(config, db, logger, finalizedCanonicalBlocks);
61
- logger.verbose("Migrated executionPayloadEnvelopes from hot DB to cold DB", { ...logCtx, migratedEntries });
67
+ const migratedSlots = await migrateExecutionPayloadEnvelopesFromHotToColdDb(config, db, logger, finalizedCanonicalBlocks);
68
+ logger.verbose("Migrated executionPayloadEnvelopes from hot DB to cold DB", {
69
+ ...logCtx,
70
+ migratedEntries: migratedSlots.length,
71
+ slotRange: prettyPrintIndices(migratedSlots),
72
+ });
62
73
  }
63
74
  }
64
75
  // deleteNonCanonicalBlocks
@@ -82,22 +93,25 @@ export async function archiveBlocks(config, db, forkChoice, lightclientServer, l
82
93
  }
83
94
  }));
84
95
  }
85
- await db.block.batchDelete(nonCanonicalBlockRoots);
86
- logger.verbose("Deleted non canonical blocks from hot DB", {
96
+ const nonCanonicalSlots = finalizedNonCanonicalBlocks.map((summary) => summary.slot).sort((a, b) => a - b);
97
+ const nonCanonicalLogCtx = {
87
98
  ...logCtx,
88
- slots: finalizedNonCanonicalBlocks.map((summary) => summary.slot).join(","),
89
- });
99
+ count: nonCanonicalBlockRoots.length,
100
+ slotRange: prettyPrintIndices(nonCanonicalSlots),
101
+ };
102
+ await db.block.batchDelete(nonCanonicalBlockRoots);
103
+ logger.verbose("Deleted non canonical blocks from hot DB", nonCanonicalLogCtx);
90
104
  if (finalizedPostDeneb) {
91
105
  await db.blobSidecars.batchDelete(nonCanonicalBlockRoots);
92
- logger.verbose("Deleted non canonical blobSidecars from hot DB", logCtx);
106
+ logger.verbose("Deleted non canonical blobSidecars from hot DB", nonCanonicalLogCtx);
93
107
  }
94
108
  if (finalizedPostFulu) {
95
109
  await db.dataColumnSidecar.deleteMany(nonCanonicalBlockRoots);
96
- logger.verbose("Deleted non canonical dataColumnSidecars from hot DB", logCtx);
110
+ logger.verbose("Deleted non canonical dataColumnSidecars from hot DB", nonCanonicalLogCtx);
97
111
  }
98
112
  if (finalizedPostGloas) {
99
113
  await db.executionPayloadEnvelope.batchDelete(nonCanonicalBlockRoots);
100
- logger.verbose("Deleted non canonical executionPayloadEnvelopes from hot DB", logCtx);
114
+ logger.verbose("Deleted non canonical executionPayloadEnvelopes from hot DB", nonCanonicalLogCtx);
101
115
  }
102
116
  }
103
117
  // Delete expired blobs
@@ -170,22 +184,25 @@ export async function archiveBlocks(config, db, forkChoice, lightclientServer, l
170
184
  totalArchived: finalizedCanonicalBlocks.length,
171
185
  });
172
186
  }
173
- async function migrateBlocksFromHotToColdDb(db, blocks) {
174
- // Start from `i=0`: 1st block in iterateAncestorBlocks() is the finalized block itself
175
- // we move it to blockArchive but forkchoice still have it to check next onBlock calls
176
- // the next iterateAncestorBlocks call does not return this block
187
+ async function migrateBlocksFromHotToColdDb(db, logger, blocks) {
188
+ // The input includes the previous finalized block as the last ancestor; its SignedBeaconBlock
189
+ // was archived on a previous run and is no longer in hot db. `getBinary` returning null for any
190
+ // block in the batch is therefore treated as "already migrated, skip" rather than an error.
191
+ const migratedSlots = [];
177
192
  for (let i = 0; i < blocks.length; i += BLOCK_BATCH_SIZE) {
178
193
  const toIdx = Math.min(i + BLOCK_BATCH_SIZE, blocks.length);
179
194
  const canonicalBlocks = blocks.slice(i, toIdx);
180
- // processCanonicalBlocks
181
195
  if (canonicalBlocks.length === 0)
182
- return;
196
+ break;
183
197
  // load Buffer instead of SignedBeaconBlock to improve performance
184
- const canonicalBlockEntries = await Promise.all(canonicalBlocks.map(async (block) => {
185
- // Here we assume the blocks are already in the hot db
198
+ const canonicalBlockEntries = (await Promise.all(canonicalBlocks.map(async (block) => {
186
199
  const blockBuffer = await db.block.getBinary(block.root);
187
200
  if (!blockBuffer) {
188
- throw Error(`Block not found for slot ${block.slot} root ${toRootHex(block.root)}`);
201
+ logger.debug("Block in forkchoice but missing in hot db, could be already archived", {
202
+ slot: block.slot,
203
+ root: toRootHex(block.root),
204
+ });
205
+ return null;
189
206
  }
190
207
  return {
191
208
  key: block.slot,
@@ -195,19 +212,24 @@ async function migrateBlocksFromHotToColdDb(db, blocks) {
195
212
  // TODO: Benchmark if faster to slice Buffer or fromHex()
196
213
  parentRoot: getParentRootFromSignedBlock(blockBuffer),
197
214
  };
198
- }));
199
- // put to blockArchive db and delete block db
215
+ }))).filter((entry) => entry !== null);
216
+ if (canonicalBlockEntries.length === 0)
217
+ continue;
200
218
  await Promise.all([
201
219
  db.blockArchive.batchPutBinary(canonicalBlockEntries),
202
- db.block.batchDelete(canonicalBlocks.map((block) => block.root)),
220
+ db.block.batchDelete(canonicalBlockEntries.map((entry) => entry.blockRoot)),
203
221
  ]);
222
+ for (const entry of canonicalBlockEntries)
223
+ migratedSlots.push(entry.slot);
204
224
  }
225
+ // Ancestor walk is newest → oldest; sort ascending so `prettyPrintIndices` renders cleanly.
226
+ return migratedSlots.sort((a, b) => a - b);
205
227
  }
206
228
  /**
207
229
  * Migrate blobSidecars from hot db to cold db.
208
230
  * @returns true if we do that, false if block is out of range data.
209
231
  */
210
- async function migrateBlobSidecarsFromHotToColdDb(config, db, blocks, currentEpoch) {
232
+ async function migrateBlobSidecarsFromHotToColdDb(config, db, logger, blocks, currentEpoch) {
211
233
  let migratedWrappedBlobSidecars = 0;
212
234
  for (let i = 0; i < blocks.length; i += BLOB_SIDECAR_BATCH_SIZE) {
213
235
  const toIdx = Math.min(i + BLOB_SIDECAR_BATCH_SIZE, blocks.length);
@@ -216,7 +238,7 @@ async function migrateBlobSidecarsFromHotToColdDb(config, db, blocks, currentEpo
216
238
  if (canonicalBlocks.length === 0)
217
239
  break;
218
240
  // load Buffer instead of ssz deserialized to improve performance
219
- const canonicalBlobSidecarsEntries = await Promise.all(canonicalBlocks
241
+ const canonicalBlobSidecarsEntries = (await Promise.all(canonicalBlocks
220
242
  .filter((block) => {
221
243
  const blockSlot = block.slot;
222
244
  const blockEpoch = computeEpochAtSlot(blockSlot);
@@ -227,14 +249,19 @@ async function migrateBlobSidecarsFromHotToColdDb(config, db, blocks, currentEpo
227
249
  blockEpoch >= currentEpoch - config.MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS);
228
250
  })
229
251
  .map(async (block) => {
230
- // Here we assume the blob sidecars are already in the hot db
231
- // instead of checking first the block input cache
252
+ // The ancestor walk includes the boundary (previous finalized) block; on first
253
+ // finalization that boundary is the anchor which has no blob sidecars in hot db.
254
+ // Treat a null hot-db entry as "nothing to migrate" rather than an error.
232
255
  const bytes = await db.blobSidecars.getBinary(block.root);
233
256
  if (!bytes) {
234
- throw Error(`No blobSidecars found for slot ${block.slot} root ${toRootHex(block.root)}`);
257
+ logger.debug("BlobSidecars in forkchoice but missing in hot db, could be already archived", {
258
+ slot: block.slot,
259
+ root: toRootHex(block.root),
260
+ });
261
+ return null;
235
262
  }
236
263
  return { key: block.slot, value: bytes };
237
- }));
264
+ }))).filter((e) => e !== null);
238
265
  // put to blockArchive db and delete block db
239
266
  await Promise.all([
240
267
  db.blobSidecarsArchive.batchPutBinary(canonicalBlobSidecarsEntries),
@@ -245,17 +272,27 @@ async function migrateBlobSidecarsFromHotToColdDb(config, db, blocks, currentEpo
245
272
  return migratedWrappedBlobSidecars;
246
273
  }
247
274
  // TODO: This function can be simplified further by reducing layers of promises in a loop
248
- async function migrateDataColumnSidecarsFromHotToColdDb(config, db, logger, blocks, currentEpoch) {
249
- let migratedWrappedDataColumns = 0;
275
+ /**
276
+ * Post-gloas the data columns of a Gloas block are tied to its execution payload envelope —
277
+ * columns only exist once the FULL variant of the block is in the proto-array. Pre-Gloas (Fulu)
278
+ * blocks only have a FULL variant, so the `payloadStatus === FULL` filter passes them all.
279
+ * Blocks whose canonical variant is PENDING/EMPTY are skipped here — their columns will be picked
280
+ * up on a later run once the FULL variant appears in the ancestor walk.
281
+ */
282
+ async function migrateDataColumnSidecarsFromHotToColdDb(config, db, logger, canonicalBlocks, currentEpoch) {
283
+ const columnBlocks = canonicalBlocks.filter((block) => config.getForkSeq(block.slot) < ForkSeq.gloas || block.payloadStatus === PayloadStatus.FULL);
284
+ if (columnBlocks.length === 0)
285
+ return [];
286
+ const blocks = columnBlocks.map((block) => ({ slot: block.slot, root: fromHex(block.blockRoot) }));
287
+ const migratedSlots = [];
250
288
  for (let i = 0; i < blocks.length; i += BLOB_SIDECAR_BATCH_SIZE) {
251
289
  const toIdx = Math.min(i + BLOB_SIDECAR_BATCH_SIZE, blocks.length);
252
- const canonicalBlocks = blocks.slice(i, toIdx);
253
- // processCanonicalBlocks
254
- if (canonicalBlocks.length === 0)
290
+ const batch = blocks.slice(i, toIdx);
291
+ if (batch.length === 0)
255
292
  break;
256
293
  const promises = [];
257
294
  // load Buffer instead of ssz deserialized to improve performance
258
- for (const block of canonicalBlocks) {
295
+ for (const block of batch) {
259
296
  const blockSlot = block.slot;
260
297
  const blockEpoch = computeEpochAtSlot(blockSlot);
261
298
  if (config.getForkSeq(blockSlot) < ForkSeq.fulu ||
@@ -265,27 +302,38 @@ async function migrateDataColumnSidecarsFromHotToColdDb(config, db, logger, bloc
265
302
  }
266
303
  // Here we assume the data column sidecars are already in the hot db
267
304
  const dataColumnSidecarBytes = await fromAsync(db.dataColumnSidecar.valuesStreamBinary(block.root));
268
- // there could be 0 dataColumnSidecarBytes if block has no blob
269
- logger.verbose("migrateDataColumnSidecarsFromHotToColdDb", {
305
+ if (dataColumnSidecarBytes.length === 0) {
306
+ // Empty stream: either the block has no blobs, or columns were already archived on a
307
+ // previous run (boundary block). Nothing to migrate.
308
+ logger.debug("DataColumnSidecars in forkchoice but missing in hot db, could be already archived", {
309
+ slot: block.slot,
310
+ root: toRootHex(block.root),
311
+ });
312
+ continue;
313
+ }
314
+ logger.verbose("Migrated dataColumnSidecars for block", {
270
315
  currentEpoch,
271
316
  slot: block.slot,
272
317
  root: toRootHex(block.root),
273
318
  numSidecars: dataColumnSidecarBytes.length,
274
319
  });
275
320
  promises.push(db.dataColumnSidecarArchive.putManyBinary(block.slot, dataColumnSidecarBytes.map((p) => ({ key: p.id, value: p.value }))));
276
- migratedWrappedDataColumns += dataColumnSidecarBytes.length;
321
+ migratedSlots.push(block.slot);
277
322
  }
278
- promises.push(db.dataColumnSidecar.deleteMany(canonicalBlocks.map((block) => block.root)));
279
- // put to blockArchive db and delete block db
323
+ promises.push(db.dataColumnSidecar.deleteMany(batch.map((block) => block.root)));
280
324
  await Promise.all(promises);
281
325
  }
282
- return migratedWrappedDataColumns;
326
+ // Ancestor walk is newest → oldest; sort ascending so `prettyPrintIndices` renders cleanly.
327
+ return migratedSlots.sort((a, b) => a - b);
283
328
  }
329
+ /**
330
+ * Post-gloas given a finalized checkpoint at a block root, payload of that block root
331
+ * is not considered finalized, hence they are archived in the next run.
332
+ */
284
333
  async function migrateExecutionPayloadEnvelopesFromHotToColdDb(config, db, logger, canonicalBlocks) {
285
- let migratedEnvelopes = 0;
286
- const payloadBlocks = canonicalBlocks.filter((block) => config.getForkSeq(block.slot) >= ForkSeq.gloas && block.payloadStatus === PayloadStatus.FULL);
334
+ const payloadBlocks = canonicalBlocks.filter((block) => config.getForkSeq(block.slot) < ForkSeq.gloas || block.payloadStatus === PayloadStatus.FULL);
287
335
  if (payloadBlocks.length === 0)
288
- return 0;
336
+ return [];
289
337
  const blocks = payloadBlocks.map((block) => ({ slot: block.slot, root: fromHex(block.blockRoot) }));
290
338
  const envelopeEntries = [];
291
339
  const migratedRoots = [];
@@ -297,17 +345,21 @@ async function migrateExecutionPayloadEnvelopesFromHotToColdDb(config, db, logge
297
345
  migratedRoots.push(blocks[i].root);
298
346
  }
299
347
  else {
300
- logger.debug("Payload in forkchoice but missing in db", { slot: blocks[i].slot, root: toRootHex(blocks[i].root) });
348
+ logger.debug("ExecutionPayloadEnvelope in forkchoice but missing in hot db, could be already archived", {
349
+ slot: blocks[i].slot,
350
+ root: toRootHex(blocks[i].root),
351
+ });
301
352
  }
302
353
  }
303
- if (envelopeEntries.length > 0) {
304
- await Promise.all([
305
- db.executionPayloadEnvelopeArchive.batchPutBinary(envelopeEntries),
306
- db.executionPayloadEnvelope.batchDelete(migratedRoots),
307
- ]);
308
- migratedEnvelopes = envelopeEntries.length;
309
- }
310
- return migratedEnvelopes;
354
+ if (envelopeEntries.length === 0)
355
+ return [];
356
+ await Promise.all([
357
+ db.executionPayloadEnvelopeArchive.batchPutBinary(envelopeEntries),
358
+ db.executionPayloadEnvelope.batchDelete(migratedRoots),
359
+ ]);
360
+ // Slots are ascending in hot-db key order — sort to guarantee `prettyPrintIndices` output is clean
361
+ // regardless of ancestor-walk order (newest → oldest).
362
+ return envelopeEntries.map((entry) => entry.key).sort((a, b) => a - b);
311
363
  }
312
364
  /**
313
365
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"archiveBlocks.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/utils/archiveBlocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archiveBlocks.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/utils/archiveBlocks.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export declare enum PayloadErrorCode {
6
6
  EXECUTION_ENGINE_INVALID = "PAYLOAD_ERROR_EXECUTION_ENGINE_INVALID",
7
7
  EXECUTION_ENGINE_ERROR = "PAYLOAD_ERROR_EXECUTION_ENGINE_ERROR",
8
8
  BLOCK_NOT_IN_FORK_CHOICE = "PAYLOAD_ERROR_BLOCK_NOT_IN_FORK_CHOICE",
9
- STATE_TRANSITION_ERROR = "PAYLOAD_ERROR_STATE_TRANSITION_ERROR",
9
+ ENVELOPE_VERIFICATION_ERROR = "PAYLOAD_ERROR_ENVELOPE_VERIFICATION_ERROR",
10
10
  INVALID_SIGNATURE = "PAYLOAD_ERROR_INVALID_SIGNATURE"
11
11
  }
12
12
  export type PayloadErrorType = {
@@ -21,7 +21,7 @@ export type PayloadErrorType = {
21
21
  code: PayloadErrorCode.BLOCK_NOT_IN_FORK_CHOICE;
22
22
  blockRootHex: string;
23
23
  } | {
24
- code: PayloadErrorCode.STATE_TRANSITION_ERROR;
24
+ code: PayloadErrorCode.ENVELOPE_VERIFICATION_ERROR;
25
25
  message: string;
26
26
  } | {
27
27
  code: PayloadErrorCode.INVALID_SIGNATURE;
@@ -33,18 +33,19 @@ export declare class PayloadError extends Error {
33
33
  /**
34
34
  * Import an execution payload envelope after all data is available.
35
35
  *
36
- * This function:
37
- * 1. Emits `execution_payload_available` if payload is for current slot
38
- * 2. Gets the ProtoBlock from fork choice
39
- * 3. Applies write-queue backpressure (waitForSpace) early, before verification
40
- * 4. Regenerates the block state
41
- * 5. Runs EL verification (notifyNewPayload) in parallel with signature verification and processExecutionPayloadEnvelope
42
- * 6. Persists verified payload envelope to hot DB
43
- * 7. Updates fork choice
44
- * 8. Caches the post-execution payload state
45
- * 9. Records metrics for column sources
46
- * 10. Emits `execution_payload` for recent enough payloads after successful import
36
+ * The envelope is only verified here, no state mutation. State effects from the payload
37
+ * are applied on the next block via processParentExecutionPayload.
47
38
  *
39
+ * Steps:
40
+ * 1. Emit `execution_payload_available` event for payload attestation
41
+ * 2. Get the ProtoBlock from fork choice
42
+ * 3. Wait for data columns to be available
43
+ * 4. Regenerate state for envelope verification
44
+ * 5. Verify envelope (fields against state, signature, and EL in parallel where possible)
45
+ * 6. Persist verified payload envelope to hot DB (waits for write-queue space for backpressure)
46
+ * 7. Update fork choice (transitions the block's PENDING variant to FULL)
47
+ * 8. Record metrics for payload envelope and column sources
48
+ * 9. Emit `execution_payload` event
48
49
  */
49
50
  export declare function importExecutionPayload(this: BeaconChain, payloadInput: PayloadEnvelopeInput, signal: AbortSignal, opts?: ImportPayloadOpts): Promise<void>;
50
51
  //# sourceMappingURL=importExecutionPayload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"importExecutionPayload.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/importExecutionPayload.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAExC,OAAO,EAAC,oBAAoB,EAAC,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAK7C,oBAAY,gBAAgB;IAC1B,wBAAwB,2CAA2C;IACnE,sBAAsB,yCAAyC;IAC/D,wBAAwB,2CAA2C;IACnE,sBAAsB,yCAAyC;IAC/D,iBAAiB,oCAAoC;CACtD;AAED,MAAM,MAAM,gBAAgB,GACxB;IACE,IAAI,EAAE,gBAAgB,CAAC,wBAAwB,CAAC;IAChD,UAAU,EAAE,sBAAsB,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC,sBAAsB,CAAC;IAC9C,UAAU,EAAE,sBAAsB,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC,wBAAwB,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC,sBAAsB,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC,iBAAiB,CAAC;CAC1C,CAAC;AAEN,qBAAa,YAAa,SAAQ,KAAK;IACrC,IAAI,EAAE,gBAAgB,CAAC;IAEvB,YAAY,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,MAAM,EAGnD;CACF;AAeD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,oBAAoB,EAClC,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA+Lf"}
1
+ {"version":3,"file":"importExecutionPayload.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/importExecutionPayload.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAExC,OAAO,EAAC,oBAAoB,EAAC,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAS7C,oBAAY,gBAAgB;IAC1B,wBAAwB,2CAA2C;IACnE,sBAAsB,yCAAyC;IAC/D,wBAAwB,2CAA2C;IACnE,2BAA2B,8CAA8C;IACzE,iBAAiB,oCAAoC;CACtD;AAED,MAAM,MAAM,gBAAgB,GACxB;IACE,IAAI,EAAE,gBAAgB,CAAC,wBAAwB,CAAC;IAChD,UAAU,EAAE,sBAAsB,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC,sBAAsB,CAAC;IAC9C,UAAU,EAAE,sBAAsB,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC,wBAAwB,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC,2BAA2B,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC,iBAAiB,CAAC;CAC1C,CAAC;AAEN,qBAAa,YAAa,SAAQ,KAAK;IACrC,IAAI,EAAE,gBAAgB,CAAC;IAEvB,YAAY,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,MAAM,EAGnD;CACF;AAeD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,oBAAoB,EAClC,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA6Jf"}