@lodestar/beacon-node 1.29.0-dev.f87bd54721 → 1.29.0-peerDAS.008adb8ef0

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 (236) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +37 -14
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/beacon/pool/index.js +1 -1
  4. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  5. package/lib/api/impl/beacon/state/index.js +0 -12
  6. package/lib/api/impl/beacon/state/index.js.map +1 -1
  7. package/lib/api/impl/validator/index.js +4 -14
  8. package/lib/api/impl/validator/index.js.map +1 -1
  9. package/lib/chain/archiveStore/archiveStore.d.ts +1 -1
  10. package/lib/chain/archiveStore/archiveStore.js +2 -2
  11. package/lib/chain/archiveStore/historicalState/worker.js +0 -12
  12. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  13. package/lib/chain/archiveStore/interface.d.ts +1 -1
  14. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +1 -1
  15. package/lib/chain/archiveStore/utils/archiveBlocks.js +81 -27
  16. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  17. package/lib/chain/beaconProposerCache.d.ts +1 -0
  18. package/lib/chain/beaconProposerCache.js +3 -0
  19. package/lib/chain/beaconProposerCache.js.map +1 -1
  20. package/lib/chain/blocks/importBlock.js +56 -14
  21. package/lib/chain/blocks/importBlock.js.map +1 -1
  22. package/lib/chain/blocks/types.d.ts +67 -26
  23. package/lib/chain/blocks/types.js +39 -6
  24. package/lib/chain/blocks/types.js.map +1 -1
  25. package/lib/chain/blocks/verifyBlocksDataAvailability.js +21 -10
  26. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  27. package/lib/chain/blocks/writeBlockInputToDb.js +88 -15
  28. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  29. package/lib/chain/chain.d.ts +28 -1
  30. package/lib/chain/chain.js +22 -7
  31. package/lib/chain/chain.js.map +1 -1
  32. package/lib/chain/emitter.d.ts +18 -2
  33. package/lib/chain/emitter.js +13 -0
  34. package/lib/chain/emitter.js.map +1 -1
  35. package/lib/chain/errors/dataColumnSidecarError.d.ts +27 -0
  36. package/lib/chain/errors/dataColumnSidecarError.js +12 -0
  37. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -0
  38. package/lib/chain/errors/index.d.ts +1 -0
  39. package/lib/chain/errors/index.js +1 -0
  40. package/lib/chain/errors/index.js.map +1 -1
  41. package/lib/chain/interface.d.ts +2 -0
  42. package/lib/chain/interface.js.map +1 -1
  43. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +6 -4
  44. package/lib/chain/opPools/aggregatedAttestationPool.js +48 -76
  45. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  46. package/lib/chain/opPools/attestationPool.d.ts +2 -4
  47. package/lib/chain/opPools/attestationPool.js +3 -4
  48. package/lib/chain/opPools/attestationPool.js.map +1 -1
  49. package/lib/chain/options.d.ts +4 -1
  50. package/lib/chain/options.js +4 -0
  51. package/lib/chain/options.js.map +1 -1
  52. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +55 -18
  53. package/lib/chain/seenCache/seenGossipBlockInput.js +293 -51
  54. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  55. package/lib/chain/validation/dataColumnSidecar.d.ts +8 -0
  56. package/lib/chain/validation/dataColumnSidecar.js +91 -0
  57. package/lib/chain/validation/dataColumnSidecar.js.map +1 -0
  58. package/lib/db/beacon.d.ts +3 -1
  59. package/lib/db/beacon.js +3 -1
  60. package/lib/db/beacon.js.map +1 -1
  61. package/lib/db/buckets.d.ts +3 -1
  62. package/lib/db/buckets.js +2 -0
  63. package/lib/db/buckets.js.map +1 -1
  64. package/lib/db/interface.d.ts +3 -1
  65. package/lib/db/repositories/dataColumnSidecars.d.ts +47 -0
  66. package/lib/db/repositories/dataColumnSidecars.js +40 -0
  67. package/lib/db/repositories/dataColumnSidecars.js.map +1 -0
  68. package/lib/db/repositories/dataColumnSidecarsArchive.d.ts +15 -0
  69. package/lib/db/repositories/dataColumnSidecarsArchive.js +23 -0
  70. package/lib/db/repositories/dataColumnSidecarsArchive.js.map +1 -0
  71. package/lib/db/repositories/index.d.ts +2 -0
  72. package/lib/db/repositories/index.js +2 -0
  73. package/lib/db/repositories/index.js.map +1 -1
  74. package/lib/execution/engine/http.d.ts +5 -3
  75. package/lib/execution/engine/http.js +48 -24
  76. package/lib/execution/engine/http.js.map +1 -1
  77. package/lib/execution/engine/interface.d.ts +4 -2
  78. package/lib/execution/engine/interface.js +1 -1
  79. package/lib/execution/engine/interface.js.map +1 -1
  80. package/lib/execution/engine/mock.d.ts +1 -0
  81. package/lib/execution/engine/mock.js +4 -0
  82. package/lib/execution/engine/mock.js.map +1 -1
  83. package/lib/execution/engine/types.d.ts +8 -0
  84. package/lib/execution/engine/types.js +6 -0
  85. package/lib/execution/engine/types.js.map +1 -1
  86. package/lib/metrics/metrics/beacon.d.ts +7 -0
  87. package/lib/metrics/metrics/beacon.js +23 -0
  88. package/lib/metrics/metrics/beacon.js.map +1 -1
  89. package/lib/metrics/metrics/lodestar.d.ts +10 -21
  90. package/lib/metrics/metrics/lodestar.js +28 -64
  91. package/lib/metrics/metrics/lodestar.js.map +1 -1
  92. package/lib/metrics/validatorMonitor.js +1 -1
  93. package/lib/metrics/validatorMonitor.js.map +1 -1
  94. package/lib/network/core/metrics.d.ts +13 -3
  95. package/lib/network/core/metrics.js +23 -0
  96. package/lib/network/core/metrics.js.map +1 -1
  97. package/lib/network/core/networkCore.d.ts +9 -3
  98. package/lib/network/core/networkCore.js +23 -17
  99. package/lib/network/core/networkCore.js.map +1 -1
  100. package/lib/network/core/networkCoreWorker.js +5 -5
  101. package/lib/network/core/networkCoreWorker.js.map +1 -1
  102. package/lib/network/core/networkCoreWorkerHandler.d.ts +4 -2
  103. package/lib/network/core/networkCoreWorkerHandler.js +10 -3
  104. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  105. package/lib/network/core/types.d.ts +5 -1
  106. package/lib/network/discv5/index.d.ts +3 -2
  107. package/lib/network/discv5/index.js +5 -4
  108. package/lib/network/discv5/index.js.map +1 -1
  109. package/lib/network/discv5/types.d.ts +1 -1
  110. package/lib/network/discv5/worker.js +6 -7
  111. package/lib/network/discv5/worker.js.map +1 -1
  112. package/lib/network/events.d.ts +3 -1
  113. package/lib/network/events.js.map +1 -1
  114. package/lib/network/gossip/gossipsub.js +0 -4
  115. package/lib/network/gossip/gossipsub.js.map +1 -1
  116. package/lib/network/gossip/interface.d.ts +8 -1
  117. package/lib/network/gossip/interface.js +1 -0
  118. package/lib/network/gossip/interface.js.map +1 -1
  119. package/lib/network/gossip/topic.d.ts +1189 -1289
  120. package/lib/network/gossip/topic.js +20 -1
  121. package/lib/network/gossip/topic.js.map +1 -1
  122. package/lib/network/interface.d.ts +17 -4
  123. package/lib/network/libp2p/index.d.ts +2 -2
  124. package/lib/network/libp2p/index.js +9 -9
  125. package/lib/network/libp2p/index.js.map +1 -1
  126. package/lib/network/metadata.d.ts +10 -6
  127. package/lib/network/metadata.js +20 -4
  128. package/lib/network/metadata.js.map +1 -1
  129. package/lib/network/network.d.ts +20 -6
  130. package/lib/network/network.js +63 -11
  131. package/lib/network/network.js.map +1 -1
  132. package/lib/network/networkConfig.d.ts +23 -0
  133. package/lib/network/networkConfig.js +32 -0
  134. package/lib/network/networkConfig.js.map +1 -0
  135. package/lib/network/options.js +2 -0
  136. package/lib/network/options.js.map +1 -1
  137. package/lib/network/peers/datastore.d.ts +1 -2
  138. package/lib/network/peers/datastore.js +1 -1
  139. package/lib/network/peers/datastore.js.map +1 -1
  140. package/lib/network/peers/discover.d.ts +19 -7
  141. package/lib/network/peers/discover.js +148 -18
  142. package/lib/network/peers/discover.js.map +1 -1
  143. package/lib/network/peers/peerManager.d.ts +11 -9
  144. package/lib/network/peers/peerManager.js +96 -10
  145. package/lib/network/peers/peerManager.js.map +1 -1
  146. package/lib/network/peers/peersData.d.ts +8 -2
  147. package/lib/network/peers/peersData.js.map +1 -1
  148. package/lib/network/peers/score/interface.d.ts +1 -1
  149. package/lib/network/peers/score/score.d.ts +2 -2
  150. package/lib/network/peers/score/score.js +4 -1
  151. package/lib/network/peers/score/score.js.map +1 -1
  152. package/lib/network/peers/score/store.d.ts +3 -1
  153. package/lib/network/peers/score/store.js +6 -2
  154. package/lib/network/peers/score/store.js.map +1 -1
  155. package/lib/network/peers/utils/getConnectedPeerIds.js +2 -2
  156. package/lib/network/peers/utils/getConnectedPeerIds.js.map +1 -1
  157. package/lib/network/peers/utils/prioritizePeers.d.ts +15 -4
  158. package/lib/network/peers/utils/prioritizePeers.js +30 -5
  159. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  160. package/lib/network/processor/extractSlotRootFns.js +8 -1
  161. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  162. package/lib/network/processor/gossipHandlers.js +154 -16
  163. package/lib/network/processor/gossipHandlers.js.map +1 -1
  164. package/lib/network/processor/gossipQueues/index.js +5 -0
  165. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  166. package/lib/network/processor/index.js +5 -1
  167. package/lib/network/processor/index.js.map +1 -1
  168. package/lib/network/reqresp/ReqRespBeaconNode.js +21 -3
  169. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  170. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +14 -5
  171. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +196 -14
  172. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
  173. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +28 -5
  174. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +254 -26
  175. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
  176. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +1 -1
  177. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  178. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +8 -0
  179. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +106 -0
  180. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -0
  181. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +6 -0
  182. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +58 -0
  183. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -0
  184. package/lib/network/reqresp/handlers/index.js +10 -0
  185. package/lib/network/reqresp/handlers/index.js.map +1 -1
  186. package/lib/network/reqresp/protocols.d.ts +3 -0
  187. package/lib/network/reqresp/protocols.js +15 -0
  188. package/lib/network/reqresp/protocols.js.map +1 -1
  189. package/lib/network/reqresp/rateLimit.js +11 -1
  190. package/lib/network/reqresp/rateLimit.js.map +1 -1
  191. package/lib/network/reqresp/types.d.ts +13 -6
  192. package/lib/network/reqresp/types.js +8 -1
  193. package/lib/network/reqresp/types.js.map +1 -1
  194. package/lib/network/subnets/interface.d.ts +2 -0
  195. package/lib/network/subnets/interface.js +16 -1
  196. package/lib/network/subnets/interface.js.map +1 -1
  197. package/lib/network/subnets/syncnetsService.js +4 -5
  198. package/lib/network/subnets/syncnetsService.js.map +1 -1
  199. package/lib/network/util.d.ts +1 -4
  200. package/lib/network/util.js +2 -2
  201. package/lib/network/util.js.map +1 -1
  202. package/lib/node/nodejs.d.ts +5 -3
  203. package/lib/node/nodejs.js +6 -4
  204. package/lib/node/nodejs.js.map +1 -1
  205. package/lib/sync/interface.d.ts +2 -2
  206. package/lib/sync/interface.js +1 -1
  207. package/lib/sync/interface.js.map +1 -1
  208. package/lib/sync/range/batch.d.ts +8 -2
  209. package/lib/sync/range/batch.js +19 -7
  210. package/lib/sync/range/batch.js.map +1 -1
  211. package/lib/sync/range/chain.d.ts +7 -2
  212. package/lib/sync/range/chain.js +45 -21
  213. package/lib/sync/range/chain.js.map +1 -1
  214. package/lib/sync/range/range.js +3 -3
  215. package/lib/sync/range/range.js.map +1 -1
  216. package/lib/sync/range/utils/peerBalancer.d.ts +4 -1
  217. package/lib/sync/range/utils/peerBalancer.js +20 -2
  218. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  219. package/lib/sync/unknownBlock.d.ts +8 -1
  220. package/lib/sync/unknownBlock.js +221 -62
  221. package/lib/sync/unknownBlock.js.map +1 -1
  222. package/lib/util/blobs.d.ts +12 -1
  223. package/lib/util/blobs.js +40 -1
  224. package/lib/util/blobs.js.map +1 -1
  225. package/lib/util/dataColumns.d.ts +105 -0
  226. package/lib/util/dataColumns.js +189 -0
  227. package/lib/util/dataColumns.js.map +1 -0
  228. package/lib/util/kzg.d.ts +9 -21
  229. package/lib/util/kzg.js +12 -88
  230. package/lib/util/kzg.js.map +1 -1
  231. package/lib/util/peerId.js +1 -1
  232. package/lib/util/peerId.js.map +1 -1
  233. package/lib/util/sszBytes.d.ts +1 -0
  234. package/lib/util/sszBytes.js +17 -0
  235. package/lib/util/sszBytes.js.map +1 -1
  236. package/package.json +33 -32
