@lodestar/beacon-node 1.41.0-dev.628870a020 → 1.41.0-dev.95cf2edc4c

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 (200) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +121 -3
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/state/index.js +8 -8
  5. package/lib/api/impl/beacon/state/index.js.map +1 -1
  6. package/lib/api/impl/beacon/state/utils.d.ts +3 -4
  7. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  8. package/lib/api/impl/beacon/state/utils.js +5 -24
  9. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  10. package/lib/api/impl/debug/index.d.ts.map +1 -1
  11. package/lib/api/impl/debug/index.js +5 -2
  12. package/lib/api/impl/debug/index.js.map +1 -1
  13. package/lib/api/impl/validator/index.d.ts.map +1 -1
  14. package/lib/api/impl/validator/index.js +104 -6
  15. package/lib/api/impl/validator/index.js.map +1 -1
  16. package/lib/chain/archiveStore/archiveStore.d.ts +1 -0
  17. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  18. package/lib/chain/archiveStore/archiveStore.js +9 -0
  19. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  20. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +5 -6
  21. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  22. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +9 -10
  23. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  24. package/lib/chain/archiveStore/historicalState/worker.js +3 -3
  25. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  26. package/lib/chain/archiveStore/utils/archivePayloads.d.ts +7 -0
  27. package/lib/chain/archiveStore/utils/archivePayloads.d.ts.map +1 -0
  28. package/lib/chain/archiveStore/utils/archivePayloads.js +10 -0
  29. package/lib/chain/archiveStore/utils/archivePayloads.js.map +1 -0
  30. package/lib/chain/bls/multithread/index.d.ts +3 -3
  31. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  32. package/lib/chain/bls/multithread/index.js +5 -5
  33. package/lib/chain/bls/multithread/index.js.map +1 -1
  34. package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
  35. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  36. package/lib/chain/bls/multithread/jobItem.js +2 -2
  37. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  38. package/lib/chain/bls/singleThread.d.ts +4 -4
  39. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  40. package/lib/chain/bls/singleThread.js +4 -4
  41. package/lib/chain/bls/singleThread.js.map +1 -1
  42. package/lib/chain/bls/utils.d.ts +2 -2
  43. package/lib/chain/bls/utils.d.ts.map +1 -1
  44. package/lib/chain/bls/utils.js +7 -4
  45. package/lib/chain/bls/utils.js.map +1 -1
  46. package/lib/chain/chain.d.ts +6 -9
  47. package/lib/chain/chain.d.ts.map +1 -1
  48. package/lib/chain/chain.js +32 -16
  49. package/lib/chain/chain.js.map +1 -1
  50. package/lib/chain/emitter.d.ts +2 -2
  51. package/lib/chain/emitter.d.ts.map +1 -1
  52. package/lib/chain/interface.d.ts +4 -6
  53. package/lib/chain/interface.d.ts.map +1 -1
  54. package/lib/chain/interface.js.map +1 -1
  55. package/lib/chain/options.d.ts.map +1 -1
  56. package/lib/chain/options.js.map +1 -1
  57. package/lib/chain/prepareNextSlot.js +3 -3
  58. package/lib/chain/prepareNextSlot.js.map +1 -1
  59. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +10 -2
  60. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  61. package/lib/chain/produceBlock/computeNewStateRoot.js +24 -2
  62. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  63. package/lib/chain/produceBlock/produceBlockBody.d.ts +22 -7
  64. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  65. package/lib/chain/produceBlock/produceBlockBody.js +110 -10
  66. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  67. package/lib/chain/validation/attestation.d.ts.map +1 -1
  68. package/lib/chain/validation/attestation.js +4 -1
  69. package/lib/chain/validation/attestation.js.map +1 -1
  70. package/lib/chain/validation/attesterSlashing.js +1 -1
  71. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  72. package/lib/chain/validation/dataColumnSidecar.d.ts +2 -2
  73. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  74. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  75. package/lib/chain/validation/payloadAttestationMessage.js +8 -1
  76. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  77. package/lib/chain/validation/proposerSlashing.js +1 -1
  78. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  79. package/lib/chain/validation/syncCommitteeContributionAndProof.js +1 -1
  80. package/lib/db/beacon.d.ts +3 -1
  81. package/lib/db/beacon.d.ts.map +1 -1
  82. package/lib/db/beacon.js +5 -1
  83. package/lib/db/beacon.js.map +1 -1
  84. package/lib/db/buckets.d.ts +3 -1
  85. package/lib/db/buckets.d.ts.map +1 -1
  86. package/lib/db/buckets.js +2 -0
  87. package/lib/db/buckets.js.map +1 -1
  88. package/lib/db/interface.d.ts +3 -1
  89. package/lib/db/interface.d.ts.map +1 -1
  90. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  91. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  92. package/lib/db/repositories/dataColumnSidecar.d.ts +5 -3
  93. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  94. package/lib/db/repositories/dataColumnSidecar.js +14 -1
  95. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  96. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +5 -3
  97. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  98. package/lib/db/repositories/dataColumnSidecarArchive.js +14 -1
  99. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  100. package/lib/db/repositories/executionPayloadEnvelope.d.ts +19 -0
  101. package/lib/db/repositories/executionPayloadEnvelope.d.ts.map +1 -0
  102. package/lib/db/repositories/executionPayloadEnvelope.js +22 -0
  103. package/lib/db/repositories/executionPayloadEnvelope.js.map +1 -0
  104. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts +18 -0
  105. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts.map +1 -0
  106. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +28 -0
  107. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -0
  108. package/lib/db/repositories/index.d.ts +2 -0
  109. package/lib/db/repositories/index.d.ts.map +1 -1
  110. package/lib/db/repositories/index.js +2 -0
  111. package/lib/db/repositories/index.js.map +1 -1
  112. package/lib/metrics/metrics/beacon.d.ts +1 -0
  113. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  114. package/lib/metrics/metrics/beacon.js +5 -0
  115. package/lib/metrics/metrics/beacon.js.map +1 -1
  116. package/lib/metrics/metrics/lodestar.d.ts +5 -0
  117. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  118. package/lib/metrics/metrics/lodestar.js +9 -0
  119. package/lib/metrics/metrics/lodestar.js.map +1 -1
  120. package/lib/monitoring/service.d.ts +2 -2
  121. package/lib/monitoring/service.d.ts.map +1 -1
  122. package/lib/monitoring/service.js +3 -2
  123. package/lib/monitoring/service.js.map +1 -1
  124. package/lib/network/gossip/interface.d.ts +3 -3
  125. package/lib/network/gossip/interface.d.ts.map +1 -1
  126. package/lib/network/gossip/topic.d.ts +113 -63
  127. package/lib/network/gossip/topic.d.ts.map +1 -1
  128. package/lib/network/gossip/topic.js +2 -2
  129. package/lib/network/gossip/topic.js.map +1 -1
  130. package/lib/network/interface.d.ts +3 -2
  131. package/lib/network/interface.d.ts.map +1 -1
  132. package/lib/network/network.d.ts +3 -2
  133. package/lib/network/network.d.ts.map +1 -1
  134. package/lib/network/network.js +10 -1
  135. package/lib/network/network.js.map +1 -1
  136. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  137. package/lib/network/processor/gossipHandlers.js +5 -1
  138. package/lib/network/processor/gossipHandlers.js.map +1 -1
  139. package/lib/node/nodejs.d.ts +3 -5
  140. package/lib/node/nodejs.d.ts.map +1 -1
  141. package/lib/node/nodejs.js +6 -4
  142. package/lib/node/nodejs.js.map +1 -1
  143. package/lib/util/blobs.d.ts +2 -2
  144. package/lib/util/blobs.d.ts.map +1 -1
  145. package/lib/util/blobs.js.map +1 -1
  146. package/lib/util/dataColumns.d.ts +11 -3
  147. package/lib/util/dataColumns.d.ts.map +1 -1
  148. package/lib/util/dataColumns.js +27 -0
  149. package/lib/util/dataColumns.js.map +1 -1
  150. package/lib/util/multifork.d.ts +8 -0
  151. package/lib/util/multifork.d.ts.map +1 -1
  152. package/lib/util/multifork.js +37 -0
  153. package/lib/util/multifork.js.map +1 -1
  154. package/package.json +15 -15
  155. package/src/api/impl/beacon/blocks/index.ts +145 -2
  156. package/src/api/impl/beacon/state/index.ts +8 -8
  157. package/src/api/impl/beacon/state/utils.ts +15 -29
  158. package/src/api/impl/debug/index.ts +8 -5
  159. package/src/api/impl/validator/index.ts +127 -5
  160. package/src/chain/archiveStore/archiveStore.ts +10 -0
  161. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -11
  162. package/src/chain/archiveStore/historicalState/worker.ts +3 -3
  163. package/src/chain/archiveStore/utils/archivePayloads.ts +15 -0
  164. package/src/chain/bls/multithread/index.ts +7 -7
  165. package/src/chain/bls/multithread/jobItem.ts +3 -3
  166. package/src/chain/bls/singleThread.ts +5 -5
  167. package/src/chain/bls/utils.ts +8 -5
  168. package/src/chain/chain.ts +51 -26
  169. package/src/chain/emitter.ts +2 -2
  170. package/src/chain/interface.ts +4 -11
  171. package/src/chain/options.ts +1 -0
  172. package/src/chain/prepareNextSlot.ts +5 -5
  173. package/src/chain/produceBlock/computeNewStateRoot.ts +35 -3
  174. package/src/chain/produceBlock/produceBlockBody.ts +163 -13
  175. package/src/chain/validation/attestation.ts +4 -1
  176. package/src/chain/validation/attesterSlashing.ts +1 -1
  177. package/src/chain/validation/dataColumnSidecar.ts +2 -5
  178. package/src/chain/validation/payloadAttestationMessage.ts +9 -1
  179. package/src/chain/validation/proposerSlashing.ts +1 -1
  180. package/src/chain/validation/syncCommitteeContributionAndProof.ts +1 -1
  181. package/src/db/beacon.ts +8 -0
  182. package/src/db/buckets.ts +3 -0
  183. package/src/db/interface.ts +5 -0
  184. package/src/db/repositories/dataColumnSidecar.ts +18 -3
  185. package/src/db/repositories/dataColumnSidecarArchive.ts +18 -3
  186. package/src/db/repositories/executionPayloadEnvelope.ts +26 -0
  187. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +32 -0
  188. package/src/db/repositories/index.ts +2 -0
  189. package/src/metrics/metrics/beacon.ts +5 -0
  190. package/src/metrics/metrics/lodestar.ts +9 -0
  191. package/src/monitoring/service.ts +3 -2
  192. package/src/network/gossip/interface.ts +3 -3
  193. package/src/network/gossip/topic.ts +2 -1
  194. package/src/network/interface.ts +4 -1
  195. package/src/network/network.ts +21 -3
  196. package/src/network/processor/gossipHandlers.ts +7 -1
  197. package/src/node/nodejs.ts +8 -9
  198. package/src/util/blobs.ts +3 -3
  199. package/src/util/dataColumns.ts +37 -1
  200. package/src/util/multifork.ts +45 -0
