@lodestar/beacon-node 1.47.0-dev.92bd4efe9b → 1.47.0-dev.931ecbec99

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 (176) 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 -6
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/pool/index.js +4 -0
  6. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  7. package/lib/api/impl/beacon/state/utils.d.ts +2 -1
  8. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  9. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  10. package/lib/api/impl/events/index.d.ts +1 -1
  11. package/lib/api/impl/events/index.d.ts.map +1 -1
  12. package/lib/api/impl/events/index.js +10 -3
  13. package/lib/api/impl/events/index.js.map +1 -1
  14. package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +1 -1
  15. package/lib/chain/archiveStore/historicalState/metrics.js +21 -0
  16. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  17. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  18. package/lib/chain/blocks/importBlock.js +2 -7
  19. package/lib/chain/blocks/importBlock.js.map +1 -1
  20. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  21. package/lib/chain/blocks/importExecutionPayload.js +1 -1
  22. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  23. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts +2 -2
  24. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts.map +1 -1
  25. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +2 -2
  26. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -1
  27. package/lib/chain/bls/index.d.ts +1 -1
  28. package/lib/chain/bls/index.d.ts.map +1 -1
  29. package/lib/chain/bls/interface.d.ts +5 -5
  30. package/lib/chain/bls/interface.d.ts.map +1 -1
  31. package/lib/chain/bls/multithread/index.d.ts +5 -11
  32. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  33. package/lib/chain/bls/multithread/index.js +116 -101
  34. package/lib/chain/bls/multithread/index.js.map +1 -1
  35. package/lib/chain/bls/multithread/jobItem.d.ts +5 -19
  36. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  37. package/lib/chain/bls/multithread/jobItem.js +10 -65
  38. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  39. package/lib/chain/bls/multithread/types.d.ts +29 -8
  40. package/lib/chain/bls/multithread/types.d.ts.map +1 -1
  41. package/lib/chain/bls/multithread/types.js +12 -0
  42. package/lib/chain/bls/multithread/types.js.map +1 -1
  43. package/lib/chain/bls/multithread/utils.d.ts +4 -0
  44. package/lib/chain/bls/multithread/utils.d.ts.map +1 -1
  45. package/lib/chain/bls/multithread/utils.js +10 -0
  46. package/lib/chain/bls/multithread/utils.js.map +1 -1
  47. package/lib/chain/bls/multithread/worker.js +49 -23
  48. package/lib/chain/bls/multithread/worker.js.map +1 -1
  49. package/lib/chain/bls/singleThread.d.ts +4 -10
  50. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  51. package/lib/chain/bls/singleThread.js +8 -45
  52. package/lib/chain/bls/singleThread.js.map +1 -1
  53. package/lib/chain/bls/utils.d.ts +4 -4
  54. package/lib/chain/bls/utils.d.ts.map +1 -1
  55. package/lib/chain/bls/utils.js +18 -19
  56. package/lib/chain/bls/utils.js.map +1 -1
  57. package/lib/chain/chain.d.ts +2 -1
  58. package/lib/chain/chain.d.ts.map +1 -1
  59. package/lib/chain/chain.js +6 -4
  60. package/lib/chain/chain.js.map +1 -1
  61. package/lib/chain/errors/proposerPreferences.d.ts +6 -0
  62. package/lib/chain/errors/proposerPreferences.d.ts.map +1 -1
  63. package/lib/chain/errors/proposerPreferences.js +1 -0
  64. package/lib/chain/errors/proposerPreferences.js.map +1 -1
  65. package/lib/chain/interface.d.ts +2 -1
  66. package/lib/chain/interface.d.ts.map +1 -1
  67. package/lib/chain/interface.js.map +1 -1
  68. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  69. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  70. package/lib/chain/opPools/attestationPool.d.ts +1 -1
  71. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  72. package/lib/chain/opPools/attestationPool.js +1 -1
  73. package/lib/chain/opPools/attestationPool.js.map +1 -1
  74. package/lib/chain/opPools/payloadAttestationPool.js +3 -3
  75. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  76. package/lib/chain/opPools/syncCommitteeMessagePool.js +1 -1
  77. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  78. package/lib/chain/opPools/syncContributionAndProofPool.js +1 -1
  79. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  80. package/lib/chain/opPools/utils.d.ts +1 -1
  81. package/lib/chain/opPools/utils.d.ts.map +1 -1
  82. package/lib/chain/opPools/utils.js +1 -1
  83. package/lib/chain/opPools/utils.js.map +1 -1
  84. package/lib/chain/seenCache/seenAttesters.d.ts +9 -5
  85. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  86. package/lib/chain/seenCache/seenAttesters.js +25 -4
  87. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  88. package/lib/chain/validation/attestation.d.ts.map +1 -1
  89. package/lib/chain/validation/attestation.js +1 -4
  90. package/lib/chain/validation/attestation.js.map +1 -1
  91. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  92. package/lib/chain/validation/attesterSlashing.js +1 -1
  93. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  94. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  95. package/lib/chain/validation/executionPayloadBid.js +1 -2
  96. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  97. package/lib/chain/validation/executionPayloadEnvelope.js +1 -1
  98. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  99. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  100. package/lib/chain/validation/payloadAttestationMessage.js +5 -14
  101. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  102. package/lib/chain/validation/proposerPreferences.d.ts +1 -1
  103. package/lib/chain/validation/proposerPreferences.d.ts.map +1 -1
  104. package/lib/chain/validation/proposerPreferences.js +13 -4
  105. package/lib/chain/validation/proposerPreferences.js.map +1 -1
  106. package/lib/chain/validation/proposerSlashing.js +1 -1
  107. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  108. package/lib/metrics/metrics/lodestar.d.ts +48 -18
  109. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  110. package/lib/metrics/metrics/lodestar.js +96 -50
  111. package/lib/metrics/metrics/lodestar.js.map +1 -1
  112. package/lib/network/libp2p/index.d.ts.map +1 -1
  113. package/lib/network/libp2p/index.js +10 -2
  114. package/lib/network/libp2p/index.js.map +1 -1
  115. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  116. package/lib/network/processor/gossipHandlers.js +7 -2
  117. package/lib/network/processor/gossipHandlers.js.map +1 -1
  118. package/lib/network/reqresp/score.d.ts.map +1 -1
  119. package/lib/network/reqresp/score.js +5 -11
  120. package/lib/network/reqresp/score.js.map +1 -1
  121. package/lib/node/nodejs.d.ts +2 -1
  122. package/lib/node/nodejs.d.ts.map +1 -1
  123. package/lib/node/nodejs.js.map +1 -1
  124. package/lib/sync/types.d.ts.map +1 -1
  125. package/lib/sync/types.js.map +1 -1
  126. package/lib/sync/unknownBlock.d.ts +9 -0
  127. package/lib/sync/unknownBlock.d.ts.map +1 -1
  128. package/lib/sync/unknownBlock.js +93 -9
  129. package/lib/sync/unknownBlock.js.map +1 -1
  130. package/package.json +15 -15
  131. package/src/api/impl/beacon/blocks/index.ts +4 -6
  132. package/src/api/impl/beacon/pool/index.ts +5 -0
  133. package/src/api/impl/beacon/state/utils.ts +2 -1
  134. package/src/api/impl/events/index.ts +10 -4
  135. package/src/chain/archiveStore/historicalState/metrics.ts +22 -0
  136. package/src/chain/blocks/importBlock.ts +1 -6
  137. package/src/chain/blocks/importExecutionPayload.ts +0 -1
  138. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +1 -9
  139. package/src/chain/bls/index.ts +1 -1
  140. package/src/chain/bls/interface.ts +7 -3
  141. package/src/chain/bls/multithread/index.ts +148 -120
  142. package/src/chain/bls/multithread/jobItem.ts +12 -82
  143. package/src/chain/bls/multithread/types.ts +33 -8
  144. package/src/chain/bls/multithread/utils.ts +11 -0
  145. package/src/chain/bls/multithread/worker.ts +85 -27
  146. package/src/chain/bls/singleThread.ts +11 -55
  147. package/src/chain/bls/utils.ts +23 -24
  148. package/src/chain/chain.ts +7 -5
  149. package/src/chain/errors/proposerPreferences.ts +7 -0
  150. package/src/chain/interface.ts +2 -1
  151. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  152. package/src/chain/opPools/attestationPool.ts +1 -1
  153. package/src/chain/opPools/payloadAttestationPool.ts +3 -3
  154. package/src/chain/opPools/syncCommitteeMessagePool.ts +1 -1
  155. package/src/chain/opPools/syncContributionAndProofPool.ts +1 -1
  156. package/src/chain/opPools/utils.ts +1 -1
  157. package/src/chain/seenCache/seenAttesters.ts +31 -5
  158. package/src/chain/validation/attestation.ts +1 -7
  159. package/src/chain/validation/attesterSlashing.ts +1 -8
  160. package/src/chain/validation/executionPayloadBid.ts +1 -2
  161. package/src/chain/validation/executionPayloadEnvelope.ts +0 -1
  162. package/src/chain/validation/payloadAttestationMessage.ts +6 -17
  163. package/src/chain/validation/proposerPreferences.ts +15 -5
  164. package/src/chain/validation/proposerSlashing.ts +1 -1
  165. package/src/metrics/metrics/lodestar.ts +101 -51
  166. package/src/network/libp2p/index.ts +11 -2
  167. package/src/network/processor/gossipHandlers.ts +9 -0
  168. package/src/network/reqresp/score.ts +5 -11
  169. package/src/node/nodejs.ts +2 -1
  170. package/src/sync/types.ts +3 -1
  171. package/src/sync/unknownBlock.ts +108 -12
  172. package/lib/chain/bls/maybeBatch.d.ts +0 -12
  173. package/lib/chain/bls/maybeBatch.d.ts.map +0 -1
  174. package/lib/chain/bls/maybeBatch.js +0 -35
  175. package/lib/chain/bls/maybeBatch.js.map +0 -1
  176. package/src/chain/bls/maybeBatch.ts +0 -45
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.47.0-dev.92bd4efe9b",
14
+ "version": "1.47.0-dev.931ecbec99",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -101,11 +101,11 @@
101
101
  },
