@lodestar/beacon-node 1.45.0-dev.51a1c44b27 → 1.45.0-dev.6568180f96

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 (282) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +186 -57
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/index.d.ts +1 -1
  5. package/lib/api/impl/beacon/index.d.ts.map +1 -1
  6. package/lib/api/impl/beacon/index.js.map +1 -1
  7. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  8. package/lib/api/impl/beacon/pool/index.js +6 -43
  9. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  10. package/lib/api/impl/beacon/state/index.d.ts +1 -1
  11. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  12. package/lib/api/impl/beacon/state/index.js +48 -5
  13. package/lib/api/impl/beacon/state/index.js.map +1 -1
  14. package/lib/api/impl/beacon/state/utils.d.ts +13 -3
  15. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  16. package/lib/api/impl/beacon/state/utils.js +48 -4
  17. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  18. package/lib/api/impl/debug/index.d.ts +1 -1
  19. package/lib/api/impl/debug/index.d.ts.map +1 -1
  20. package/lib/api/impl/debug/index.js +2 -2
  21. package/lib/api/impl/debug/index.js.map +1 -1
  22. package/lib/api/impl/lodestar/index.js +2 -2
  23. package/lib/api/impl/lodestar/index.js.map +1 -1
  24. package/lib/api/impl/proof/index.d.ts +1 -1
  25. package/lib/api/impl/proof/index.d.ts.map +1 -1
  26. package/lib/api/impl/proof/index.js +2 -2
  27. package/lib/api/impl/proof/index.js.map +1 -1
  28. package/lib/api/impl/utils.d.ts +23 -0
  29. package/lib/api/impl/utils.d.ts.map +1 -1
  30. package/lib/api/impl/utils.js +44 -1
  31. package/lib/api/impl/utils.js.map +1 -1
  32. package/lib/api/impl/validator/index.d.ts +0 -14
  33. package/lib/api/impl/validator/index.d.ts.map +1 -1
  34. package/lib/api/impl/validator/index.js +238 -149
  35. package/lib/api/impl/validator/index.js.map +1 -1
  36. package/lib/api/rest/base.d.ts.map +1 -1
  37. package/lib/api/rest/base.js +14 -3
  38. package/lib/api/rest/base.js.map +1 -1
  39. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  40. package/lib/chain/blocks/importBlock.js +4 -22
  41. package/lib/chain/blocks/importBlock.js.map +1 -1
  42. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +5 -2
  43. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -1
  44. package/lib/chain/blocks/payloadEnvelopeProcessor.js +17 -17
  45. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  46. package/lib/chain/blocks/utils/chainSegment.d.ts.map +1 -1
  47. package/lib/chain/blocks/utils/chainSegment.js +13 -5
  48. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  49. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +1 -1
  50. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  51. package/lib/chain/blocks/verifyBlocksSanityChecks.js +1 -1
  52. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  53. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +2 -2
  54. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -1
  55. package/lib/chain/builderCircuitBreaker.d.ts +31 -0
  56. package/lib/chain/builderCircuitBreaker.d.ts.map +1 -0
  57. package/lib/chain/builderCircuitBreaker.js +59 -0
  58. package/lib/chain/builderCircuitBreaker.js.map +1 -0
  59. package/lib/chain/chain.d.ts +3 -2
  60. package/lib/chain/chain.d.ts.map +1 -1
  61. package/lib/chain/chain.js +27 -5
  62. package/lib/chain/chain.js.map +1 -1
  63. package/lib/chain/errors/blockError.d.ts +48 -6
  64. package/lib/chain/errors/blockError.d.ts.map +1 -1
  65. package/lib/chain/errors/blockError.js +25 -4
  66. package/lib/chain/errors/blockError.js.map +1 -1
  67. package/lib/chain/errors/executionPayloadEnvelope.d.ts +11 -0
  68. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  69. package/lib/chain/errors/executionPayloadEnvelope.js +2 -0
  70. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  71. package/lib/chain/errors/proposerPreferences.d.ts +14 -1
  72. package/lib/chain/errors/proposerPreferences.d.ts.map +1 -1
  73. package/lib/chain/errors/proposerPreferences.js +2 -0
  74. package/lib/chain/errors/proposerPreferences.js.map +1 -1
  75. package/lib/chain/interface.d.ts +3 -2
  76. package/lib/chain/interface.d.ts.map +1 -1
  77. package/lib/chain/interface.js.map +1 -1
  78. package/lib/chain/lightClient/index.d.ts.map +1 -1
  79. package/lib/chain/lightClient/index.js +11 -6
  80. package/lib/chain/lightClient/index.js.map +1 -1
  81. package/lib/chain/lightClient/proofs.d.ts.map +1 -1
  82. package/lib/chain/lightClient/proofs.js +28 -2
  83. package/lib/chain/lightClient/proofs.js.map +1 -1
  84. package/lib/chain/lightClient/types.d.ts +3 -1
  85. package/lib/chain/lightClient/types.d.ts.map +1 -1
  86. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  87. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  88. package/lib/chain/opPools/proposerPreferencesPool.d.ts +3 -2
  89. package/lib/chain/opPools/proposerPreferencesPool.d.ts.map +1 -1
  90. package/lib/chain/opPools/proposerPreferencesPool.js +4 -1
  91. package/lib/chain/opPools/proposerPreferencesPool.js.map +1 -1
  92. package/lib/chain/options.d.ts +5 -0
  93. package/lib/chain/options.d.ts.map +1 -1
  94. package/lib/chain/options.js +1 -0
  95. package/lib/chain/options.js.map +1 -1
  96. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  97. package/lib/chain/prepareNextSlot.js +12 -7
  98. package/lib/chain/prepareNextSlot.js.map +1 -1
  99. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  100. package/lib/chain/produceBlock/produceBlockBody.js +4 -12
  101. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  102. package/lib/chain/seenCache/index.d.ts +0 -1
  103. package/lib/chain/seenCache/index.d.ts.map +1 -1
  104. package/lib/chain/seenCache/index.js +0 -1
  105. package/lib/chain/seenCache/index.js.map +1 -1
  106. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  107. package/lib/chain/stateCache/persistentCheckpointsCache.js +3 -2
  108. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  109. package/lib/chain/validation/aggregateAndProof.js +10 -6
  110. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  111. package/lib/chain/validation/attestation.d.ts.map +1 -1
  112. package/lib/chain/validation/attestation.js +10 -6
  113. package/lib/chain/validation/attestation.js.map +1 -1
  114. package/lib/chain/validation/block.d.ts.map +1 -1
  115. package/lib/chain/validation/block.js +53 -4
  116. package/lib/chain/validation/block.js.map +1 -1
  117. package/lib/chain/validation/executionPayloadBid.js +13 -12
  118. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  119. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  120. package/lib/chain/validation/executionPayloadEnvelope.js +29 -0
  121. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  122. package/lib/chain/validation/proposerPreferences.d.ts +9 -2
  123. package/lib/chain/validation/proposerPreferences.d.ts.map +1 -1
  124. package/lib/chain/validation/proposerPreferences.js +75 -14
  125. package/lib/chain/validation/proposerPreferences.js.map +1 -1
  126. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +1 -1
  127. package/lib/chain/validation/signatureSets/aggregateAndProof.js +2 -3
  128. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  129. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +1 -1
  130. package/lib/db/repositories/lightclientSyncCommitteeWitness.js +42 -7
  131. package/lib/db/repositories/lightclientSyncCommitteeWitness.js.map +1 -1
  132. package/lib/execution/builder/http.d.ts +18 -0
  133. package/lib/execution/builder/http.d.ts.map +1 -1
  134. package/lib/execution/builder/http.js +20 -11
  135. package/lib/execution/builder/http.js.map +1 -1
  136. package/lib/metrics/metrics/beacon.d.ts +6 -0
  137. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  138. package/lib/metrics/metrics/beacon.js +18 -0
  139. package/lib/metrics/metrics/beacon.js.map +1 -1
  140. package/lib/network/core/metrics.d.ts +65 -0
  141. package/lib/network/core/metrics.d.ts.map +1 -1
  142. package/lib/network/core/metrics.js +94 -0
  143. package/lib/network/core/metrics.js.map +1 -1
  144. package/lib/network/discv5/utils.d.ts.map +1 -1
  145. package/lib/network/discv5/utils.js +12 -3
  146. package/lib/network/discv5/utils.js.map +1 -1
  147. package/lib/network/gossip/encoding.d.ts +2 -2
  148. package/lib/network/gossip/encoding.d.ts.map +1 -1
  149. package/lib/network/gossip/encoding.js +22 -9
  150. package/lib/network/gossip/encoding.js.map +1 -1
  151. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  152. package/lib/network/gossip/gossipsub.js +4 -3
  153. package/lib/network/gossip/gossipsub.js.map +1 -1
  154. package/lib/network/gossip/topic.d.ts +831 -226
  155. package/lib/network/gossip/topic.d.ts.map +1 -1
  156. package/lib/network/gossip/topic.js +47 -4
  157. package/lib/network/gossip/topic.js.map +1 -1
  158. package/lib/network/interface.d.ts +4 -1
  159. package/lib/network/interface.d.ts.map +1 -1
  160. package/lib/network/network.d.ts +4 -1
  161. package/lib/network/network.d.ts.map +1 -1
  162. package/lib/network/network.js +19 -11
  163. package/lib/network/network.js.map +1 -1
  164. package/lib/network/peers/peerManager.d.ts.map +1 -1
  165. package/lib/network/peers/peerManager.js +10 -0
  166. package/lib/network/peers/peerManager.js.map +1 -1
  167. package/lib/network/peers/score/score.d.ts +3 -1
  168. package/lib/network/peers/score/score.d.ts.map +1 -1
  169. package/lib/network/peers/score/score.js +6 -1
  170. package/lib/network/peers/score/score.js.map +1 -1
  171. package/lib/network/peers/score/store.d.ts.map +1 -1
  172. package/lib/network/peers/score/store.js +6 -1
  173. package/lib/network/peers/score/store.js.map +1 -1
  174. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  175. package/lib/network/peers/utils/prioritizePeers.js +14 -0
  176. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  177. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  178. package/lib/network/processor/gossipHandlers.js +18 -9
  179. package/lib/network/processor/gossipHandlers.js.map +1 -1
  180. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -1
  181. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +4 -2
  182. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -1
  183. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  184. package/lib/network/reqresp/handlers/index.js +20 -11
  185. package/lib/network/reqresp/handlers/index.js.map +1 -1
  186. package/lib/network/util.d.ts +1 -0
  187. package/lib/network/util.d.ts.map +1 -1
  188. package/lib/network/util.js +4 -0
  189. package/lib/network/util.js.map +1 -1
  190. package/lib/sync/range/chain.d.ts +4 -1
  191. package/lib/sync/range/chain.d.ts.map +1 -1
  192. package/lib/sync/range/chain.js +3 -3
  193. package/lib/sync/range/chain.js.map +1 -1
  194. package/lib/sync/range/range.d.ts.map +1 -1
  195. package/lib/sync/range/range.js +10 -0
  196. package/lib/sync/range/range.js.map +1 -1
  197. package/lib/sync/sync.d.ts.map +1 -1
  198. package/lib/sync/sync.js +7 -0
  199. package/lib/sync/sync.js.map +1 -1
  200. package/lib/sync/unknownBlock.d.ts.map +1 -1
  201. package/lib/sync/unknownBlock.js +7 -2
  202. package/lib/sync/unknownBlock.js.map +1 -1
  203. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  204. package/lib/sync/utils/downloadByRange.js +6 -0
  205. package/lib/sync/utils/downloadByRange.js.map +1 -1
  206. package/lib/util/execution.js +1 -1
  207. package/lib/util/execution.js.map +1 -1
  208. package/lib/util/graffiti.d.ts +15 -0
  209. package/lib/util/graffiti.d.ts.map +1 -1
  210. package/lib/util/graffiti.js +55 -0
  211. package/lib/util/graffiti.js.map +1 -1
  212. package/package.json +23 -21
  213. package/src/api/impl/beacon/blocks/index.ts +221 -63
  214. package/src/api/impl/beacon/index.ts +1 -1
  215. package/src/api/impl/beacon/pool/index.ts +5 -53
  216. package/src/api/impl/beacon/state/index.ts +55 -3
  217. package/src/api/impl/beacon/state/utils.ts +68 -4
  218. package/src/api/impl/debug/index.ts +3 -2
  219. package/src/api/impl/lodestar/index.ts +2 -2
  220. package/src/api/impl/proof/index.ts +2 -2
  221. package/src/api/impl/utils.ts +51 -1
  222. package/src/api/impl/validator/index.ts +278 -162
  223. package/src/api/rest/base.ts +17 -3
  224. package/src/chain/blocks/importBlock.ts +2 -24
  225. package/src/chain/blocks/payloadEnvelopeProcessor.ts +17 -17
  226. package/src/chain/blocks/utils/chainSegment.ts +16 -5
  227. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +1 -1
  228. package/src/chain/blocks/verifyBlocksSanityChecks.ts +1 -1
  229. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +2 -2
  230. package/src/chain/builderCircuitBreaker.ts +84 -0
  231. package/src/chain/chain.ts +38 -5
  232. package/src/chain/errors/blockError.ts +44 -7
  233. package/src/chain/errors/executionPayloadEnvelope.ts +9 -0
  234. package/src/chain/errors/proposerPreferences.ts +16 -1
  235. package/src/chain/interface.ts +2 -2
  236. package/src/chain/lightClient/index.ts +12 -7
  237. package/src/chain/lightClient/proofs.ts +36 -1
  238. package/src/chain/lightClient/types.ts +3 -1
  239. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  240. package/src/chain/opPools/proposerPreferencesPool.ts +6 -2
  241. package/src/chain/options.ts +6 -0
  242. package/src/chain/prepareNextSlot.ts +11 -7
  243. package/src/chain/produceBlock/produceBlockBody.ts +9 -17
  244. package/src/chain/seenCache/index.ts +0 -1
  245. package/src/chain/stateCache/persistentCheckpointsCache.ts +3 -2
  246. package/src/chain/validation/aggregateAndProof.ts +12 -6
  247. package/src/chain/validation/attestation.ts +12 -6
  248. package/src/chain/validation/block.ts +69 -4
  249. package/src/chain/validation/executionPayloadBid.ts +16 -11
  250. package/src/chain/validation/executionPayloadEnvelope.ts +37 -0
  251. package/src/chain/validation/proposerPreferences.ts +86 -14
  252. package/src/chain/validation/signatureSets/aggregateAndProof.ts +3 -3
  253. package/src/db/repositories/lightclientSyncCommitteeWitness.ts +57 -9
  254. package/src/execution/builder/http.ts +30 -17
  255. package/src/metrics/metrics/beacon.ts +19 -0
  256. package/src/network/core/metrics.ts +94 -0
  257. package/src/network/discv5/utils.ts +11 -3
  258. package/src/network/gossip/encoding.ts +20 -7
  259. package/src/network/gossip/gossipsub.ts +9 -3
  260. package/src/network/gossip/topic.ts +58 -4
  261. package/src/network/interface.ts +3 -1
  262. package/src/network/network.ts +24 -15
  263. package/src/network/peers/peerManager.ts +11 -0
  264. package/src/network/peers/score/score.ts +8 -1
  265. package/src/network/peers/score/store.ts +8 -1
  266. package/src/network/peers/utils/prioritizePeers.ts +15 -0
  267. package/src/network/processor/gossipHandlers.ts +18 -8
  268. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +4 -2
  269. package/src/network/reqresp/handlers/index.ts +21 -12
  270. package/src/network/util.ts +5 -0
  271. package/src/sync/range/chain.ts +4 -5
  272. package/src/sync/range/range.ts +10 -0
  273. package/src/sync/sync.ts +10 -0
  274. package/src/sync/unknownBlock.ts +8 -2
  275. package/src/sync/utils/downloadByRange.ts +6 -0
  276. package/src/util/execution.ts +1 -1
  277. package/src/util/graffiti.ts +78 -0
  278. package/lib/chain/seenCache/seenProposerPreferences.d.ts +0 -16
  279. package/lib/chain/seenCache/seenProposerPreferences.d.ts.map +0 -1
  280. package/lib/chain/seenCache/seenProposerPreferences.js +0 -26
  281. package/lib/chain/seenCache/seenProposerPreferences.js.map +0 -1
  282. package/src/chain/seenCache/seenProposerPreferences.ts +0 -32