@@ -1 +1 @@
1
- {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { StrictEventEmitter } from "strict-event-emitter-types";
3
3
  import { routes } from "@lodestar/api";
4
4
  import { CheckpointWithHex } from "@lodestar/fork-choice";
5
5
  import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
6
- import { phase0 } from "@lodestar/types";
6
+ import { fulu, phase0 } from "@lodestar/types";
7
7
  /**
8
8
  * Important chain events that occur during normal chain operation.
9
9
  *
@@ -31,7 +31,20 @@ export declare enum ChainEvent {
31
31
  *
32
32
  * This event is guaranteed to be triggered whenever the fork choice justified checkpoint is updated. This is in response to a newly processed block.
33
33
  */
34
- forkChoiceFinalized = "forkChoice:finalized"
34
+ forkChoiceFinalized = "forkChoice:finalized",
35
+ /**
36
+ * This event signals that dependent services (e.g. custody sampling) should update to account for the new target group count.
37
+ */
38
+ updateTargetGroupCount = "updateTargetGroupCount",
39
+ /**
40
+ * This event signals that the chain is ready to advertise the given group count to the network.
41
+ */
42
+ updateAdvertisedGroupCount = "updateAdvertisedGroupCount",
43
+ /**
44
+ * This event signals that data columns have been fetched from the execution engine
45
+ * and are ready to be published.
46
+ */
47
+ publishDataColumns = "publishDataColumns"
35
48
  }
