@lodestar/beacon-node 1.46.0-dev.8b30182711 → 1.46.0-dev.8bab23d909

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +37 -15
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/config/constants.d.ts +1 -0
  5. package/lib/api/impl/config/constants.d.ts.map +1 -1
  6. package/lib/api/impl/config/constants.js +3 -1
  7. package/lib/api/impl/config/constants.js.map +1 -1
  8. package/lib/api/impl/validator/index.d.ts.map +1 -1
  9. package/lib/api/impl/validator/index.js +15 -6
  10. package/lib/api/impl/validator/index.js.map +1 -1
  11. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  12. package/lib/chain/blocks/importBlock.js +3 -3
  13. package/lib/chain/blocks/importBlock.js.map +1 -1
  14. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  15. package/lib/chain/blocks/importExecutionPayload.js +3 -4
  16. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  17. package/lib/chain/blocks/index.d.ts.map +1 -1
  18. package/lib/chain/blocks/index.js +6 -0
  19. package/lib/chain/blocks/index.js.map +1 -1
  20. package/lib/chain/blocks/utils/chainSegment.d.ts.map +1 -1
  21. package/lib/chain/blocks/utils/chainSegment.js +31 -25
  22. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  23. package/lib/chain/blocks/utils/polarBearBanner.d.ts +2 -0
  24. package/lib/chain/blocks/utils/polarBearBanner.d.ts.map +1 -0
  25. package/lib/chain/blocks/utils/polarBearBanner.js +51 -0
  26. package/lib/chain/blocks/utils/polarBearBanner.js.map +1 -0
  27. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  28. package/lib/chain/blocks/verifyBlock.js +21 -1
  29. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  30. package/lib/chain/chain.d.ts +5 -0
  31. package/lib/chain/chain.d.ts.map +1 -1
  32. package/lib/chain/chain.js +55 -0
  33. package/lib/chain/chain.js.map +1 -1
  34. package/lib/chain/emitter.d.ts +6 -0
  35. package/lib/chain/emitter.d.ts.map +1 -1
  36. package/lib/chain/emitter.js +5 -0
  37. package/lib/chain/emitter.js.map +1 -1
  38. package/lib/chain/interface.d.ts +2 -0
  39. package/lib/chain/interface.d.ts.map +1 -1
  40. package/lib/chain/options.d.ts +2 -0
  41. package/lib/chain/options.d.ts.map +1 -1
  42. package/lib/chain/options.js +1 -0
  43. package/lib/chain/options.js.map +1 -1
  44. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  45. package/lib/chain/prepareNextSlot.js +107 -29
  46. package/lib/chain/prepareNextSlot.js.map +1 -1
  47. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  48. package/lib/chain/produceBlock/produceBlockBody.js +16 -7
  49. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  50. package/lib/chain/seenCache/seenBlockProposers.d.ts +20 -4
  51. package/lib/chain/seenCache/seenBlockProposers.d.ts.map +1 -1
  52. package/lib/chain/seenCache/seenBlockProposers.js +49 -2
  53. package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
  54. package/lib/chain/validation/block.d.ts +4 -1
  55. package/lib/chain/validation/block.d.ts.map +1 -1
  56. package/lib/chain/validation/block.js +32 -18
  57. package/lib/chain/validation/block.js.map +1 -1
  58. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  59. package/lib/chain/validation/dataColumnSidecar.js +21 -16
  60. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  61. package/lib/chain/validation/executionPayloadBid.js +1 -1
  62. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  63. package/lib/metrics/metrics/lodestar.d.ts +14 -0
  64. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  65. package/lib/metrics/metrics/lodestar.js +38 -0
  66. package/lib/metrics/metrics/lodestar.js.map +1 -1
  67. package/lib/network/core/networkCore.d.ts.map +1 -1
  68. package/lib/network/core/networkCore.js +12 -1
  69. package/lib/network/core/networkCore.js.map +1 -1
  70. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  71. package/lib/network/core/networkCoreWorkerHandler.js +20 -3
  72. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  73. package/lib/network/gossip/topic.d.ts +661 -16
  74. package/lib/network/gossip/topic.d.ts.map +1 -1
  75. package/lib/network/gossip/topic.js +3 -3
  76. package/lib/network/gossip/topic.js.map +1 -1
  77. package/lib/network/network.d.ts +1 -0
  78. package/lib/network/network.d.ts.map +1 -1
  79. package/lib/network/network.js +11 -1
  80. package/lib/network/network.js.map +1 -1
  81. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  82. package/lib/network/processor/gossipHandlers.js +8 -0
  83. package/lib/network/processor/gossipHandlers.js.map +1 -1
  84. package/lib/network/reqresp/score.d.ts.map +1 -1
  85. package/lib/network/reqresp/score.js +20 -3
  86. package/lib/network/reqresp/score.js.map +1 -1
  87. package/lib/sync/range/batch.d.ts.map +1 -1
  88. package/lib/sync/range/batch.js +14 -2
  89. package/lib/sync/range/batch.js.map +1 -1
  90. package/lib/util/clock.d.ts +2 -7
  91. package/lib/util/clock.d.ts.map +1 -1
  92. package/lib/util/clock.js +2 -7
  93. package/lib/util/clock.js.map +1 -1
  94. package/lib/util/workerEvents.d.ts +7 -1
  95. package/lib/util/workerEvents.d.ts.map +1 -1
  96. package/lib/util/workerEvents.js +17 -5
  97. package/lib/util/workerEvents.js.map +1 -1
  98. package/package.json +15 -15
  99. package/src/api/impl/beacon/blocks/index.ts +65 -16
  100. package/src/api/impl/config/constants.ts +4 -0
  101. package/src/api/impl/validator/index.ts +19 -6
  102. package/src/chain/blocks/importBlock.ts +3 -2
  103. package/src/chain/blocks/importExecutionPayload.ts +8 -4
  104. package/src/chain/blocks/index.ts +7 -0
  105. package/src/chain/blocks/utils/chainSegment.ts +35 -28
  106. package/src/chain/blocks/utils/polarBearBanner.ts +50 -0
  107. package/src/chain/blocks/verifyBlock.ts +28 -2
  108. package/src/chain/chain.ts +60 -0
  109. package/src/chain/emitter.ts +7 -0
  110. package/src/chain/interface.ts +3 -0
  111. package/src/chain/options.ts +3 -0
  112. package/src/chain/prepareNextSlot.ts +140 -39
  113. package/src/chain/produceBlock/produceBlockBody.ts +23 -6
  114. package/src/chain/seenCache/seenBlockProposers.ts +72 -5
  115. package/src/chain/validation/block.ts +41 -19
  116. package/src/chain/validation/dataColumnSidecar.ts +27 -17
  117. package/src/chain/validation/executionPayloadBid.ts +1 -1
  118. package/src/metrics/metrics/lodestar.ts +39 -0
  119. package/src/network/core/networkCore.ts +13 -1
  120. package/src/network/core/networkCoreWorkerHandler.ts +18 -3
  121. package/src/network/gossip/topic.ts +4 -2
  122. package/src/network/network.ts +16 -1
  123. package/src/network/processor/gossipHandlers.ts +7 -0
  124. package/src/network/reqresp/score.ts +22 -3
  125. package/src/sync/range/batch.ts +19 -2
  126. package/src/util/clock.ts +2 -7
  127. package/src/util/workerEvents.ts +18 -6