@@ -1,4 +1,47 @@
1
- import { ApiError } from "./errors.js";
1
+ import { SLOTS_PER_EPOCH } from "@lodestar/params";
2
+ import { SyncState } from "../../sync/index.js";
3
+ import { ApiError, NodeIsSyncing } from "./errors.js";
4
+ /**
5
+ * If the node is within this many epochs from the head, we declare it to be synced regardless of
6
+ * the network sync state.
7
+ *
8
+ * This helps prevent attacks where nodes can convince us that we're syncing some non-existent
9
+ * finalized head.
10
+ *
11
+ * TODO: Lighthouse uses 8 for the attack described above. However, 8 kills Lodestar since validators
12
+ * can trigger regen to fast-forward head state 8 epochs to be immediately invalidated as sync sets
13
+ * a new head. Then the checkpoint state cache grows unbounded with very different states (because
14
+ * they are 8 epochs apart) and causes an OOM. Research a proper solution once regen and the state
15
+ * caches are better.
16
+ */
17
+ export const SYNC_TOLERANCE_EPOCHS = 1;
18
+ /**
19
+ * Reject any request while the node is syncing. Used by endpoints that must not serve while the
20
+ * node is behind — validator duties, and beacon state lookups whose regen could otherwise walk
21
+ * back past the block-root window (`SLOTS_PER_HISTORICAL_ROOT`) and wedge the node. Throws
22
+ * {@link NodeIsSyncing} (503).
23
+ */
24
+ export function notWhileSyncing(chain, syncState) {
25
+ // Consider node synced before or close to genesis
26
+ if (chain.clock.currentSlot < SLOTS_PER_EPOCH) {
27
+ return;
28
+ }
29
+ switch (syncState) {
30
+ case SyncState.SyncingFinalized:
31
+ case SyncState.SyncingHead: {
32
+ const currentSlot = chain.clock.currentSlot;
33
+ const headSlot = chain.forkChoice.getHead().slot;
34
+ if (currentSlot - headSlot > SYNC_TOLERANCE_EPOCHS * SLOTS_PER_EPOCH) {
35
+ throw new NodeIsSyncing(`headSlot ${headSlot} currentSlot ${currentSlot}`);
36
+ }
37
+ return;
38
+ }
39
+ case SyncState.Synced:
40
+ return;
41
+ case SyncState.Stalled:
42
+ throw new NodeIsSyncing("waiting for peers");
43
+ }
44
+ }
2
45
  /**
3
46
  * Ensures that the array contains unique values, and throws an ApiError
4
47
  * otherwise.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/api/impl/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA4B,EAAE,OAAe,EAAQ;IACrF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,qBAAgC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3E,OAAO,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,qBAAqB,CAAC;IAAA,CAC9B,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,OAAO,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;AAAA,CACF"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/api/impl/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,aAAa,CAAC;AAEpD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAmB,EAAE,SAAoB,EAAQ;IAC/E,kDAAkD;IAClD,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,eAAe,EAAE,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,gBAAgB,CAAC;QAChC,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;YAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;YACjD,IAAI,WAAW,GAAG,QAAQ,GAAG,qBAAqB,GAAG,eAAe,EAAE,CAAC;gBACrE,MAAM,IAAI,aAAa,CAAC,YAAY,QAAQ,gBAAgB,WAAW,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,OAAO;QACT,CAAC;QAED,KAAK,SAAS,CAAC,MAAM;YACnB,OAAO;QAET,KAAK,SAAS,CAAC,OAAO;YACpB,MAAM,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACjD,CAAC;AAAA,CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA4B,EAAE,OAAe,EAAQ;IACrF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,qBAAgC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3E,OAAO,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,qBAAqB,CAAC;IAAA,CAC9B,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,OAAO,KAAK,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;AAAA,CACF"}
@@ -3,20 +3,6 @@ import { ApplicationMethods } from "@lodestar/api/server";
3
3
  import { ProducedBlockSource } from "@lodestar/types";
4
4
  import { ApiOptions } from "../../options.js";
5
5
  import { ApiModules } from "../types.js";
6
- /**
7
- * If the node is within this many epochs from the head, we declare it to be synced regardless of
8
- * the network sync state.
9
- *
10
- * This helps prevent attacks where nodes can convince us that we're syncing some non-existent
11
- * finalized head.
12
- *
13
- * TODO: Lighthouse uses 8 for the attack described above. However, 8 kills Lodestar since validators
14
- * can trigger regen to fast-forward head state 8 epochs to be immediately invalidated as sync sets
15
- * a new head. Then the checkpoint state cache grows unbounded with very different states (because
16
- * they are 8 epochs apart) and causes an OOM. Research a proper solution once regen and the state
17
- * caches are better.
18
- */
19
- export declare const SYNC_TOLERANCE_EPOCHS = 1;
20
6
  /**
21
7
  * Engine block selection reasons tracked in metrics / logs
22
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/impl/validator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AA+BxD,OAAO,EAQL,mBAAmB,EAUpB,MAAM,iBAAiB,CAAC;AAoCzB,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAGvC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;AA8BvC;;GAEG;AACH,oBAAY,0BAA0B;IACpC,eAAe,qBAAqB;IACpC,YAAY,kBAAkB;IAC9B,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;IAClC,YAAY,mBAAmB;IAC/B,iBAAiB,uBAAuB;IACxC,UAAU,gBAAgB;IAC1B,eAAe,qBAAqB;CACrC;AAED;;GAEG;AACH,oBAAY,2BAA2B;IACrC,cAAc,oBAAoB;IAClC,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,UAAU,gBAAgB;IAC1B,gBAAgB,sBAAsB;CACvC;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,0BAA0B,CAAC;CACpC,GACD;IACE,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC;IACpC,MAAM,EAAE,2BAA2B,CAAC;CACrC,CAAC;AAEN;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,EAAE,UAAU,GAC1D,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAsmDhD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/impl/validator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AA+BxD,OAAO,EAQL,mBAAmB,EAUpB,MAAM,iBAAiB,CAAC;AAuCzB,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAgCvC;;GAEG;AACH,oBAAY,0BAA0B;IACpC,eAAe,qBAAqB;IACpC,YAAY,kBAAkB;IAC9B,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;IAClC,YAAY,mBAAmB;IAC/B,iBAAiB,uBAAuB;IACxC,UAAU,gBAAgB;IAC1B,eAAe,qBAAqB;CACrC;AAED;;GAEG;AACH,oBAAY,2BAA2B;IACrC,cAAc,oBAAoB;IAClC,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,UAAU,gBAAgB;IAC1B,gBAAgB,sBAAsB;CACvC;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,0BAA0B,CAAC;CACpC,GACD;IACE,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC;IACpC,MAAM,EAAE,2BAA2B,CAAC;CACrC,CAAC;AAEN;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,EAAE,UAAU,GAC1D,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAquDhD"}