@@ -9,6 +9,11 @@ import {getSlotFromSignedBeaconBlockSerialized} from "./sszBytes.js";
9
9
  */
10
10
  const SLOT_BYTE_COUNT = 8;
11
11
 
12
+ /**
13
+ * SSZ offset uint32
14
+ */
15
+ const OFFSET_BYTE_COUNT = 4;
16
+
12
17
  /**
13
18
  * 8 + 32 = 40
14
19
  * ```
@@ -67,3 +72,43 @@ export function getLightClientHeaderTypeFromBytes(
67
72
  );
68
73
  return config.getPostAltairForkTypes(slot).LightClientHeader;
69
74
  }
75
+
76
+ /**
77
+ * Position of first offset in DataColumnSidecar (after index field)
78
+ *
79
+ * Fulu DataColumnSidecar (6 fields):
80
+ * index: uint64 [fixed - 8 bytes]
81
+ * column: List [variable - 4-byte offset]
82
+ * kzgCommitments: List [variable - 4-byte offset]
83
+ * kzgProofs: List [variable - 4-byte offset]
84
+ * signedBlockHeader: Container [fixed - 208 bytes]
85
+ * kzgCommitmentsInclusionProof: Vector[Bytes32, 4] [fixed - 128 bytes]
86
+ * => First offset value = 8 + 4 + 4 + 4 + 208 + 128 = 356
87
+ *
88
+ * Gloas DataColumnSidecar (5 fields):
89
+ * index: uint64 [fixed - 8 bytes]
90
+ * column: List [variable - 4-byte offset]
91
+ * kzgProofs: List [variable - 4-byte offset]
92
+ * slot: uint64 [fixed - 8 bytes]
93
+ * beaconBlockRoot: Bytes32 [fixed - 32 bytes]
94
+ * => First offset value = 8 + 4 + 4 + 8 + 32 = 56
95
+ */
96
+ const FIRST_OFFSET_POSITION_IN_DATA_COLUMN_SIDECAR = 8;
97
+ const GLOAS_DATA_COLUMN_SIDECAR_FIRST_OFFSET = 56;
98
+
99
+ /**
100
+ * Determines if DataColumnSidecar bytes are from Gloas fork by checking the SSZ offset structure.
101
+ *
102
+ * The first offset (bytes 8-12) indicates where variable-size data begins:
103
+ * - Gloas: 56 (small fixed section)
104
+ * - Fulu: 356
105
+ */
106
+ export function isGloasDataColumnSidecarBytes(bytes: Uint8Array): boolean {
107
+ const firstOffset = bytesToInt(
108
+ bytes.subarray(
109
+ FIRST_OFFSET_POSITION_IN_DATA_COLUMN_SIDECAR,
110
+ FIRST_OFFSET_POSITION_IN_DATA_COLUMN_SIDECAR + OFFSET_BYTE_COUNT
111
+ )
112
+ );
113
+ return firstOffset === GLOAS_DATA_COLUMN_SIDECAR_FIRST_OFFSET;
114
+ }