36
49
  export type HeadEventData = routes.events.EventData[routes.events.EventType.head];
37
50
  export type ReorgEventData = routes.events.EventData[routes.events.EventType.chainReorg];
@@ -42,6 +55,9 @@ export type IChainEvents = ApiEvents & {
42
55
  [ChainEvent.checkpoint]: (checkpoint: phase0.Checkpoint, state: CachedBeaconStateAllForks) => void;
43
56
  [ChainEvent.forkChoiceJustified]: (checkpoint: CheckpointWithHex) => void;
44
57
  [ChainEvent.forkChoiceFinalized]: (checkpoint: CheckpointWithHex) => void;
58
+ [ChainEvent.updateTargetGroupCount]: (targetGroupCount: number) => void;
59
+ [ChainEvent.updateAdvertisedGroupCount]: (advertisedGroupCount: number) => void;
60
+ [ChainEvent.publishDataColumns]: (sidecars: fulu.DataColumnSidecar[]) => void;
45
61
  };
46
62
  declare const ChainEventEmitter_base: {
47
63
  new (): StrictEventEmitter<EventEmitter, IChainEvents>;
@@ -28,6 +28,19 @@ export var ChainEvent;
28
28
  * This event is guaranteed to be triggered whenever the fork choice justified checkpoint is updated. This is in response to a newly processed block.
29
29
  */
30
30
  ChainEvent["forkChoiceFinalized"] = "forkChoice:finalized";
31
+ /**
32
+ * This event signals that dependent services (e.g. custody sampling) should update to account for the new target group count.
33
+ */
34
+ ChainEvent["updateTargetGroupCount"] = "updateTargetGroupCount";
35
+ /**
36
+ * This event signals that the chain is ready to advertise the given group count to the network.
37
+ */
38
+ ChainEvent["updateAdvertisedGroupCount"] = "updateAdvertisedGroupCount";
39
+ /**
40
+ * This event signals that data columns have been fetched from the execution engine
41
+ * and are ready to be published.
42
+ */
43
+ ChainEvent["publishDataColumns"] = "publishDataColumns";
31
44
  })(ChainEvent || (ChainEvent = {}));