@@ -1 +1 @@
1
- {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../src/sync/range/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../src/sync/range/batch.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { isForkPostDeneb, isForkPostFulu, isForkPostGloas } from "@lodestar/para
2
2
  import { LodestarError, byteArrayEquals, prettyPrintIndices, toRootHex } from "@lodestar/utils";
3
3
  import { isBlockInputColumns } from "../../chain/blocks/blockInput/blockInput.js";
4
4
  import { isDaOutOfRange } from "../../chain/blocks/blockInput/utils.js";
5
+ import { PayloadError, PayloadErrorCode } from "../../chain/blocks/importExecutionPayload.js";
5
6
  import { BlockError, BlockErrorCode } from "../../chain/errors/index.js";
6
7
  import { ZERO_HASH } from "../../constants/constants.js";
7
8
  import { MAX_BATCH_DOWNLOAD_ATTEMPTS, MAX_BATCH_PROCESSING_ATTEMPTS } from "../constants.js";
@@ -538,7 +539,7 @@ export class Batch {
538
539
  if (this.state.status !== BatchStatus.Processing) {
539
540
  throw new BatchError(this.wrongStatusErrorType(BatchStatus.Processing));
540
541
  }
541
- if (err instanceof BlockError && err.type.code === BlockErrorCode.EXECUTION_ENGINE_ERROR) {
542
+ if (isExecutionEngineError(err)) {
542
543
  this.onExecutionEngineError(this.state.attempt);
543
544
  }
544
545
  else {
@@ -552,7 +553,7 @@ export class Batch {
552
553
  if (this.state.status !== BatchStatus.AwaitingValidation) {
553
554
  throw new BatchError(this.wrongStatusErrorType(BatchStatus.AwaitingValidation));
554
555
  }
555
- if (err instanceof BlockError && err.type.code === BlockErrorCode.EXECUTION_ENGINE_ERROR) {
556
+ if (isExecutionEngineError(err)) {
556
557
  this.onExecutionEngineError(this.state.attempt);
557
558
  }
558
559
  else {
@@ -604,4 +605,15 @@ export var BatchErrorCode;
604
605
  })(BatchErrorCode || (BatchErrorCode = {}));
605
606
  export class BatchError extends LodestarError {
606
607
  }
608
+ function isExecutionEngineError(err) {
609
+ if (!(err instanceof BlockError)) {
610
+ return false;
611
+ }
612
+ if (err.type.code === BlockErrorCode.EXECUTION_ENGINE_ERROR) {
613
+ return true;
614
+ }
615
+ return (err.type.code === BlockErrorCode.BEACON_CHAIN_ERROR &&
616
+ err.type.error instanceof PayloadError &&
617
+ err.type.error.type.code === PayloadErrorCode.EXECUTION_ENGINE_ERROR);
618
+ }
607
619
  //# sourceMappingURL=batch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/sync/range/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/sync/range/batch.ts"],"names":[],"mappings":"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"}
@@ -74,10 +74,7 @@ export declare class Clock extends EventEmitter implements IClock {
74
74
  get currentSlot(): Slot;
75
75
  /**
76
76
  * If it's too close to next slot given MAXIMUM_GOSSIP_CLOCK_DISPARITY, return currentSlot + 1.
77
- * Otherwise return currentSlot
78
- *
79
- * Spec: phase0/p2p-interface.md - gossip validation uses `current_time + MAXIMUM_GOSSIP_CLOCK_DISPARITY < message_time`
80
- * to reject future messages (strict `<`), so the boundary (exactly equal) is accepted, hence `<=` here.
77
+ * Spec: phase0/p2p-interface.md rejects future messages with strict `<`, hence `<=` here.
81
78
  */
82
79
  get currentSlotWithGossipDisparity(): Slot;
83
80
  get currentEpoch(): Epoch;
@@ -87,9 +84,7 @@ export declare class Clock extends EventEmitter implements IClock {
87
84
  slotWithPastTolerance(toleranceSec: number): Slot;
88
85
  /**
89
86
  * Check if a slot is current slot given MAXIMUM_GOSSIP_CLOCK_DISPARITY.
90
- *
91
- * Uses `<=` for disparity checks because the spec rejects with strict `<`
92
- * (phase0/p2p-interface.md), meaning the boundary (exactly equal) is accepted.
87
+ * Spec: phase0/p2p-interface.md rejects future messages with strict `<`, hence `<=`.
93
88
  */
94
89
  isCurrentSlotGivenGossipDisparity(slot: Slot): boolean;
95
90
  waitForSlot(slot: Slot): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../../src/util/clock.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAGjD,oBAAY,UAAU;IACpB;;;OAGG;IACH,IAAI,eAAe;IACnB;;;OAGG;IACH,KAAK,gBAAgB;CACtB;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACxC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC5C,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG;IACnE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,8BAA8B,EAAE,IAAI,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC;IAC7B,8EAA8E;IAC9E,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,8EAA8E;IAC9E,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD;;OAEG;IACH,iCAAiC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACvD;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,qBAAa,KAAM,SAAQ,YAAa,YAAW,MAAM;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,YAAY,CAAS;IAE7B,YAAY,EAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAC,EAAE;QAAC,MAAM,EAAE,eAAe,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAC,EAS7G;IAED,IAAI,WAAW,IAAI,IAAI,CAOtB;IACD;;;;;;OAMG;IACH,IAAI,8BAA8B,IAAI,IAAI,CAIzC;IAED,IAAI,YAAY,IAAI,KAAK,CAExB;IAED,8EAA8E;IAC9E,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAGlD;IAED,8EAA8E;IAC9E,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAGhD;IAED;;;;;OAKG;IACH,iCAAiC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAgBrD;IAEK,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B3C;IAED,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,SAAoB,GAAG,MAAM,CAEzD;IAED,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,SAAa,GAAG,MAAM,CAEhD;IAED,OAAO,CAAC,UAAU,CAqBhB;IAEF,OAAO,CAAC,eAAe;CAKxB"}
1
+ {"version":3,"file":"clock.d.ts","sourceRoot":"","sources":["../../src/util/clock.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAGjD,oBAAY,UAAU;IACpB;;;OAGG;IACH,IAAI,eAAe;IACnB;;;OAGG;IACH,KAAK,gBAAgB;CACtB;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACxC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC5C,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG;IACnE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,8BAA8B,EAAE,IAAI,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC;IAC7B,8EAA8E;IAC9E,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,8EAA8E;IAC9E,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD;;OAEG;IACH,iCAAiC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IACvD;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,qBAAa,KAAM,SAAQ,YAAa,YAAW,MAAM;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,YAAY,CAAS;IAE7B,YAAY,EAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAC,EAAE;QAAC,MAAM,EAAE,eAAe,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAC,EAS7G;IAED,IAAI,WAAW,IAAI,IAAI,CAOtB;IACD;;;OAGG;IACH,IAAI,8BAA8B,IAAI,IAAI,CAIzC;IAED,IAAI,YAAY,IAAI,KAAK,CAExB;IAED,8EAA8E;IAC9E,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAGlD;IAED,8EAA8E;IAC9E,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAGhD;IAED;;;OAGG;IACH,iCAAiC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAgBrD;IAEK,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B3C;IAED,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,SAAoB,GAAG,MAAM,CAEzD;IAED,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,SAAa,GAAG,MAAM,CAEhD;IAED,OAAO,CAAC,UAAU,CAqBhB;IAEF,OAAO,CAAC,eAAe;CAKxB"}
package/lib/util/clock.js CHANGED
@@ -42,10 +42,7 @@ export class Clock extends EventEmitter {
42
42
  }
43
43
  /**
44
44
  * If it's too close to next slot given MAXIMUM_GOSSIP_CLOCK_DISPARITY, return currentSlot + 1.
45
- * Otherwise return currentSlot
46
- *
47
- * Spec: phase0/p2p-interface.md - gossip validation uses `current_time + MAXIMUM_GOSSIP_CLOCK_DISPARITY < message_time`
48
- * to reject future messages (strict `<`), so the boundary (exactly equal) is accepted, hence `<=` here.
45
+ * Spec: phase0/p2p-interface.md rejects future messages with strict `<`, hence `<=` here.
49
46
  */
50
47
  get currentSlotWithGossipDisparity() {
51
48
  const currentSlot = this.currentSlot;
@@ -67,9 +64,7 @@ export class Clock extends EventEmitter {
67
64
  }
68
65
  /**
69
66
  * Check if a slot is current slot given MAXIMUM_GOSSIP_CLOCK_DISPARITY.
70
- *
71
- * Uses `<=` for disparity checks because the spec rejects with strict `<`
72
- * (phase0/p2p-interface.md), meaning the boundary (exactly equal) is accepted.
67
+ * Spec: phase0/p2p-interface.md rejects future messages with strict `<`, hence `<=`.
73
68
  */
74
69
  isCurrentSlotGivenGossipDisparity(slot) {
75
70
  const currentSlot = this.currentSlot;
@@ -1 +1 @@
1
- {"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/util/clock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/util/clock.ts"],"names":[],"mappings":"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"}
@@ -23,10 +23,16 @@ export declare function wireEventsOnWorkerThread<EventData>(mainEventName: strin
23
23
  export declare function wireEventsOnMainThread<EventData>(mainEventName: string, events: StrictEventEmitterSingleArg<EventData>, worker: Pick<Worker, "on" | "postMessage">, metrics: Metrics | null, isWorkerToMain: {
24
24
  [K in keyof EventData]: EventDirection;
25
25
  }): void;
26
+ /**
27
+ * Terminate a worker thread, bounded to `retryCount * retryMs`.
28
+ *
29
+ * @returns `false` if it could not be terminated, the worker thread is then still running and the
30
+ * caller has to decide how to proceed without it.
31
+ */
26
32
  export declare function terminateWorkerThread({ worker, retryMs, retryCount, logger, }: {
27
33
  worker: Thread;
28
34
  retryMs: number;
29
35
  retryCount: number;
30
36
  logger?: Logger;
31
- }): Promise<void>;
37
+ }): Promise<boolean>;
32
38
  //# sourceMappingURL=workerEvents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workerEvents.d.ts","sourceRoot":"","sources":["../../src/util/workerEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAC,cAAc,EAAe,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAC,2BAA2B,EAAC,MAAM,mBAAmB,CAAC;AAI9D,MAAM,MAAM,iBAAiB,CAAC,SAAS,IAAI;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,SAAS,CAAC;IACvB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,IAAI,EAAE,SAAS,CAAC,MAAM,SAAS,CAAC,CAAC;CAClC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAChD,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,EAC9C,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,wBAAwB,GAAG,IAAI,EACxC,cAAc,EAAE;KAAE,CAAC,IAAI,MAAM,SAAS,GAAG,cAAc;CAAC,GACvD,IAAI,CAuCN;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAC9C,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,EAC9C,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,aAAa,CAAC,EAC1C,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,cAAc,EAAE;KAAE,CAAC,IAAI,MAAM,SAAS,GAAG,cAAc;CAAC,GACvD,IAAI,CAiCN;AAED,wBAAsB,qBAAqB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,UAAU,EACV,MAAM,GACP,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhB"}
1
+ {"version":3,"file":"workerEvents.d.ts","sourceRoot":"","sources":["../../src/util/workerEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAC,cAAc,EAAe,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAC,2BAA2B,EAAC,MAAM,mBAAmB,CAAC;AAI9D,MAAM,MAAM,iBAAiB,CAAC,SAAS,IAAI;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,SAAS,CAAC;IACvB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,IAAI,EAAE,SAAS,CAAC,MAAM,SAAS,CAAC,CAAC;CAClC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAChD,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,EAC9C,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,wBAAwB,GAAG,IAAI,EACxC,cAAc,EAAE;KAAE,CAAC,IAAI,MAAM,SAAS,GAAG,cAAc;CAAC,GACvD,IAAI,CAuCN;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAC9C,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,EAC9C,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,aAAa,CAAC,EAC1C,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,cAAc,EAAE;KAAE,CAAC,IAAI,MAAM,SAAS,GAAG,cAAc;CAAC,GACvD,IAAI,CAiCN;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,UAAU,EACV,MAAM,GACP,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBnB"}
@@ -70,6 +70,12 @@ export function wireEventsOnMainThread(mainEventName, events, worker, metrics, i
70
70
  }
71
71
  }
72
72
  }
73
+ /**
74
+ * Terminate a worker thread, bounded to `retryCount * retryMs`.
75
+ *
76
+ * @returns `false` if it could not be terminated, the worker thread is then still running and the
77
+ * caller has to decide how to proceed without it.
78
+ */
73
79
  export async function terminateWorkerThread({ worker, retryMs, retryCount, logger, }) {
74
80
  const terminated = new Promise((resolve) => {
75
81
  Thread.events(worker).subscribe((event) => {
@@ -79,12 +85,18 @@ export async function terminateWorkerThread({ worker, retryMs, retryCount, logge
79
85
  });
80
86
  });
81
87
  for (let i = 0; i < retryCount; i++) {
82
- await Thread.terminate(worker);
83
- const result = await Promise.race([terminated, sleep(retryMs).then(() => false)]);
88
+ // `Worker.terminate()` resolves only once the worker thread exits, and the thread can spin
89
+ // forever in `Environment::CleanupHandles()` when a libuv handle on its loop never closes, so
90
+ // it has to be raced too, otherwise `retryCount * retryMs` never applies.
91
+ const result = await Promise.race([
92
+ Thread.terminate(worker).then(() => terminated),
93
+ sleep(retryMs).then(() => false),
94
+ ]);
84
95
  if (result)
85
- return;
86
- logger?.warn("Worker thread failed to terminate, retrying...");
96
+ return true;
97
+ logger?.debug("Worker thread failed to terminate, retrying...");
87
98
  }
88
- throw new Error(`Worker thread failed to terminate in ${retryCount * retryMs}ms.`);
99
+ logger?.debug(`Worker thread failed to terminate in ${retryCount * retryMs}ms`);
100
+ return false;
89
101
  }
90
102
  //# sourceMappingURL=workerEvents.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workerEvents.js","sourceRoot":"","sources":["../../src/util/workerEvents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workerEvents.js","sourceRoot":"","sources":["../../src/util/workerEvents.ts"],"names":[],"mappings":"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"}
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.46.0-dev.8b30182711",
14
+ "version": "1.46.0-dev.8bab23d909",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -105,7 +105,7 @@
105
105
  "@chainsafe/discv5": "^12.0.1",
106
106
  "@chainsafe/enr": "^6.0.1",
107
107
  "@chainsafe/libp2p-noise": "^17.0.0",
108
- "@chainsafe/libp2p-quic": "^2.1.1",
108
+ "@chainsafe/libp2p-quic": "^2.1.3",
109
109
  "@chainsafe/persistent-merkle-tree": "^1.3.0",
110
110
  "@chainsafe/prometheus-gc-stats": "^1.0.0",
111
111
  "@chainsafe/snappy-wasm": "^0.5.0",
@@ -126,17 +126,17 @@
126
126
  "@libp2p/peer-id": "^6.0.4",
127
127
  "@libp2p/prometheus-metrics": "^5.0.14",
128
128
  "@libp2p/tcp": "^11.0.13",
129
- "@lodestar/api": "^1.46.0-dev.8b30182711",
130
- "@lodestar/config": "^1.46.0-dev.8b30182711",
131
- "@lodestar/db": "^1.46.0-dev.8b30182711",
132
- "@lodestar/fork-choice": "^1.46.0-dev.8b30182711",
133
- "@lodestar/logger": "^1.46.0-dev.8b30182711",
134
- "@lodestar/params": "^1.46.0-dev.8b30182711",
135
- "@lodestar/reqresp": "^1.46.0-dev.8b30182711",
136
- "@lodestar/state-transition": "^1.46.0-dev.8b30182711",
137
- "@lodestar/types": "^1.46.0-dev.8b30182711",
138
- "@lodestar/utils": "^1.46.0-dev.8b30182711",
139
- "@lodestar/validator": "^1.46.0-dev.8b30182711",
129
+ "@lodestar/api": "^1.46.0-dev.8bab23d909",
130
+ "@lodestar/config": "^1.46.0-dev.8bab23d909",
131
+ "@lodestar/db": "^1.46.0-dev.8bab23d909",
132
+ "@lodestar/fork-choice": "^1.46.0-dev.8bab23d909",
133
+ "@lodestar/logger": "^1.46.0-dev.8bab23d909",
134
+ "@lodestar/params": "^1.46.0-dev.8bab23d909",
135
+ "@lodestar/reqresp": "^1.46.0-dev.8bab23d909",
136
+ "@lodestar/state-transition": "^1.46.0-dev.8bab23d909",
137
+ "@lodestar/types": "^1.46.0-dev.8bab23d909",
138
+ "@lodestar/utils": "^1.46.0-dev.8bab23d909",
139
+ "@lodestar/validator": "^1.46.0-dev.8bab23d909",
140
140
  "@multiformats/multiaddr": "^13.0.1",
141
141
  "datastore-core": "^11.0.2",
142
142
  "datastore-level": "^12.0.2",
@@ -158,7 +158,7 @@
158
158
  "@libp2p/interface-internal": "^3.0.13",
159
159
  "@libp2p/logger": "^6.2.2",
160
160
  "@libp2p/utils": "^7.0.13",
161
- "@lodestar/spec-test-util": "^1.46.0-dev.8b30182711",
161
+ "@lodestar/spec-test-util": "^1.46.0-dev.8bab23d909",
162
162
  "@types/js-yaml": "^4.0.5",
163
163
  "@types/qs": "^6.9.7",
164
164
  "@types/tmp": "^0.2.3",
@@ -175,5 +175,5 @@
175
175
  "beacon",
176
176
  "blockchain"
177
177
  ],
178
- "gitHead": "61745b494625f0d8bbfd0c026fb31fc38743c126"
178
+ "gitHead": "883fd70505af39446f16444e498a3722913f5ce7"
179
179
  }
@@ -58,7 +58,7 @@ import {
58
58
  ProduceFullGloas,
59
59
  } from "../../../../chain/produceBlock/index.js";
60
60
  import {RegenCaller} from "../../../../chain/regen/index.js";
61
- import {validateGossipBlock} from "../../../../chain/validation/block.js";
61
+ import {validateGossipBlock, verifyBlockProposerSignature} from "../../../../chain/validation/block.js";
62
62
  import {validateApiExecutionPayloadBid} from "../../../../chain/validation/executionPayloadBid.js";
63
63
  import {validateApiExecutionPayloadEnvelope} from "../../../../chain/validation/executionPayloadEnvelope.js";
64
64
  import {OpSource} from "../../../../chain/validatorMonitor.js";
@@ -268,7 +268,6 @@ export function getBeaconBlockApi({
268
268
  await verifyBlocksInEpoch.call(chain as BeaconChain, parentBlock, [blockForImport], null, {
269
269
  ...opts,
270
270
  verifyOnly: true,
271
- skipVerifyBlockSignatures: true,
272
271
  skipVerifyExecutionPayload: true,
273
272
  seenTimestampSec,
274
273
  });
@@ -285,12 +284,31 @@ export function getBeaconBlockApi({
285
284
 
286
285
  chain.logger.debug("Consensus validated while publishing block", valLogMeta);
287
286
 
288
- if (broadcastValidation === routes.beacon.BroadcastValidation.consensusAndEquivocation) {
289
- const message = `Equivocation checks not yet implemented for broadcastValidation=${broadcastValidation}`;
290
- if (chain.opts.broadcastValidationStrictness === "error") {
291
- throw Error(message);
287
+ // Non-local blocks had their proposer and block-body signatures checked by verifyBlocksInEpoch above
288
+ // Locally produced blocks already passed block production validation, so only their proposer signature is unchecked
289
+ // Verify that signature and observe the block root here
290
+ if (blockLocallyProduced) {
291
+ try {
292
+ await verifyBlockProposerSignature(chain, signedBlock, blockRoot);
293
+ chain.seenBlockProposers.observeBlockRoot(
294
+ slot,
295
+ signedBlock.message.proposerIndex,
296
+ blockRoot,
297
+ signedBlockToSignedHeader(config, signedBlock)
298
+ );
299
+ } catch (e) {
300
+ chain.logger.error(
301
+ "Proposer signature validation failed while publishing the block",
302
+ valLogMeta,
303
+ e as Error
304
+ );
305
+ chain.persistInvalidSszValue(
306
+ chain.config.getForkTypes(slot).SignedBeaconBlock,
307
+ signedBlock,
308
+ "api_reject_consensus_failure"
309
+ );
310
+ throw e;
292
311
  }
293
- chain.logger.warn(message, valLogMeta);
294
312
  }
295
313
  break;
296
314
  }
@@ -318,6 +336,25 @@ export function getBeaconBlockApi({
318
336
  await sleep(msToBlockSlot);
319
337
  }
320
338
 
339
+ if (broadcastValidation === routes.beacon.BroadcastValidation.consensusAndEquivocation) {
340
+ const conflictingRoots = chain.seenBlockProposers.getConflictingBlockRoots(
341
+ slot,
342
+ signedBlock.message.proposerIndex,
343
+ blockRoot
344
+ );
345
+ if (conflictingRoots.length > 0) {
346
+ chain.logger.warn("Not publishing block due to proposer equivocation", {
347
+ ...valLogMeta,
348
+ conflictingRoots: conflictingRoots.join(", "),
349
+ });
350
+ throw new ApiError(
351
+ 400,
352
+ `Block is a proposer equivocation, conflicting block roots: ${conflictingRoots.join(", ")}`
353
+ );
354
+ }
355
+ chain.logger.debug("Equivocation validated while publishing the block", valLogMeta);
356
+ }
357
+
321
358
  // TODO: Validate block
322
359
  const delaySec = seenTimestampSec - computeTimeAtSlot(config, slot, chain.genesisTime);
323
360
  metrics?.gossipBlock.elapsedTimeTillReceived.observe({source: OpSource.api}, delaySec);
@@ -775,15 +812,6 @@ export function getBeaconBlockApi({
775
812
  throw new ApiError(400, (error as Error).message);
776
813
  }
777
814
  chain.logger.debug("Consensus validated while publishing execution payload envelope", valLogMeta);
778
-
779
- // TODO GLOAS: check the block is not a proposer equivocation before publishing the envelope
780
- if (broadcastValidation === routes.beacon.BroadcastValidation.consensusAndEquivocation) {
781
- const message = `Equivocation checks not yet implemented for broadcastValidation=${broadcastValidation}`;
782
- if (chain.opts.broadcastValidationStrictness === "error") {
783
- throw Error(message);
784
- }
785
- chain.logger.warn(message, valLogMeta);
786
- }
787
815
  break;
788
816
  }
789
817
 
@@ -886,6 +914,27 @@ export function getBeaconBlockApi({
886
914
  await sleep(msToBlockSlot);
887
915
  }
888
916
 
917
+ // Keep this as the final async validation before publishing. A conflicting block may be observed while the
918
+ // envelope, blob data, or slot timing is being validated above.
919
+ if (broadcastValidation === routes.beacon.BroadcastValidation.consensusAndEquivocation) {
920
+ const conflictingRoots = chain.seenBlockProposers.getConflictingBlockRoots(
921
+ slot,
922
+ payloadInput.proposerIndex,
923
+ blockRootHex
924
+ );
925
+ if (conflictingRoots.length > 0) {
926
+ chain.logger.warn("Not publishing execution payload envelope due to proposer equivocation", {
927
+ ...valLogMeta,
928
+ conflictingRoots: conflictingRoots.join(", "),
929
+ });
930
+ throw new ApiError(
931
+ 400,
932
+ `Block of execution payload envelope is a proposer equivocation, conflicting block roots: ${conflictingRoots.join(", ")}`
933
+ );
934
+ }
935
+ chain.logger.debug("Equivocation validated while publishing execution payload envelope", valLogMeta);
936
+ }
937
+
889
938
  if (payloadInput.hasPayloadEnvelope()) {
890
939
  // The envelope may have been added while this request was being validated, e.g. via gossip
891
940
  chain.logger.debug("Execution payload envelope already added during publishing", valLogMeta);
@@ -27,6 +27,7 @@ import {
27
27
  DOMAIN_BUILDER_DEPOSIT,
28
28
  DOMAIN_CONTRIBUTION_AND_PROOF,
29
29
  DOMAIN_DEPOSIT,
30
+ DOMAIN_INCLUSION_LIST_COMMITTEE,
30
31
  DOMAIN_PROPOSER_PREFERENCES,
31
32
  DOMAIN_PTC_ATTESTER,
32
33
  DOMAIN_RANDAO,
@@ -150,6 +151,9 @@ export const specConstants = {
150
151
  DOMAIN_BUILDER_DEPOSIT,
151
152
  BUILDER_DEPOSIT_REQUEST_TYPE: toHexByte(BUILDER_DEPOSIT_REQUEST_TYPE),
152
153
  BUILDER_EXIT_REQUEST_TYPE: toHexByte(BUILDER_EXIT_REQUEST_TYPE),
154
+
155
+ // heze
156
+ DOMAIN_INCLUSION_LIST_COMMITTEE,
153
157
  };
154
158
 
155
159
  /** Convert single-byte numbers to hex strings for API spec compliance */
@@ -339,12 +339,13 @@ export function getValidatorApi(
339
339
  * Following activities should be skipped on an Optimistic head (with Syncing status):
340
340
  * 1. Attestation if targetRoot is optimistic
341
341
  * 2. SyncCommitteeContribution if if the root for which to produce contribution is Optimistic.
342
- * 3. ProduceBlock if the parentRoot (chain's current head is optimistic). However this doesn't
343
- * need to be checked/aborted here as assembleBody would call EL's api for the latest
344
- * executionStatus of the parentRoot. If still not validated, produceBlock will throw error.
345
- *
346
- * TODO/PENDING: SyncCommitteeSignatures should also be aborted, the best way to address this
347
- * is still in flux and will be updated as and when other CL's figure this out.
342
+ * 3. ProduceBlock if the parentRoot (chain's current head) is optimistic. Must be checked
343
+ * explicitly as only local payload production consults the EL, blinded blocks from an
344
+ * external builder or bid based blocks (gloas) can be produced without a synced EL.
345
+ * 4. SyncCommitteeSignature (base sync committee message) is aborted in the validator client
346
+ * (see SyncCommitteeService) when the head root it would sign is optimistic, since it is
347
+ * produced from the head root without a beacon-node produce endpoint to gate here. Spec:
348
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.1/sync/optimistic.md#participating-in-sync-committees
348
349
  */
349
350
 
350
351
  function notOnOptimisticBlockRoot(beaconBlockRoot: Root): void {
@@ -545,6 +546,12 @@ export function getValidatorApi(
545
546
  const parentBlock = chain.getProposerHead(slot);
546
547
  const {blockRoot: parentBlockRootHex, slot: parentSlot} = parentBlock;
547
548
  const parentBlockRoot = fromHex(parentBlockRootHex);
549
+ // An optimistic validator MUST NOT produce a block
550
+ if (isOptimisticBlock(parentBlock)) {
551
+ throw new NodeIsSyncing(
552
+ `Parent block's execution payload not yet validated, executionPayloadBlockHash=${parentBlock.executionPayloadBlockHash}`
553
+ );
554
+ }
548
555
  notOnOutOfRangeData(parentBlockRoot);
549
556
  metrics?.blockProductionSlotDelta.set(slot - parentSlot);
550
557
 
@@ -870,6 +877,12 @@ export function getValidatorApi(
870
877
  const parentBlock = chain.getProposerHead(slot);
871
878
  const {blockRoot: parentBlockRootHex, slot: parentSlot} = parentBlock;
872
879
  const parentBlockRoot = fromHex(parentBlockRootHex);
880
+ // An optimistic validator MUST NOT produce a block
881
+ if (isOptimisticBlock(parentBlock)) {
882
+ throw new NodeIsSyncing(
883
+ `Parent block's execution payload not yet validated, executionPayloadBlockHash=${parentBlock.executionPayloadBlockHash}`
884
+ );
885
+ }
873
886
  notOnOutOfRangeData(parentBlockRoot);
874
887
  metrics?.blockProductionSlotDelta.set(slot - parentSlot);
875
888
 
@@ -6,6 +6,7 @@ import {
6
6
  ForkChoiceError,
7
7
  ForkChoiceErrorCode,
8
8
  NotReorgedReason,
9
+ getFinalizedExecutionBlockHash,
9
10
  getSafeExecutionBlockHash,
10
11
  } from "@lodestar/fork-choice";
11
12
  import {
@@ -443,8 +444,8 @@ export async function importBlock(
443
444
  * the current finalized block does not contain any execution payload at all (pre MERGE_EPOCH) or if it contains a
444
445
  * zero block hash (pre TTD)
445
446
  */
446
- const safeBlockHash = getSafeExecutionBlockHash(this.forkChoice);
447
- const finalizedBlockHash = this.forkChoice.getFinalizedBlock().executionPayloadBlockHash ?? ZERO_HASH_HEX;
447
+ const safeBlockHash = getSafeExecutionBlockHash(this.forkChoice, this.logger);
448
+ const finalizedBlockHash = getFinalizedExecutionBlockHash(this.forkChoice, this.logger);
448
449
  if (headBlockHash !== ZERO_HASH_HEX) {
449
450
  this.executionEngine
450
451
  .notifyForkchoiceUpdate(