102
102
  "dependencies": {
103
103
  "@chainsafe/as-sha256": "^1.2.4",
104
- "@chainsafe/blst": "^2.2.0",
105
104
  "@chainsafe/discv5": "^12.0.2",
106
105
  "@chainsafe/enr": "^6.0.2",
107
106
  "@chainsafe/libp2p-noise": "^17.0.0",
108
107
  "@chainsafe/libp2p-quic": "^2.1.3",
108
+ "@chainsafe/lodestar-z": "catalog:",
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.47.0-dev.92bd4efe9b",
130
- "@lodestar/config": "^1.47.0-dev.92bd4efe9b",
131
- "@lodestar/db": "^1.47.0-dev.92bd4efe9b",
132
- "@lodestar/fork-choice": "^1.47.0-dev.92bd4efe9b",
133
- "@lodestar/logger": "^1.47.0-dev.92bd4efe9b",
134
- "@lodestar/params": "^1.47.0-dev.92bd4efe9b",
135
- "@lodestar/reqresp": "^1.47.0-dev.92bd4efe9b",
136
- "@lodestar/state-transition": "^1.47.0-dev.92bd4efe9b",
137
- "@lodestar/types": "^1.47.0-dev.92bd4efe9b",
138
- "@lodestar/utils": "^1.47.0-dev.92bd4efe9b",
139
- "@lodestar/validator": "^1.47.0-dev.92bd4efe9b",
129
+ "@lodestar/api": "^1.47.0-dev.931ecbec99",
130
+ "@lodestar/config": "^1.47.0-dev.931ecbec99",
131
+ "@lodestar/db": "^1.47.0-dev.931ecbec99",
132
+ "@lodestar/fork-choice": "^1.47.0-dev.931ecbec99",
133
+ "@lodestar/logger": "^1.47.0-dev.931ecbec99",
134
+ "@lodestar/params": "^1.47.0-dev.931ecbec99",
135
+ "@lodestar/reqresp": "^1.47.0-dev.931ecbec99",
136
+ "@lodestar/state-transition": "^1.47.0-dev.931ecbec99",
137
+ "@lodestar/types": "^1.47.0-dev.931ecbec99",
138
+ "@lodestar/utils": "^1.47.0-dev.931ecbec99",
139
+ "@lodestar/validator": "^1.47.0-dev.931ecbec99",
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.47.0-dev.92bd4efe9b",
161
+ "@lodestar/spec-test-util": "^1.47.0-dev.931ecbec99",
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": "b5f7e8a85b527e8e9724d5a33ea662c522dfcab1"
178
+ "gitHead": "b9a86b6966fa8fbfdcecff9c593f6c995df8b671"
179
179
  }