32
45
  /**
33
46
  * Emits important chain events that occur during normal chain operation.
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/chain/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAQzC;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,UAoBX;AApBD,WAAY,UAAU;IACpB;;;;;OAKG;IACH,uCAAyB,CAAA;IACzB;;;;OAIG;IACH,0DAA4C,CAAA;IAC5C;;;;OAIG;IACH,0DAA4C,CAAA;AAC9C,CAAC,EApBW,UAAU,KAAV,UAAU,QAoBrB;AAeD;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAkB,SAAS,YAAyE;CAAG"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/chain/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAQzC;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,UAiCX;AAjCD,WAAY,UAAU;IACpB;;;;;OAKG;IACH,uCAAyB,CAAA;IACzB;;;;OAIG;IACH,0DAA4C,CAAA;IAC5C;;;;OAIG;IACH,0DAA4C,CAAA;IAC5C;;OAEG;IACH,+DAAiD,CAAA;IACjD;;OAEG;IACH,uEAAyD,CAAA;IACzD;;;OAGG;IACH,uDAAyC,CAAA;AAC3C,CAAC,EAjCW,UAAU,KAAV,UAAU,QAiCrB;AAoBD;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAkB,SAAS,YAAyE;CAAG"}
@@ -0,0 +1,27 @@
1
+ import { RootHex, Slot } from "@lodestar/types";
2
+ import { GossipActionError } from "./gossipValidation.js";
3
+ export declare enum DataColumnSidecarErrorCode {
4
+ INVALID_INDEX = "DATA_COLUMN_SIDECAR_ERROR_INVALID_INDEX",
5
+ FUTURE_SLOT = "DATA_COLUMN_SIDECAR_ERROR_FUTURE_SLOT",
6
+ PARENT_UNKNOWN = "DATA_COLUMN_SIDECAR_ERROR_PARENT_UNKNOWN",
7
+ INCLUSION_PROOF_INVALID = "BLOB_SIDECAR_ERROR_INCLUSION_PROOF_INVALID"
8
+ }
9
+ export type DataColumnSidecarErrorType = {
10
+ code: DataColumnSidecarErrorCode.INVALID_INDEX;
11
+ columnIndex: number;
12
+ gossipIndex: number;
13
+ } | {
14
+ code: DataColumnSidecarErrorCode.FUTURE_SLOT;
15
+ blockSlot: Slot;
16
+ currentSlot: Slot;
17
+ } | {
18
+ code: DataColumnSidecarErrorCode.PARENT_UNKNOWN;
19
+ parentRoot: RootHex;
20
+ } | {
21
+ code: DataColumnSidecarErrorCode.INCLUSION_PROOF_INVALID;
22
+ slot: Slot;
23
+ columnIdx: number;
24
+ };
25
+ export declare class DataColumnSidecarGossipError extends GossipActionError<DataColumnSidecarErrorType> {
26
+ }
27
+ //# sourceMappingURL=dataColumnSidecarError.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { GossipActionError } from "./gossipValidation.js";
2
+ export var DataColumnSidecarErrorCode;
3
+ (function (DataColumnSidecarErrorCode) {
4
+ DataColumnSidecarErrorCode["INVALID_INDEX"] = "DATA_COLUMN_SIDECAR_ERROR_INVALID_INDEX";
5
+ // following errors are adapted from the block errors
6
+ DataColumnSidecarErrorCode["FUTURE_SLOT"] = "DATA_COLUMN_SIDECAR_ERROR_FUTURE_SLOT";
7
+ DataColumnSidecarErrorCode["PARENT_UNKNOWN"] = "DATA_COLUMN_SIDECAR_ERROR_PARENT_UNKNOWN";
8
+ DataColumnSidecarErrorCode["INCLUSION_PROOF_INVALID"] = "BLOB_SIDECAR_ERROR_INCLUSION_PROOF_INVALID";
9
+ })(DataColumnSidecarErrorCode || (DataColumnSidecarErrorCode = {}));
10
+ export class DataColumnSidecarGossipError extends GossipActionError {
11
+ }
12
+ //# sourceMappingURL=dataColumnSidecarError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataColumnSidecarError.js","sourceRoot":"","sources":["../../../src/chain/errors/dataColumnSidecarError.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAN,IAAY,0BAOX;AAPD,WAAY,0BAA0B;IACpC,uFAAyD,CAAA;IAEzD,qDAAqD;IACrD,mFAAqD,CAAA;IACrD,yFAA2D,CAAA;IAC3D,oGAAsE,CAAA;AACxE,CAAC,EAPW,0BAA0B,KAA1B,0BAA0B,QAOrC;AAQD,MAAM,OAAO,4BAA6B,SAAQ,iBAA6C;CAAG"}
@@ -1,6 +1,7 @@
1
1
  export * from "./attestationError.js";
2
2
  export * from "./attesterSlashingError.js";
3
3
  export * from "./blobSidecarError.js";
4
+ export * from "./dataColumnSidecarError.js";
4
5
  export * from "./blockError.js";
5
6
  export * from "./gossipValidation.js";
6
7
  export * from "./proposerSlashingError.js";
@@ -1,6 +1,7 @@
1
1
  export * from "./attestationError.js";
2
2
  export * from "./attesterSlashingError.js";
3
3
  export * from "./blobSidecarError.js";
4
+ export * from "./dataColumnSidecarError.js";
4
5
  export * from "./blockError.js";
5
6
  export * from "./gossipValidation.js";
6
7
  export * from "./proposerSlashingError.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC"}
@@ -10,6 +10,7 @@ import { IExecutionBuilder, IExecutionEngine } from "../execution/index.js";
10
10
  import { Metrics } from "../metrics/metrics.js";
11
11
  import { BufferPool } from "../util/bufferPool.js";
12
12
  import { IClock } from "../util/clock.js";
13
+ import { CustodyConfig } from "../util/dataColumns.js";
13
14
  import { SerializedCache } from "../util/serializedCache.js";
14
15
  import { IArchiveStore } from "./archiveStore/interface.js";
15
16
  import { CheckpointBalancesCache } from "./balancesCache.js";
@@ -56,6 +57,7 @@ export interface IBeaconChain {
56
57
  readonly executionEngine: IExecutionEngine;
57
58
  readonly executionBuilder?: IExecutionBuilder;
58
59
  readonly config: BeaconConfig;
60
+ readonly custodyConfig: CustodyConfig;
59
61
  readonly logger: Logger;
60
62
  readonly metrics: Metrics | null;
61
63
  readonly bufferPool: BufferPool | null;
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/chain/interface.ts"],"names":[],"mappings":"AA6CA,OAAO,EAAsC,SAAS,EAAC,MAAM,oCAAoC,CAAC;AAmBlG,OAAO,EAAC,SAAS,EAA0B,CAAC;AAQ5C,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,qEAAmD,CAAA;IACnD,6DAA2C,CAAA;IAC3C,qDAAmC,CAAA;AACrC,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/chain/interface.ts"],"names":[],"mappings":"AA8CA,OAAO,EAAsC,SAAS,EAAC,MAAM,oCAAoC,CAAC;AAmBlG,OAAO,EAAC,SAAS,EAA0B,CAAC;AAQ5C,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,qEAAmD,CAAA;IACnD,6DAA2C,CAAA;IAC3C,qDAAmC,CAAA;AACrC,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
@@ -3,7 +3,6 @@ import { IForkChoice } from "@lodestar/fork-choice";
3
3
  import { ForkName } from "@lodestar/params";
4
4
  import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
5
5
  import { Attestation, Epoch, RootHex, Slot, ValidatorIndex, electra, phase0 } from "@lodestar/types";
6
- import { Metrics } from "../../metrics/metrics.js";
7
6
  import { InsertOutcome } from "./types.js";
8
7
  type CommitteeIndex = number;
9
8
  /**
@@ -29,7 +28,6 @@ type ValidateAttestationDataFn = (attData: phase0.AttestationData) => boolean;
29
28
  */
30
29
  export declare class AggregatedAttestationPool {
31
30
  private readonly config;
32
- private readonly metrics;
33
31
  /**
34
32
  * post electra, different committees could have the same AttData and we have to consolidate attestations of the same
35
33
  * data to be included in block, so we should group by data before index
@@ -37,7 +35,12 @@ export declare class AggregatedAttestationPool {
37
35
  */
38
36
  private readonly attestationGroupByIndexByDataHexBySlot;
39
37
  private lowestPermissibleSlot;
40
- constructor(config: ChainForkConfig, metrics?: Metrics | null);
38
+ constructor(config: ChainForkConfig);
39
+ /** For metrics to track size of the pool */
40
+ getAttestationCount(): {
41
+ attestationCount: number;
42
+ attestationDataCount: number;
43
+ };
41
44
  add(attestation: Attestation, dataRootHex: RootHex, attestingIndicesCount: number, committee: Uint32Array): InsertOutcome;
42
45
  /** Remove attestations which are too old to be included in a block. */
43
46
  prune(clockSlot: Slot): void;
@@ -59,7 +62,6 @@ export declare class AggregatedAttestationPool {
59
62
  * @param bySlot slot to filter, `bySlot === attestation.data.slot`
60
63
  */
61
64
  getAll(bySlot?: Slot): Attestation[];
62
- private onScrapeMetrics;
63
65
  }
64
66
  interface AttestationWithIndex {
65
67
  attestation: Attestation;
@@ -1,11 +1,11 @@
1
1
  import { aggregateSignatures } from "@chainsafe/blst";
2
2
  import { BitArray } from "@chainsafe/ssz";
3
- import { ForkName, ForkSeq, MAX_ATTESTATIONS, MAX_ATTESTATIONS_ELECTRA, MAX_COMMITTEES_PER_SLOT, MIN_ATTESTATION_INCLUSION_DELAY, SLOTS_PER_EPOCH, isForkPostDeneb, isForkPostElectra, } from "@lodestar/params";
4
- import { computeEpochAtSlot, computeSlotsSinceEpochStart, computeStartSlotAtEpoch, getBlockRootAtSlot, } from "@lodestar/state-transition";
3
+ import { EpochDifference } from "@lodestar/fork-choice";
4
+ import { ForkName, ForkSeq, MAX_ATTESTATIONS, MAX_ATTESTATIONS_ELECTRA, MAX_COMMITTEES_PER_SLOT, MIN_ATTESTATION_INCLUSION_DELAY, SLOTS_PER_EPOCH, isForkPostElectra, } from "@lodestar/params";
5
+ import { computeEpochAtSlot, computeStartSlotAtEpoch, getBlockRootAtSlot, } from "@lodestar/state-transition";
5
6
  import { isElectraAttestation, ssz, } from "@lodestar/types";
6
7
  import { assert, MapDef, toRootHex } from "@lodestar/utils";
7
8
  import { IntersectResult, intersectUint8Arrays } from "../../util/bitArray.js";
8
- import { getShufflingDependentRoot } from "../../util/dependentRoot.js";
9
9
  import { InsertOutcome } from "./types.js";
10
10
  import { pruneBySlot, signatureFromBytesNoCheck } from "./utils.js";
11
11
  /**
@@ -36,9 +36,8 @@ const MAX_ATTESTATIONS_PER_GROUP_ELECTRA = 3;
36
36
  * Note that we want to remove attestations with attesters that were included in the chain.
37
37
  */
38
38
  export class AggregatedAttestationPool {
39
- constructor(config, metrics = null) {
39
+ constructor(config) {
40
40
  this.config = config;
41
- this.metrics = metrics;
42
41
  /**
43
42
  * post electra, different committees could have the same AttData and we have to consolidate attestations of the same
44
43
  * data to be included in block, so we should group by data before index
@@ -46,7 +45,20 @@ export class AggregatedAttestationPool {
46
45
  */
47
46
  this.attestationGroupByIndexByDataHexBySlot = new MapDef(() => new Map());
48
47
  this.lowestPermissibleSlot = 0;
49
- metrics?.opPool.aggregatedAttestationPool.attDataPerSlot.addCollect(() => this.onScrapeMetrics(metrics));
48
+ }
49
+ /** For metrics to track size of the pool */
50
+ getAttestationCount() {
51
+ let attestationCount = 0;
52
+ let attestationDataCount = 0;
53
+ for (const attestationGroupByIndexByDataHex of this.attestationGroupByIndexByDataHexBySlot.values()) {
54
+ for (const attestationGroupByIndex of attestationGroupByIndexByDataHex.values()) {
55
+ attestationDataCount += attestationGroupByIndex.size;
56
+ for (const attestationGroup of attestationGroupByIndex.values()) {
57
+ attestationCount += attestationGroup.getAttestationCount();
58
+ }
59
+ }
60
+ }
61
+ return { attestationCount, attestationDataCount };
50
62
  }
51
63
  add(attestation, dataRootHex, attestingIndicesCount, committee) {
52
64
  const slot = attestation.data.slot;
@@ -88,14 +100,9 @@ export class AggregatedAttestationPool {
88
100
  }
89
101
  /** Remove attestations which are too old to be included in a block. */
90
102
  prune(clockSlot) {
91
- const fork = this.config.getForkName(clockSlot);
92
- const slotsToRetain = isForkPostDeneb(fork)
93
- ? // Post deneb, attestations from current and previous epoch can be included
94
- computeSlotsSinceEpochStart(clockSlot, computeEpochAtSlot(clockSlot) - 1)
95
- : // Before deneb, only retain SLOTS_PER_EPOCH slots
96
- SLOTS_PER_EPOCH;
97
- pruneBySlot(this.attestationGroupByIndexByDataHexBySlot, clockSlot, slotsToRetain);
98
- this.lowestPermissibleSlot = Math.max(clockSlot - slotsToRetain, 0);
103
+ // Only retain SLOTS_PER_EPOCH slots
104
+ pruneBySlot(this.attestationGroupByIndexByDataHexBySlot, clockSlot, SLOTS_PER_EPOCH);
105
+ this.lowestPermissibleSlot = Math.max(clockSlot - SLOTS_PER_EPOCH, 0);
99
106
  }
100
107
  getAttestationsForBlock(fork, forkChoice, state) {
101
108
  const forkSeq = ForkSeq[fork];
@@ -200,7 +207,10 @@ export class AggregatedAttestationPool {
200
207
  const slots = Array.from(this.attestationGroupByIndexByDataHexBySlot.keys()).sort((a, b) => b - a);
201
208
  // Track score of each `AttestationsConsolidation`
202
209
  const consolidations = new Map();
210
+ let minScore = Number.MAX_SAFE_INTEGER;
211
+ let slotCount = 0;
203
212
  slot: for (const slot of slots) {
213
+ slotCount++;
204
214
  const attestationGroupByIndexByDataHash = this.attestationGroupByIndexByDataHexBySlot.get(slot);
205
215
  // should not happen
206
216
  if (!attestationGroupByIndexByDataHash) {
@@ -216,27 +226,30 @@ export class AggregatedAttestationPool {
216
226
  continue; // Invalid attestations
217
227
  }
218
228
  const slotDelta = stateSlot - slot;
219
- // CommitteeIndex 0 1 2 ... Consolidationn (sameAttDataCons)
229
+ // CommitteeIndex 0 1 2 ... Consolidation
220
230
  // Attestations att00 --- att10 --- att20 --- 0 (att 00 10 20)
221
231
  // att01 --- - --- att21 --- 1 (att 01 __ 21)
222
232
  // - --- - --- att22 --- 2 (att __ __ 22)
223
233
  for (const attestationGroupByIndex of attestationGroupByIndexByDataHash.values()) {
224
234
  // sameAttDataCons could be up to MAX_ATTESTATIONS_PER_GROUP_ELECTRA
225
235
  const sameAttDataCons = [];
226
- const allAttestationGroups = Array.from(attestationGroupByIndex.values());
227
- if (allAttestationGroups.length === 0) {
228
- continue;
229
- }
230
- if (!validateAttestationDataFn(allAttestationGroups[0].data)) {
231
- continue;
232
- }
233
236
  for (const [committeeIndex, attestationGroup] of attestationGroupByIndex.entries()) {
234
237
  const notSeenAttestingIndices = notSeenValidatorsFn(epoch, slot, committeeIndex);
235
238
  if (notSeenAttestingIndices === null || notSeenAttestingIndices.size === 0) {
236
239
  continue;
237
240
  }
238
- // cannot apply this optimization like pre-electra because consolidation needs to be done across committees:
239
- // "after 2 slots, there are a good chance that we have 2 * MAX_ATTESTATIONS_ELECTRA attestations and break the for loop early"
241
+ if (slotCount > 2 &&
242
+ consolidations.size >= MAX_ATTESTATIONS_ELECTRA &&
243
+ notSeenAttestingIndices.size / slotDelta < minScore) {
244
+ // after 2 slots, there are a good chance that we have 2 * MAX_ATTESTATIONS_ELECTRA attestations and break the for loop early
245
+ // if not, we may have to scan all slots in the pool
246
+ // if we have enough attestations and the max possible score is lower than scores of `attestationsByScore`, we should skip
247
+ // otherwise it takes time to check attestation, add it and remove it later after the sort by score
248
+ continue;
249
+ }
250
+ if (!validateAttestationDataFn(attestationGroup.data)) {
251
+ continue;
252
+ }
240
253
  // TODO: Is it necessary to validateAttestation for:
241
254
  // - Attestation committee index not within current committee count
242
255
  // - Attestation aggregation bits length does not match committee length
@@ -257,14 +270,16 @@ export class AggregatedAttestationPool {
257
270
  sameAttDataCons[i].byCommittee.set(committeeIndex, attestationNonParticipation);
258
271
  sameAttDataCons[i].totalNotSeenCount += attestationNonParticipation.notSeenAttesterCount;
259
272
  }
260
- } // all committees are processed
261
- // after all committees are processed, we have a list of sameAttDataCons
262
- for (const consolidation of sameAttDataCons) {
263
- const score = consolidation.totalNotSeenCount / slotDelta;
264
- consolidations.set(consolidation, score);
265
- // Stop accumulating attestations there are enough that may have good scoring
266
- if (consolidations.size >= MAX_ATTESTATIONS_ELECTRA * 2) {
267
- break slot;
273
+ for (const consolidation of sameAttDataCons) {
274
+ const score = consolidation.totalNotSeenCount / slotDelta;
275
+ if (score < minScore) {
276
+ minScore = score;
277
+ }
278
+ consolidations.set(consolidation, score);
279
+ // Stop accumulating attestations there are enough that may have good scoring
280
+ if (consolidations.size >= MAX_ATTESTATIONS_ELECTRA * 2) {
281
+ break slot;
282
+ }
268
283
  }
269
284
  }
270
285
  }
@@ -303,47 +318,6 @@ export class AggregatedAttestationPool {
303
318
  }
304
319
  return attestations;
305
320
  }
306
- onScrapeMetrics(metrics) {
307
- const aggregatedAttestationPoolMetrics = metrics.opPool.aggregatedAttestationPool;
308
- const allSlots = Array.from(this.attestationGroupByIndexByDataHexBySlot.keys());
309
- // always record the previous slot because the current slot may not be finished yet, we may receive more attestations
310
- if (allSlots.length > 1) {
311
- // last item is current slot, we want the previous one
312
- const previousSlot = allSlots.at(-2);
313
- if (previousSlot == null) {
314
- // only happen right after we start the node
315
- return;
316
- }
317
- const groupByIndexByDataHex = this.attestationGroupByIndexByDataHexBySlot.get(previousSlot);
318
- if (groupByIndexByDataHex != null) {
319
- aggregatedAttestationPoolMetrics.attDataPerSlot.set(groupByIndexByDataHex.size);
320
- let maxAttestations = 0;
321
- let committeeCount = 0;
322
- for (const groupByIndex of groupByIndexByDataHex.values()) {
323
- for (const group of groupByIndex.values()) {
324
- const attestationCount = group.getAttestationCount();
325
- maxAttestations = Math.max(maxAttestations, attestationCount);
326
- aggregatedAttestationPoolMetrics.attestationsPerCommittee.observe(attestationCount);
327
- committeeCount += 1;
328
- }
329
- }
330
- aggregatedAttestationPoolMetrics.maxAttestationsPerCommittee.set(maxAttestations);
331
- aggregatedAttestationPoolMetrics.committeesPerSlot.set(committeeCount);
332
- }
333
- }
334
- let attestationCount = 0;
335
- let attestationDataCount = 0;
336
- for (const attestationGroupByIndexByDataHex of this.attestationGroupByIndexByDataHexBySlot.values()) {
337
- for (const attestationGroupByIndex of attestationGroupByIndexByDataHex.values()) {
338
- attestationDataCount += attestationGroupByIndex.size;
339
- for (const attestationGroup of attestationGroupByIndex.values()) {
340
- attestationCount += attestationGroup.getAttestationCount();
341
- }
342
- }
343
- }
344
- aggregatedAttestationPoolMetrics.size.set(attestationCount);
345
- aggregatedAttestationPoolMetrics.uniqueData.set(attestationDataCount);
346
- }
347
321
  }
348
322
  /**
349
323
  * Maintain a pool of AggregatedAttestation which all share the same AttestationData.
@@ -644,9 +618,7 @@ function isValidShuffling(forkChoice, state, blockRootHex, targetEpoch) {
644
618
  }
645
619
  let attestationDependentRoot;
646
620
  try {
647
- // should not use forkChoice.getDependentRoot directly, see https://github.com/ChainSafe/lodestar/issues/7651
648
- // attestationDependentRoot = forkChoice.getDependentRoot(beaconBlock, EpochDifference.previous);
649
- attestationDependentRoot = getShufflingDependentRoot(forkChoice, targetEpoch, computeEpochAtSlot(beaconBlock.slot), beaconBlock);
621
+ attestationDependentRoot = forkChoice.getDependentRoot(beaconBlock, EpochDifference.previous);
650
622
  }
651
623
  catch (_) {
652
624
  // getDependent root may throw error if the dependent root of attestation data is prior to finalized slot