@@ -220,12 +220,6 @@ export function getBeaconBlockApi({
220
220
  // Block has already been seen, e.g. via gossip racing the publish API. Benign.
221
221
  chain.logger.debug("Ignoring already-known block during publishing", valLogMeta);
222
222
  return;
223
- case BlockErrorCode.REPEAT_PROPOSAL:
224
- // The proposer already produced a block for this slot. For a solo setup this is a
225
- // notable signal (duplicate-proposal attempt). For fallback / DVT setups it is
226
- // expected on every block where another node published first.
227
- chain.logger.warn("Ignoring repeat-proposal block during publishing", valLogMeta);
228
- return;
229
223
  }
230
224
  }
231
225
 
@@ -1032,6 +1026,7 @@ export function getBeaconBlockApi({
1032
1026
  },
1033
1027
 
1034
1028
  async publishExecutionPayloadBid({signedExecutionPayloadBid}) {
1029
+ const seenTimestampSec = Date.now() / 1000;
1035
1030
  const bid = signedExecutionPayloadBid.message;
1036
1031
  const slot = bid.slot;
1037
1032
  const fork = config.getForkName(slot);
@@ -1042,6 +1037,9 @@ export function getBeaconBlockApi({
1042
1037
 
1043
1038
  await validateApiExecutionPayloadBid(chain, signedExecutionPayloadBid);
1044
1039
 
1040
+ const elapsedSec = chain.clock.secFromSlot(slot, seenTimestampSec);
1041
+ metrics?.gossipExecutionPayloadBid.elapsedTimeTillReceived.observe({source: OpSource.api}, elapsedSec);
1042
+
1045
1043
  try {
1046
1044
  const insertOutcome = chain.executionPayloadBidPool.add(signedExecutionPayloadBid);
1047
1045
  metrics?.opPool.executionPayloadBidPool.apiInsertOutcome.inc({insertOutcome});
@@ -25,6 +25,7 @@ import {validateApiPayloadAttestationMessage} from "../../../../chain/validation
25
25
  import {validateApiProposerSlashing} from "../../../../chain/validation/proposerSlashing.js";
26
26
  import {validateApiSyncCommittee} from "../../../../chain/validation/syncCommittee.js";
27
27
  import {validateApiVoluntaryExit} from "../../../../chain/validation/voluntaryExit.js";
28
+ import {OpSource} from "../../../../chain/validatorMonitor.js";
28
29
  import {validateGossipFnRetryUnknownRoot} from "../../../../network/processor/gossipHandlers.js";
29
30
  import {ApiError, FailureList, IndexedError} from "../../errors.js";
30
31
  import {ApiModules} from "../../types.js";
@@ -211,6 +212,7 @@ export function getBeaconPoolApi({
211
212
  },
212
213
 
213
214
  async submitPayloadAttestationMessages({payloadAttestationMessages}) {
215
+ const seenTimestampSec = Date.now() / 1000;
214
216
  const failures: FailureList = [];
215
217
 
216
218
  await Promise.all(
@@ -226,6 +228,9 @@ export function getBeaconPoolApi({
226
228
  beaconBlockRoot
227
229
  );
228
230
 
231
+ const delaySec = chain.clock.secFromSlot(slot, seenTimestampSec);
232
+ metrics?.gossipPayloadAttestationMessage.elapsedTimeTillReceived.observe({source: OpSource.api}, delaySec);
233
+
229
234
  const insertOutcome = chain.payloadAttestationPool.add(
230
235
  payloadAttestationMessage,
231
236
  attDataRootHex,
@@ -1,7 +1,8 @@
1
+ import {type PubkeyCache} from "@chainsafe/lodestar-z/pubkeys";
1
2
  import {routes} from "@lodestar/api";
2
3
  import {CheckpointWithHex, IForkChoice} from "@lodestar/fork-choice";
3
4
  import {GENESIS_SLOT} from "@lodestar/params";
4
- import {IBeaconStateView, IBeaconStateViewGloas, PubkeyCache} from "@lodestar/state-transition";
5
+ import {IBeaconStateView, IBeaconStateViewGloas} from "@lodestar/state-transition";
5
6
  import {
6
7
  BLSPubkey,
7
8
  BuilderIndex,
@@ -4,7 +4,8 @@ import {ApiModules} from "../types.js";
4
4
 
5
5
  export function getEventsApi({
6
6
  chain,
7
- }: Pick<ApiModules, "chain" | "config">): ApplicationMethods<routes.events.Endpoints> {
7
+ logger,
8
+ }: Pick<ApiModules, "chain" | "config" | "logger">): ApplicationMethods<routes.events.Endpoints> {
8
9
  return {
9
10
  async eventstream({topics, signal, onEvent}) {
10
11
  const onAbortFns: (() => void)[] = [];
@@ -12,9 +13,14 @@ export function getEventsApi({
12
13
  for (const topic of topics) {
13
14
  // biome-ignore lint/suspicious/noExplicitAny: We need to use `any` type here
14
15
  const handler = (data: any): void => {
15
- // TODO: What happens if this handler throws? Does it break the other chain.emitter listeners?
16
-
17
- onEvent({type: topic, message: data});
16
+ try {
17
+ onEvent({type: topic, message: data});
18
+ } catch (e) {
19
+ // `chain.emitter` emits synchronously, a throwing listener would propagate the error to
20
+ // whoever emitted the event, e.g. a gossip handler, and skip the remaining listeners.
21
+ // A single misbehaving event or client must not affect the node or other subscribers.
22
+ logger.warn("Error sending event to client", {topic}, e as Error);
23
+ }
18
24
  };
19
25
 
20
26
  chain.emitter.on(topic, handler);
@@ -1,3 +1,4 @@
1
+ import {ForkName} from "@lodestar/params";
1
2
  import {
2
3
  BeaconStateTransitionMetrics,
3
4
  EpochTransitionStep,
@@ -45,6 +46,27 @@ export function createHistoricalStateTransitionMetrics(
45
46
  labelNames: ["step"],
46
47
  buckets: [0.01, 0.05, 0.1, 0.2, 0.5, 0.75, 1],
47
48
  }),
49
+ forkUpgradeTime: metricsRegister.histogram<{fork: ForkName}>({
50
+ name: "lodestar_historical_state_stfn_fork_upgrade_seconds",
51
+ help: "Time to upgrade the state at a fork boundary in seconds",
52
+ labelNames: ["fork"],
53
+ buckets: [0.05, 0.1, 0.25, 0.5, 1, 2, 5, 10, 30],
54
+ }),
55
+ onboardBuildersTime: metricsRegister.histogram({
56
+ name: "lodestar_historical_state_stfn_gloas_onboard_builders_seconds",
57
+ help: "Time spent in onboardBuildersFromPendingDeposits at the gloas fork transition",
58
+ buckets: [0.05, 0.1, 0.25, 0.5, 1, 2, 5, 10, 30],
59
+ }),
60
+ onboardBuildersDeposits: metricsRegister.gauge<{outcome: "onboarded" | "topup" | "kept" | "dropped"}>({
61
+ name: "lodestar_historical_state_stfn_gloas_onboard_builders_deposits",
62
+ help: "Pending deposits handled at the gloas fork transition, by outcome",
63
+ labelNames: ["outcome"],
64
+ }),
65
+ onboardBuildersSignatureChecks: metricsRegister.gauge<{source: "cache" | "verified"}>({
66
+ name: "lodestar_historical_state_stfn_gloas_onboard_builders_signature_checks",
67
+ help: "Builder deposit signature checks at the gloas fork transition, by whether the pre-verify cache served them",
68
+ labelNames: ["source"],
69
+ }),
48
70
  processBlockTime: metricsRegister.histogram({
49
71
  name: "lodestar_historical_state_stfn_process_block_seconds",
50
72
  help: "Time to process a single block in seconds",
@@ -22,7 +22,6 @@ import {
22
22
  RootCache,
23
23
  computeEpochAtSlot,
24
24
  computeTimeAtSlot,
25
- isStartSlotOfEpoch,
26
25
  isStatePostAltair,
27
26
  isStatePostBellatrix,
28
27
  } from "@lodestar/state-transition";
@@ -404,11 +403,7 @@ export async function importBlock(
404
403
  notOverrideFcuReason = NotReorgedReason.NotProposerOfNextSlot;
405
404
  }
406
405
  } catch (e) {
407
- if (isStartSlotOfEpoch(proposalSlot)) {
408
- notOverrideFcuReason = NotReorgedReason.AtEpochBoundary;
409
- } else {
410
- this.logger.warn("Unable to get beacon proposer. Do not override fcu.", {proposalSlot}, e as Error);
411
- }
406
+ this.logger.warn("Unable to get beacon proposer. Do not override fcu.", {proposalSlot}, e as Error);
412
407
  }
413
408
 
414
409
  if (shouldOverrideFcu) {
@@ -184,7 +184,6 @@ export async function importExecutionPayload(
184
184
  : verifyExecutionPayloadEnvelopeSignature(
185
185
  this.config,
186
186
  blockState,
187
- this.pubkeyCache,
188
187
  signedEnvelope,
189
188
  payloadInput.proposerIndex,
190
189
  this.bls
@@ -1,7 +1,6 @@
1
1
  import {BeaconConfig} from "@lodestar/config";
2
2
  import {
3
3
  type IBeaconStateViewGloas,
4
- type PubkeyCache,
5
4
  computeTimeAtSlot,
6
5
  getExecutionPayloadEnvelopeSignatureSet,
7
6
  } from "@lodestar/state-transition";
@@ -119,17 +118,10 @@ export function verifyExecutionPayloadEnvelope(
119
118
  export async function verifyExecutionPayloadEnvelopeSignature(
120
119
  config: BeaconConfig,
121
120
  state: IBeaconStateViewGloas,
122
- pubkeyCache: PubkeyCache,
123
121
  signedEnvelope: gloas.SignedExecutionPayloadEnvelope,
124
122
  proposerIndex: number,
125
123
  bls: IBlsVerifier
126
124
  ): Promise<boolean> {
127
- const signatureSet = getExecutionPayloadEnvelopeSignatureSet(
128
- config,
129
- pubkeyCache,
130
- state,
131
- signedEnvelope,
132
- proposerIndex
133
- );
125
+ const signatureSet = getExecutionPayloadEnvelopeSignatureSet(config, state, signedEnvelope, proposerIndex);
134
126
  return bls.verifySignatureSets([signatureSet]);
135
127
  }
@@ -1,4 +1,4 @@
1
- export type {IBlsVerifier} from "./interface.js";
1
+ export type {IBlsVerifier, SameMessageSignatureSet} from "./interface.js";
2
2
  export type {BlsMultiThreadWorkerPoolModules, JobQueueItemType} from "./multithread/index.js";
3
3
  export {BlsMultiThreadWorkerPool} from "./multithread/index.js";
4
4
  export {BlsSingleThreadVerifier} from "./singleThread.js";
@@ -1,6 +1,10 @@
1
- import {PublicKey} from "@chainsafe/blst";
2
1
  import {ISignatureSet} from "@lodestar/state-transition";
3
2
 
3
+ export type SameMessageSignatureSet = {
4
+ index: number;
5
+ signature: Uint8Array;
6
+ };
7
+
4
8
  export type VerifySignatureOpts = {
5
9
  /**
6
10
  * A batchable set MAY be verified with more sets to reduce the verification costs.
@@ -53,8 +57,8 @@ export interface IBlsVerifier {
53
57
  * - only support `batchable` option
54
58
  */
55
59
  verifySignatureSetsSameMessage(
56
- sets: {publicKey: PublicKey; signature: Uint8Array}[],
57
- messsage: Uint8Array,
60
+ sets: SameMessageSignatureSet[],
61
+ message: Uint8Array,
58
62
  opts?: Omit<VerifySignatureOpts, "verifyOnMainThread">
59
63
  ): Promise<boolean[]>;
60
64