@lodestar/beacon-node 1.33.0-dev.fb2621434e → 1.33.0-peerDAS.0ebfec4475

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 (234) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +112 -29
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/debug/index.d.ts +1 -1
  4. package/lib/api/impl/debug/index.js +24 -1
  5. package/lib/api/impl/debug/index.js.map +1 -1
  6. package/lib/chain/archiveStore/archiveStore.d.ts +1 -1
  7. package/lib/chain/archiveStore/archiveStore.js +2 -2
  8. package/lib/chain/archiveStore/interface.d.ts +1 -1
  9. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +1 -1
  10. package/lib/chain/archiveStore/utils/archiveBlocks.js +91 -23
  11. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  12. package/lib/chain/beaconProposerCache.d.ts +1 -0
  13. package/lib/chain/beaconProposerCache.js +3 -0
  14. package/lib/chain/beaconProposerCache.js.map +1 -1
  15. package/lib/chain/blocks/importBlock.js +3 -2
  16. package/lib/chain/blocks/importBlock.js.map +1 -1
  17. package/lib/chain/blocks/types.d.ts +66 -23
  18. package/lib/chain/blocks/types.js +39 -5
  19. package/lib/chain/blocks/types.js.map +1 -1
  20. package/lib/chain/blocks/verifyBlocksDataAvailability.js +21 -10
  21. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  22. package/lib/chain/blocks/writeBlockInputToDb.js +89 -15
  23. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  24. package/lib/chain/chain.d.ts +17 -28
  25. package/lib/chain/chain.js +74 -6
  26. package/lib/chain/chain.js.map +1 -1
  27. package/lib/chain/emitter.d.ts +18 -2
  28. package/lib/chain/emitter.js +13 -0
  29. package/lib/chain/emitter.js.map +1 -1
  30. package/lib/chain/errors/dataColumnSidecarError.d.ts +69 -0
  31. package/lib/chain/errors/dataColumnSidecarError.js +21 -0
  32. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -0
  33. package/lib/chain/errors/index.d.ts +1 -0
  34. package/lib/chain/errors/index.js +1 -0
  35. package/lib/chain/errors/index.js.map +1 -1
  36. package/lib/chain/interface.d.ts +10 -4
  37. package/lib/chain/interface.js.map +1 -1
  38. package/lib/chain/options.d.ts +4 -1
  39. package/lib/chain/options.js +2 -1
  40. package/lib/chain/options.js.map +1 -1
  41. package/lib/chain/produceBlock/produceBlockBody.d.ts +4 -2
  42. package/lib/chain/produceBlock/produceBlockBody.js +7 -2
  43. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  44. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +3 -2
  45. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +25 -2
  46. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  47. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +64 -18
  48. package/lib/chain/seenCache/seenGossipBlockInput.js +321 -53
  49. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  50. package/lib/chain/validation/dataColumnSidecar.d.ts +28 -0
  51. package/lib/chain/validation/dataColumnSidecar.js +248 -0
  52. package/lib/chain/validation/dataColumnSidecar.js.map +1 -0
  53. package/lib/constants/network.d.ts +1 -0
  54. package/lib/constants/network.js +2 -0
  55. package/lib/constants/network.js.map +1 -1
  56. package/lib/db/beacon.d.ts +3 -1
  57. package/lib/db/beacon.js +3 -1
  58. package/lib/db/beacon.js.map +1 -1
  59. package/lib/db/buckets.d.ts +3 -1
  60. package/lib/db/buckets.js +2 -0
  61. package/lib/db/buckets.js.map +1 -1
  62. package/lib/db/interface.d.ts +3 -1
  63. package/lib/db/repositories/dataColumnSidecars.d.ts +47 -0
  64. package/lib/db/repositories/dataColumnSidecars.js +40 -0
  65. package/lib/db/repositories/dataColumnSidecars.js.map +1 -0
  66. package/lib/db/repositories/dataColumnSidecarsArchive.d.ts +15 -0
  67. package/lib/db/repositories/dataColumnSidecarsArchive.js +23 -0
  68. package/lib/db/repositories/dataColumnSidecarsArchive.js.map +1 -0
  69. package/lib/db/repositories/index.d.ts +2 -0
  70. package/lib/db/repositories/index.js +2 -0
  71. package/lib/db/repositories/index.js.map +1 -1
  72. package/lib/execution/engine/http.d.ts +5 -3
  73. package/lib/execution/engine/http.js +70 -31
  74. package/lib/execution/engine/http.js.map +1 -1
  75. package/lib/execution/engine/interface.d.ts +4 -2
  76. package/lib/execution/engine/interface.js +1 -1
  77. package/lib/execution/engine/interface.js.map +1 -1
  78. package/lib/execution/engine/mock.d.ts +1 -0
  79. package/lib/execution/engine/mock.js +5 -0
  80. package/lib/execution/engine/mock.js.map +1 -1
  81. package/lib/execution/engine/types.d.ts +10 -0
  82. package/lib/execution/engine/types.js +6 -0
  83. package/lib/execution/engine/types.js.map +1 -1
  84. package/lib/metrics/metrics/beacon.d.ts +14 -0
  85. package/lib/metrics/metrics/beacon.js +57 -0
  86. package/lib/metrics/metrics/beacon.js.map +1 -1
  87. package/lib/metrics/metrics/lodestar.d.ts +23 -1
  88. package/lib/metrics/metrics/lodestar.js +39 -0
  89. package/lib/metrics/metrics/lodestar.js.map +1 -1
  90. package/lib/network/core/metrics.d.ts +10 -3
  91. package/lib/network/core/metrics.js +22 -4
  92. package/lib/network/core/metrics.js.map +1 -1
  93. package/lib/network/core/networkCore.d.ts +10 -4
  94. package/lib/network/core/networkCore.js +31 -11
  95. package/lib/network/core/networkCore.js.map +1 -1
  96. package/lib/network/core/networkCoreWorker.js +2 -0
  97. package/lib/network/core/networkCoreWorker.js.map +1 -1
  98. package/lib/network/core/networkCoreWorkerHandler.d.ts +5 -3
  99. package/lib/network/core/networkCoreWorkerHandler.js +6 -1
  100. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  101. package/lib/network/core/types.d.ts +7 -4
  102. package/lib/network/events.d.ts +4 -2
  103. package/lib/network/events.js.map +1 -1
  104. package/lib/network/gossip/interface.d.ts +8 -1
  105. package/lib/network/gossip/interface.js +1 -0
  106. package/lib/network/gossip/interface.js.map +1 -1
  107. package/lib/network/gossip/topic.d.ts +1047 -1031
  108. package/lib/network/gossip/topic.js +20 -1
  109. package/lib/network/gossip/topic.js.map +1 -1
  110. package/lib/network/interface.d.ts +13 -1
  111. package/lib/network/metadata.d.ts +9 -5
  112. package/lib/network/metadata.js +26 -5
  113. package/lib/network/metadata.js.map +1 -1
  114. package/lib/network/network.d.ts +12 -2
  115. package/lib/network/network.js +63 -8
  116. package/lib/network/network.js.map +1 -1
  117. package/lib/network/networkConfig.d.ts +12 -0
  118. package/lib/network/networkConfig.js +2 -0
  119. package/lib/network/networkConfig.js.map +1 -0
  120. package/lib/network/options.d.ts +1 -0
  121. package/lib/network/options.js +5 -0
  122. package/lib/network/options.js.map +1 -1
  123. package/lib/network/peers/discover.d.ts +10 -4
  124. package/lib/network/peers/discover.js +116 -15
  125. package/lib/network/peers/discover.js.map +1 -1
  126. package/lib/network/peers/peerManager.d.ts +10 -4
  127. package/lib/network/peers/peerManager.js +132 -21
  128. package/lib/network/peers/peerManager.js.map +1 -1
  129. package/lib/network/peers/peersData.d.ts +17 -3
  130. package/lib/network/peers/peersData.js.map +1 -1
  131. package/lib/network/peers/score/constants.d.ts +3 -1
  132. package/lib/network/peers/score/constants.js +3 -1
  133. package/lib/network/peers/score/constants.js.map +1 -1
  134. package/lib/network/peers/score/interface.d.ts +6 -1
  135. package/lib/network/peers/score/interface.js.map +1 -1
  136. package/lib/network/peers/score/score.d.ts +7 -2
  137. package/lib/network/peers/score/score.js +39 -3
  138. package/lib/network/peers/score/score.js.map +1 -1
  139. package/lib/network/peers/score/store.d.ts +12 -1
  140. package/lib/network/peers/score/store.js +19 -2
  141. package/lib/network/peers/score/store.js.map +1 -1
  142. package/lib/network/peers/utils/assertPeerRelevance.d.ts +7 -3
  143. package/lib/network/peers/utils/assertPeerRelevance.js +10 -1
  144. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  145. package/lib/network/peers/utils/prioritizePeers.d.ts +18 -7
  146. package/lib/network/peers/utils/prioritizePeers.js +43 -7
  147. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  148. package/lib/network/processor/extractSlotRootFns.js +8 -1
  149. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  150. package/lib/network/processor/gossipHandlers.js +149 -9
  151. package/lib/network/processor/gossipHandlers.js.map +1 -1
  152. package/lib/network/processor/gossipQueues/index.js +5 -0
  153. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  154. package/lib/network/processor/index.js +1 -0
  155. package/lib/network/processor/index.js.map +1 -1
  156. package/lib/network/reqresp/ReqRespBeaconNode.d.ts +2 -2
  157. package/lib/network/reqresp/ReqRespBeaconNode.js +31 -10
  158. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  159. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +16 -5
  160. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +204 -14
  161. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
  162. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +32 -6
  163. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +283 -28
  164. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
  165. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +1 -1
  166. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  167. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +8 -0
  168. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +92 -0
  169. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -0
  170. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +6 -0
  171. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +50 -0
  172. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -0
  173. package/lib/network/reqresp/handlers/index.js +10 -0
  174. package/lib/network/reqresp/handlers/index.js.map +1 -1
  175. package/lib/network/reqresp/handlers/status.js +3 -2
  176. package/lib/network/reqresp/handlers/status.js.map +1 -1
  177. package/lib/network/reqresp/protocols.d.ts +4 -0
  178. package/lib/network/reqresp/protocols.js +20 -0
  179. package/lib/network/reqresp/protocols.js.map +1 -1
  180. package/lib/network/reqresp/rateLimit.js +11 -1
  181. package/lib/network/reqresp/rateLimit.js.map +1 -1
  182. package/lib/network/reqresp/score.js +3 -0
  183. package/lib/network/reqresp/score.js.map +1 -1
  184. package/lib/network/reqresp/types.d.ts +15 -8
  185. package/lib/network/reqresp/types.js +10 -3
  186. package/lib/network/reqresp/types.js.map +1 -1
  187. package/lib/network/statusCache.d.ts +5 -5
  188. package/lib/network/statusCache.js.map +1 -1
  189. package/lib/network/subnets/interface.d.ts +3 -0
  190. package/lib/network/subnets/interface.js +14 -1
  191. package/lib/network/subnets/interface.js.map +1 -1
  192. package/lib/network/subnets/syncnetsService.js +4 -5
  193. package/lib/network/subnets/syncnetsService.js.map +1 -1
  194. package/lib/node/nodejs.js +1 -0
  195. package/lib/node/nodejs.js.map +1 -1
  196. package/lib/sync/constants.d.ts +1 -1
  197. package/lib/sync/constants.js +4 -1
  198. package/lib/sync/constants.js.map +1 -1
  199. package/lib/sync/interface.d.ts +2 -2
  200. package/lib/sync/interface.js +1 -1
  201. package/lib/sync/interface.js.map +1 -1
  202. package/lib/sync/range/batch.d.ts +16 -2
  203. package/lib/sync/range/batch.js +38 -7
  204. package/lib/sync/range/batch.js.map +1 -1
  205. package/lib/sync/range/chain.d.ts +16 -1
  206. package/lib/sync/range/chain.js +110 -30
  207. package/lib/sync/range/chain.js.map +1 -1
  208. package/lib/sync/range/range.d.ts +3 -2
  209. package/lib/sync/range/range.js +9 -3
  210. package/lib/sync/range/range.js.map +1 -1
  211. package/lib/sync/range/utils/chainTarget.d.ts +5 -1
  212. package/lib/sync/range/utils/chainTarget.js +26 -1
  213. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  214. package/lib/sync/range/utils/peerBalancer.d.ts +12 -5
  215. package/lib/sync/range/utils/peerBalancer.js +69 -10
  216. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  217. package/lib/sync/unknownBlock.d.ts +8 -1
  218. package/lib/sync/unknownBlock.js +226 -69
  219. package/lib/sync/unknownBlock.js.map +1 -1
  220. package/lib/sync/utils/remoteSyncType.d.ts +4 -4
  221. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  222. package/lib/util/blobs.d.ts +23 -1
  223. package/lib/util/blobs.js +156 -1
  224. package/lib/util/blobs.js.map +1 -1
  225. package/lib/util/dataColumns.d.ts +135 -0
  226. package/lib/util/dataColumns.js +349 -0
  227. package/lib/util/dataColumns.js.map +1 -0
  228. package/lib/util/metadata.d.ts +5 -0
  229. package/lib/util/metadata.js +10 -0
  230. package/lib/util/metadata.js.map +1 -1
  231. package/lib/util/sszBytes.d.ts +1 -0
  232. package/lib/util/sszBytes.js +17 -0
  233. package/lib/util/sszBytes.js.map +1 -1
  234. package/package.json +14 -14
@@ -0,0 +1,349 @@
1
+ import { digest } from "@chainsafe/as-sha256";
2
+ import { DATA_COLUMN_SIDECAR_SUBNET_COUNT, ForkName, NUMBER_OF_COLUMNS, NUMBER_OF_CUSTODY_GROUPS, } from "@lodestar/params";
3
+ import { signedBlockToSignedHeader } from "@lodestar/state-transition";
4
+ import { ssz } from "@lodestar/types";
5
+ import { bytesToBigInt } from "@lodestar/utils";
6
+ import { BlockSource, DataColumnsSource, getBlockInput, getBlockInputDataColumns, } from "../chain/blocks/types.js";
7
+ import { ChainEvent } from "../chain/emitter.js";
8
+ import { computeKzgCommitmentsInclusionProof, kzgCommitmentToVersionedHash, recoverDataColumnSidecars as recover, } from "./blobs.js";
9
+ import { kzg } from "./kzg.js";
10
+ export var RecoverResult;
11
+ (function (RecoverResult) {
12
+ // the recover is not attempted because we have less than `NUMBER_OF_COLUMNS / 2` columns
13
+ RecoverResult["NotAttemptedLessThanHalf"] = "not_attempted_less_than_half";
14
+ // the recover is not attempted because it has full data columns
15
+ RecoverResult["NotAttemptedFull"] = "not_attempted_full";
16
+ // the recover is a success and it helps resolve availability
17
+ RecoverResult["SuccessResolved"] = "success_resolved";
18
+ // the redover is a success but it's late, availability is already resolved by either gossip or getBlobsV2
19
+ RecoverResult["SuccessLate"] = "success_late";
20
+ // the recover failed
21
+ RecoverResult["Failed"] = "failed";
22
+ })(RecoverResult || (RecoverResult = {}));
23
+ export class CustodyConfig {
24
+ constructor(opts) {
25
+ this.config = opts.config;
26
+ this.nodeId = opts.nodeId;
27
+ this.targetCustodyGroupCount = opts.initialCustodyGroupCount ?? this.config.CUSTODY_REQUIREMENT;
28
+ this.custodyColumns = getDataColumns(this.nodeId, this.targetCustodyGroupCount);
29
+ this.custodyColumnsIndex = this.getCustodyColumnsIndex(this.custodyColumns);
30
+ this.sampledGroupCount = Math.max(this.targetCustodyGroupCount, this.config.SAMPLES_PER_SLOT);
31
+ this.sampleGroups = getCustodyGroups(this.nodeId, this.sampledGroupCount);
32
+ this.sampledColumns = getDataColumns(this.nodeId, this.sampledGroupCount);
33
+ this.sampledSubnets = this.sampledColumns.map(computeSubnetForDataColumn);
34
+ }
35
+ updateTargetCustodyGroupCount(targetCustodyGroupCount) {
36
+ this.targetCustodyGroupCount = targetCustodyGroupCount;
37
+ this.custodyColumns = getDataColumns(this.nodeId, this.targetCustodyGroupCount);
38
+ this.custodyColumnsIndex = this.getCustodyColumnsIndex(this.custodyColumns);
39
+ // TODO: Porting this over to match current behavior, but I think this incorrectly mixes units:
40
+ // SAMPLES_PER_SLOT is in columns, and CUSTODY_GROUP_COUNT is in groups
41
+ this.sampledGroupCount = Math.max(this.targetCustodyGroupCount, this.config.SAMPLES_PER_SLOT);
42
+ this.sampleGroups = getCustodyGroups(this.nodeId, this.sampledGroupCount);
43
+ this.sampledColumns = getDataColumns(this.nodeId, this.sampledGroupCount);
44
+ this.sampledSubnets = this.sampledColumns.map(computeSubnetForDataColumn);
45
+ }
46
+ getCustodyColumnsIndex(custodyColumns) {
47
+ // custody columns map which column maps to which index in the array of columns custodied
48
+ // with zero representing it is not custodied
49
+ const custodyColumnsIndex = new Uint8Array(NUMBER_OF_COLUMNS);
50
+ let custodyAtIndex = 1;
51
+ for (const columnIndex of custodyColumns) {
52
+ custodyColumnsIndex[columnIndex] = custodyAtIndex;
53
+ custodyAtIndex++;
54
+ }
55
+ return custodyColumnsIndex;
56
+ }
57
+ }
58
+ function computeSubnetForDataColumn(columnIndex) {
59
+ return columnIndex % DATA_COLUMN_SIDECAR_SUBNET_COUNT;
60
+ }
61
+ /**
62
+ * Calculate the number of custody groups the node should subscribe to based on the node's effective balance
63
+ *
64
+ * SPEC FUNCTION
65
+ * https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.3/specs/fulu/validator.md#validator-custody
66
+ */
67
+ export function getValidatorsCustodyRequirement(config, effectiveBalances) {
68
+ if (effectiveBalances.length === 0) {
69
+ return config.CUSTODY_REQUIREMENT;
70
+ }
71
+ const totalNodeEffectiveBalance = effectiveBalances.reduce((total, effectiveBalance) => {
72
+ return total + effectiveBalance;
73
+ }, 0);
74
+ // Must custody one group for every BALANCE_PER_ADDITIONAL_CUSTODY_GROUP of effective balance
75
+ let validatorsCustodyRequirement = Math.floor(totalNodeEffectiveBalance / config.BALANCE_PER_ADDITIONAL_CUSTODY_GROUP);
76
+ // Any node with at least 1 validator must custody at least VALIDATOR_CUSTODY_REQUIREMENT
77
+ validatorsCustodyRequirement = Math.max(validatorsCustodyRequirement, config.VALIDATOR_CUSTODY_REQUIREMENT);
78
+ // Cannot custody more than NUMBER_OF_CUSTODY_GROUPS
79
+ validatorsCustodyRequirement = Math.min(validatorsCustodyRequirement, NUMBER_OF_CUSTODY_GROUPS);
80
+ return validatorsCustodyRequirement;
81
+ }
82
+ /**
83
+ * Converts a custody group to an array of column indices. Should be 1-1 as long there are 128
84
+ * columns and 128 custody groups.
85
+ *
86
+ * SPEC FUNCTION
87
+ * https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/das-core.md#compute_columns_for_custody_group
88
+ */
89
+ export function computeColumnsForCustodyGroup(custodyIndex) {
90
+ if (custodyIndex > NUMBER_OF_CUSTODY_GROUPS) {
91
+ custodyIndex = NUMBER_OF_CUSTODY_GROUPS;
92
+ }
93
+ const columnsPerCustodyGroup = Number(NUMBER_OF_COLUMNS / NUMBER_OF_CUSTODY_GROUPS);
94
+ const columnIndexes = [];
95
+ for (let i = 0; i < columnsPerCustodyGroup; i++) {
96
+ columnIndexes.push(NUMBER_OF_CUSTODY_GROUPS * i + custodyIndex);
97
+ }
98
+ columnIndexes.sort((a, b) => a - b);
99
+ return columnIndexes;
100
+ }
101
+ /**
102
+ * Converts nodeId and a the number of custody groups to an array of custody indices. Indexes must be
103
+ * further converted to column indices
104
+ *
105
+ * SPEC FUNCTION
106
+ * https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/das-core.md#get_custody_groups
107
+ */
108
+ export function getCustodyGroups(nodeId, custodyGroupCount) {
109
+ if (custodyGroupCount > NUMBER_OF_CUSTODY_GROUPS) {
110
+ custodyGroupCount = NUMBER_OF_CUSTODY_GROUPS;
111
+ }
112
+ const custodyGroups = [];
113
+ // nodeId is in bigendian and all computes are in little endian
114
+ let currentId = bytesToBigInt(nodeId, "be");
115
+ while (custodyGroups.length < custodyGroupCount) {
116
+ // could be optimized
117
+ const currentIdBytes = ssz.UintBn256.serialize(currentId);
118
+ const custodyGroup = Number(ssz.UintBn64.deserialize(digest(currentIdBytes).slice(0, 8)) % BigInt(NUMBER_OF_CUSTODY_GROUPS));
119
+ if (!custodyGroups.includes(custodyGroup)) {
120
+ custodyGroups.push(custodyGroup);
121
+ }
122
+ const willOverflow = currentIdBytes.reduce((acc, elem) => acc && elem === 0xff, true);
123
+ if (willOverflow) {
124
+ currentId = BigInt(0);
125
+ }
126
+ else {
127
+ currentId++;
128
+ }
129
+ }
130
+ custodyGroups.sort((a, b) => a - b);
131
+ return custodyGroups;
132
+ }
133
+ export function getDataColumns(nodeId, custodyGroupCount) {
134
+ return getCustodyGroups(nodeId, custodyGroupCount)
135
+ .flatMap(computeColumnsForCustodyGroup)
136
+ .sort((a, b) => a - b);
137
+ }
138
+ /**
139
+ * Computes the cells for each blob and combines them with cell proofs.
140
+ * Similar to the computeMatrix function described below.
141
+ *
142
+ * SPEC FUNCTION (note: spec currently computes proofs, but we already have them)
143
+ * https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/das-core.md#compute_matrix
144
+ */
145
+ export function getCellsAndProofs(blobBundles) {
146
+ return blobBundles.map(({ blob, proofs }) => {
147
+ const cells = kzg.computeCells(blob);
148
+ return { cells, proofs };
149
+ });
150
+ }
151
+ /**
152
+ * Given a signed block header and the commitments, inclusion proof, cells/proofs associated with
153
+ * each blob in the block, assemble the sidecars which can be distributed to peers.
154
+ *
155
+ * SPEC FUNCTION
156
+ * https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/validator.md#get_data_column_sidecars
157
+ */
158
+ export function getDataColumnSidecars(signedBlockHeader, kzgCommitments, kzgCommitmentsInclusionProof, cellsAndKzgProofs) {
159
+ if (cellsAndKzgProofs.length !== kzgCommitments.length) {
160
+ throw Error("Invalid cellsAndKzgProofs length for getDataColumnSidecars");
161
+ }
162
+ const sidecars = [];
163
+ for (let columnIndex = 0; columnIndex < NUMBER_OF_COLUMNS; columnIndex++) {
164
+ const columnCells = [];
165
+ const columnProofs = [];
166
+ for (const { cells, proofs } of cellsAndKzgProofs) {
167
+ columnCells.push(cells[columnIndex]);
168
+ columnProofs.push(proofs[columnIndex]);
169
+ }
170
+ sidecars.push({
171
+ index: columnIndex,
172
+ column: columnCells,
173
+ kzgCommitments,
174
+ kzgProofs: columnProofs,
175
+ signedBlockHeader,
176
+ kzgCommitmentsInclusionProof,
177
+ });
178
+ }
179
+ return sidecars;
180
+ }
181
+ /**
182
+ * Given a signed block and the cells/proofs associated with each blob in the
183
+ * block, assemble the sidecars which can be distributed to peers.
184
+ *
185
+ * SPEC FUNCTION
186
+ * https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/validator.md#get_data_column_sidecars_from_block
187
+ */
188
+ export function getDataColumnSidecarsFromBlock(config, signedBlock, cellsAndKzgProofs) {
189
+ const blobKzgCommitments = signedBlock.message.body.blobKzgCommitments;
190
+ const fork = config.getForkName(signedBlock.message.slot);
191
+ const signedBlockHeader = signedBlockToSignedHeader(config, signedBlock);
192
+ const kzgCommitmentsInclusionProof = computeKzgCommitmentsInclusionProof(fork, signedBlock.message.body);
193
+ return getDataColumnSidecars(signedBlockHeader, blobKzgCommitments, kzgCommitmentsInclusionProof, cellsAndKzgProofs);
194
+ }
195
+ /**
196
+ * Given a DataColumnSidecar and the cells/proofs associated with each blob corresponding
197
+ * to the commitments it contains, assemble all sidecars for distribution to peers.
198
+ *
199
+ * SPEC FUNCTION
200
+ * https://github.com/ethereum/consensus-specs/blob/dev/specs/fulu/validator.md#get_data_column_sidecars_from_column_sidecar
201
+ */
202
+ export function getDataColumnSidecarsFromColumnSidecar(sidecar, cellsAndKzgProofs) {
203
+ return getDataColumnSidecars(sidecar.signedBlockHeader, sidecar.kzgCommitments, sidecar.kzgCommitmentsInclusionProof, cellsAndKzgProofs);
204
+ }
205
+ /**
206
+ * If we receive more than half of NUMBER_OF_COLUMNS (64) we should recover all remaining columns
207
+ */
208
+ export async function recoverDataColumnSidecars(dataColumnCache, clock, metrics) {
209
+ const columnCount = dataColumnCache.size;
210
+ if (columnCount >= NUMBER_OF_COLUMNS) {
211
+ // We have all columns
212
+ return RecoverResult.NotAttemptedFull;
213
+ }
214
+ if (columnCount < NUMBER_OF_COLUMNS / 2) {
215
+ // We don't have enough columns to recover
216
+ return RecoverResult.NotAttemptedLessThanHalf;
217
+ }
218
+ const partialColumns = dataColumnCache.size;
219
+ metrics?.recoverDataColumnSidecars.custodyBeforeReconstruction.set(partialColumns);
220
+ const partialSidecars = new Map();
221
+ for (const [columnIndex, { dataColumn }] of dataColumnCache.entries()) {
222
+ // the more columns we put, the slower the recover
223
+ if (partialSidecars.size >= NUMBER_OF_COLUMNS / 2) {
224
+ break;
225
+ }
226
+ partialSidecars.set(columnIndex, dataColumn);
227
+ }
228
+ const timer = metrics?.peerDas.dataColumnsReconstructionTime.startTimer();
229
+ // if this function throws, we catch at the consumer side
230
+ const fullSidecars = await recover(partialSidecars);
231
+ timer?.();
232
+ if (fullSidecars == null) {
233
+ return RecoverResult.Failed;
234
+ }
235
+ const firstDataColumn = dataColumnCache.values().next().value?.dataColumn;
236
+ if (firstDataColumn == null) {
237
+ // should not happen because we checked the size of the cache before this
238
+ throw new Error("No data column found in cache to recover from");
239
+ }
240
+ const slot = firstDataColumn.signedBlockHeader.message.slot;
241
+ const secFromSlot = clock.secFromSlot(slot);
242
+ metrics?.recoverDataColumnSidecars.elapsedTimeTillReconstructed.observe(secFromSlot);
243
+ if (dataColumnCache.size === NUMBER_OF_COLUMNS) {
244
+ // either gossip or getBlobsV2 resolved availability while we were recovering
245
+ return RecoverResult.SuccessLate;
246
+ }
247
+ // We successfully recovered the data columns, update the cache
248
+ for (let columnIndex = 0; columnIndex < NUMBER_OF_COLUMNS; columnIndex++) {
249
+ if (dataColumnCache.has(columnIndex)) {
250
+ // We already have this column
251
+ continue;
252
+ }
253
+ const sidecar = fullSidecars[columnIndex];
254
+ if (sidecar === undefined) {
255
+ throw new Error(`full sidecars is undefined at index ${columnIndex}`);
256
+ }
257
+ dataColumnCache.set(columnIndex, { dataColumn: sidecar, dataColumnBytes: null });
258
+ metrics?.peerDas.reconstructedColumns.inc(NUMBER_OF_COLUMNS - partialColumns);
259
+ }
260
+ return RecoverResult.SuccessResolved;
261
+ }
262
+ export function hasSampledDataColumns(custodyConfig, dataColumnCache) {
263
+ return (dataColumnCache.size >= custodyConfig.sampledColumns.length &&
264
+ custodyConfig.sampledColumns.reduce((acc, columnIndex) => acc && dataColumnCache.has(columnIndex), true));
265
+ }
266
+ export async function getDataColumnsFromExecution(config, custodyConfig, executionEngine, emitter, blockCache, metrics) {
267
+ if (blockCache.fork !== ForkName.fulu) {
268
+ return false;
269
+ }
270
+ if (!blockCache.cachedData) {
271
+ // this condition should never get hit... just a sanity check
272
+ throw new Error("invalid blockCache");
273
+ }
274
+ if (blockCache.cachedData.fork !== ForkName.fulu) {
275
+ return false;
276
+ }
277
+ // If already have all columns, exit
278
+ if (hasSampledDataColumns(custodyConfig, blockCache.cachedData.dataColumnsCache)) {
279
+ return true;
280
+ }
281
+ let commitments;
282
+ if (blockCache.block) {
283
+ const block = blockCache.block;
284
+ commitments = block.message.body.blobKzgCommitments;
285
+ }
286
+ else {
287
+ const firstSidecar = blockCache.cachedData.dataColumnsCache.values().next().value;
288
+ commitments = firstSidecar?.dataColumn.kzgCommitments;
289
+ }
290
+ if (!commitments) {
291
+ throw new Error("blockInputCache missing both block and cachedData");
292
+ }
293
+ // Return if block has no blobs
294
+ if (commitments.length === 0) {
295
+ return true;
296
+ }
297
+ // Process KZG commitments into versioned hashes
298
+ const versionedHashes = commitments.map(kzgCommitmentToVersionedHash);
299
+ // Get blobs from execution engine
300
+ metrics?.peerDas.getBlobsV2Requests.inc();
301
+ const timer = metrics?.peerDas.getBlobsV2RequestDuration.startTimer();
302
+ const blobs = await executionEngine.getBlobs(blockCache.fork, versionedHashes);
303
+ timer?.();
304
+ // Execution engine was unable to find one or more blobs
305
+ if (blobs === null) {
306
+ return false;
307
+ }
308
+ metrics?.peerDas.getBlobsV2Responses.inc();
309
+ // Return if we received all data columns while waiting for getBlobs
310
+ if (hasSampledDataColumns(custodyConfig, blockCache.cachedData.dataColumnsCache)) {
311
+ return true;
312
+ }
313
+ let dataColumnSidecars;
314
+ const cellsAndProofs = getCellsAndProofs(blobs);
315
+ if (blockCache.block) {
316
+ dataColumnSidecars = getDataColumnSidecarsFromBlock(config, blockCache.block, cellsAndProofs);
317
+ }
318
+ else {
319
+ const firstSidecar = blockCache.cachedData.dataColumnsCache.values().next().value;
320
+ if (!firstSidecar) {
321
+ throw new Error("blockInputCache missing both block and data column sidecar");
322
+ }
323
+ dataColumnSidecars = getDataColumnSidecarsFromColumnSidecar(firstSidecar.dataColumn, cellsAndProofs);
324
+ }
325
+ // Publish columns if and only if subscribed to them
326
+ const sampledColumns = custodyConfig.sampledColumns.map((columnIndex) => dataColumnSidecars[columnIndex]);
327
+ // for columns that we already seen, it will be ignored through `ignoreDuplicatePublishError` gossip option
328
+ emitter.emit(ChainEvent.publishDataColumns, sampledColumns);
329
+ for (const column of sampledColumns) {
330
+ blockCache.cachedData.dataColumnsCache.set(column.index, { dataColumn: column, dataColumnBytes: null });
331
+ }
332
+ const allDataColumns = getBlockInputDataColumns(blockCache.cachedData.dataColumnsCache, custodyConfig.sampledColumns);
333
+ // TODO: Add metrics
334
+ // metrics?.syncUnknownBlock.resolveAvailabilitySource.inc({source: BlockInputAvailabilitySource.GOSSIP});
335
+ const blockData = {
336
+ fork: blockCache.cachedData.fork,
337
+ ...allDataColumns,
338
+ dataColumnsSource: DataColumnsSource.engine,
339
+ };
340
+ const partialColumns = blockCache.cachedData.dataColumnsCache.size;
341
+ blockCache.cachedData.resolveAvailability(blockData);
342
+ metrics?.dataColumns.bySource.inc({ source: DataColumnsSource.engine }, NUMBER_OF_COLUMNS - partialColumns);
343
+ if (blockCache.block !== undefined) {
344
+ const blockInput = getBlockInput.availableData(config, blockCache.block, BlockSource.gossip, blockData);
345
+ blockCache.resolveBlockInput(blockInput);
346
+ }
347
+ return true;
348
+ }
349
+ //# sourceMappingURL=dataColumns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EACL,gCAAgC,EAChC,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,yBAAyB,EAAC,MAAM,4BAA4B,CAAC;AAErE,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAEL,WAAW,EAEX,iBAAiB,EACjB,aAAa,EACb,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,UAAU,EAAoB,MAAM,qBAAqB,CAAC;AAKlE,OAAO,EACL,mCAAmC,EACnC,4BAA4B,EAC5B,yBAAyB,IAAI,OAAO,GACrC,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAE7B,MAAM,CAAN,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,yFAAyF;IACzF,0EAAyD,CAAA;IACzD,gEAAgE;IAChE,wDAAuC,CAAA;IACvC,6DAA6D;IAC7D,qDAAoC,CAAA;IACpC,0GAA0G;IAC1G,6CAA4B,CAAA;IAC5B,qBAAqB;IACrB,kCAAiB,CAAA;AACnB,CAAC,EAXW,aAAa,KAAb,aAAa,QAWxB;AAQD,MAAM,OAAO,aAAa;IA2CxB,YAAY,IAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;QAChG,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAChF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9F,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC5E,CAAC;IAED,6BAA6B,CAAC,uBAA+B;QAC3D,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAChF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5E,+FAA+F;QAC/F,uEAAuE;QACvE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9F,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC5E,CAAC;IAEO,sBAAsB,CAAC,cAA6B;QAC1D,yFAAyF;QACzF,6CAA6C;QAC7C,MAAM,mBAAmB,GAAG,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE,CAAC;YACzC,mBAAmB,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC;YAClD,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CACF;AAED,SAAS,0BAA0B,CAAC,WAAwB;IAC1D,OAAO,WAAW,GAAG,gCAAgC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,MAAuB,EAAE,iBAA2B;IAClG,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE;QACrF,OAAO,KAAK,GAAG,gBAAgB,CAAC;IAClC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,6FAA6F;IAC7F,IAAI,4BAA4B,GAAG,IAAI,CAAC,KAAK,CAC3C,yBAAyB,GAAG,MAAM,CAAC,oCAAoC,CACxE,CAAC;IAEF,yFAAyF;IACzF,4BAA4B,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,6BAA6B,CAAC,CAAC;IAE5G,oDAAoD;IACpD,4BAA4B,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,wBAAwB,CAAC,CAAC;IAEhG,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,YAA0B;IACtE,IAAI,YAAY,GAAG,wBAAwB,EAAE,CAAC;QAC5C,YAAY,GAAG,wBAAwB,CAAC;IAC1C,CAAC;IACD,MAAM,sBAAsB,GAAG,MAAM,CAAC,iBAAiB,GAAG,wBAAwB,CAAC,CAAC;IACpF,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,aAAa,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IAClE,CAAC;IACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,iBAAyB;IACxE,IAAI,iBAAiB,GAAG,wBAAwB,EAAE,CAAC;QACjD,iBAAiB,GAAG,wBAAwB,CAAC;IAC/C,CAAC;IAED,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,+DAA+D;IAC/D,IAAI,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,OAAO,aAAa,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAChD,qBAAqB;QACrB,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CACzB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAChG,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC;QACtF,IAAI,YAAY,EAAE,CAAC;YACjB,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,iBAAyB;IACtE,OAAO,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,CAAC;SAC/C,OAAO,CAAC,6BAA6B,CAAC;SACtC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAkC;IAClE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,iBAA0C,EAC1C,cAAqC,EACrC,4BAA+D,EAC/D,iBAAgE;IAEhE,IAAI,iBAAiB,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;QACvD,MAAM,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,iBAAiB,EAAE,WAAW,EAAE,EAAE,CAAC;QACzE,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,IAAI,iBAAiB,EAAE,CAAC;YAChD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YACrC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,WAAW;YACnB,cAAc;YACd,SAAS,EAAE,YAAY;YACvB,iBAAiB;YACjB,4BAA4B;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC5C,MAAuB,EACvB,WAAmC,EACnC,iBAAgE;IAEhE,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACvE,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEzE,MAAM,4BAA4B,GAAG,mCAAmC,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzG,OAAO,qBAAqB,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,iBAAiB,CAAC,CAAC;AACvH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sCAAsC,CACpD,OAA+B,EAC/B,iBAAgE;IAEhE,OAAO,qBAAqB,CAC1B,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,4BAA4B,EACpC,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,eAAoC,EACpC,KAAa,EACb,OAAuB;IAEvB,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;IACzC,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAAC;QACrC,sBAAsB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IACxC,CAAC;IAED,IAAI,WAAW,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACxC,0CAA0C;QAC1C,OAAO,aAAa,CAAC,wBAAwB,CAAC;IAChD,CAAC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC;IAC5C,OAAO,EAAE,yBAAyB,CAAC,2BAA2B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkC,CAAC;IAClE,KAAK,MAAM,CAAC,WAAW,EAAE,EAAC,UAAU,EAAC,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;QACpE,kDAAkD;QAClD,IAAI,eAAe,CAAC,IAAI,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM;QACR,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,EAAE,OAAO,CAAC,6BAA6B,CAAC,UAAU,EAAE,CAAC;IAC1E,yDAAyD;IACzD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IACpD,KAAK,EAAE,EAAE,CAAC;IACV,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,OAAO,aAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;IAC1E,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;QAC5B,yEAAyE;QACzE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;IAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,EAAE,yBAAyB,CAAC,4BAA4B,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAErF,IAAI,eAAe,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC/C,6EAA6E;QAC7E,OAAO,aAAa,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,+DAA+D;IAC/D,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,iBAAiB,EAAE,WAAW,EAAE,EAAE,CAAC;QACzE,IAAI,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,8BAA8B;YAC9B,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,uCAAuC,WAAW,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,EAAC,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC;QAC/E,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,iBAAiB,GAAG,cAAc,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,aAAa,CAAC,eAAe,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,aAA4B,EAAE,eAAoC;IACtG,OAAO,CACL,eAAe,CAAC,IAAI,IAAI,aAAa,CAAC,cAAc,CAAC,MAAM;QAC3D,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CACzG,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAuB,EACvB,aAA4B,EAC5B,eAAiC,EACjC,OAA0B,EAC1B,UAA+B,EAC/B,OAAuB;IAEvB,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC3B,6DAA6D;QAC7D,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC;IACpC,IAAI,qBAAqB,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,WAAqC,CAAC;IAC1C,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,UAAU,CAAC,KAA+B,CAAC;QACzD,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAClF,WAAW,GAAG,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,+BAA+B;IAC/B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gDAAgD;IAChD,MAAM,eAAe,GAAiB,WAAW,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAEpF,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,UAAU,EAAE,CAAC;IACtE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC/E,KAAK,EAAE,EAAE,CAAC;IAEV,wDAAwD;IACxD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;IAE3C,oEAAoE;IACpE,IAAI,qBAAqB,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,kBAA2C,CAAC;IAChD,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,kBAAkB,GAAG,8BAA8B,CACjD,MAAM,EACN,UAAU,CAAC,KAA+B,EAC1C,cAAc,CACf,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAClF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,kBAAkB,GAAG,sCAAsC,CAAC,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACvG,CAAC;IAED,oDAAoD;IACpD,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1G,2GAA2G;IAC3G,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAE5D,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,cAAc,GAAG,wBAAwB,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACtH,oBAAoB;IACpB,0GAA0G;IAC1G,MAAM,SAAS,GAA0B;QACvC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI;QAChC,GAAG,cAAc;QACjB,iBAAiB,EAAE,iBAAiB,CAAC,MAAM;KAC5C,CAAC;IACF,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACnE,UAAU,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC,CAAC;IAE1G,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAExG,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -3,4 +3,9 @@ export declare function getLodestarClientVersion(info?: {
3
3
  version?: string;
4
4
  commit?: string;
5
5
  }): ClientVersion;
6
+ /**
7
+ * Serializes a custody group count value into a Uint8Array suitable for the the ENR field `cgc`.
8
+ */
9
+ export declare function serializeCgc(cgc: number): Uint8Array;
10
+ export declare function deserializeCgc(cgcBytes: Uint8Array): number;
6
11
  //# sourceMappingURL=metadata.d.ts.map
@@ -1,3 +1,4 @@
1
+ import { bytesToInt, intToBytes } from "@lodestar/utils";
1
2
  import { ClientCode } from "../execution/index.js";
2
3
  export function getLodestarClientVersion(info) {
3
4
  return {
@@ -7,4 +8,13 @@ export function getLodestarClientVersion(info) {
7
8
  commit: info?.commit?.slice(0, 8) ?? "",
8
9
  };
9
10
  }
11
+ /**
12
+ * Serializes a custody group count value into a Uint8Array suitable for the the ENR field `cgc`.
13
+ */
14
+ export function serializeCgc(cgc) {
15
+ return intToBytes(cgc, Math.ceil(Math.log2(cgc + 1) / 8), "be");
16
+ }
17
+ export function deserializeCgc(cgcBytes) {
18
+ return bytesToInt(cgcBytes, "be");
19
+ }
10
20
  //# sourceMappingURL=metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/util/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAgB,MAAM,uBAAuB,CAAC;AAEhE,MAAM,UAAU,wBAAwB,CAAC,IAA0C;IACjF,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,EAAE;QACnB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE;QAC5B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;KACxC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/util/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,UAAU,EAAgB,MAAM,uBAAuB,CAAC;AAEhE,MAAM,UAAU,wBAAwB,CAAC,IAA0C;IACjF,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,EAAE;QACnB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE;QAC5B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;KACxC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAoB;IACjD,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC"}
@@ -102,4 +102,5 @@ export declare function getCommitteeBitsFromSignedAggregateAndProofElectra(data:
102
102
  export declare function getAttDataFromSignedAggregateAndProofPhase0(data: Uint8Array): AttDataBase64 | null;
103
103
  export declare function getSlotFromSignedBeaconBlockSerialized(data: Uint8Array): Slot | null;
104
104
  export declare function getSlotFromBlobSidecarSerialized(data: Uint8Array): Slot | null;
105
+ export declare function getSlotFromDataColumnSidecarSerialized(data: Uint8Array): Slot | null;
105
106
  //# sourceMappingURL=sszBytes.d.ts.map
@@ -307,6 +307,23 @@ export function getSlotFromBlobSidecarSerialized(data) {
307
307
  }
308
308
  return getSlotFromOffset(data, SLOT_BYTES_POSITION_IN_SIGNED_BLOB_SIDECAR);
309
309
  }
310
+ /**
311
+ * {
312
+ index: ColumnIndex [ fixed - 8 bytes],
313
+ column: DataColumn BYTES_PER_FIELD_ELEMENT * FIELD_ELEMENTS_PER_CELL * <some non fixed length>,
314
+ kzgCommitments: denebSsz.BlobKzgCommitments,
315
+ kzgProofs: denebSsz.KZGProofs,
316
+ signedBlockHeader: phase0Ssz.SignedBeaconBlockHeader,
317
+ kzgCommitmentsInclusionProof: KzgCommitmentsInclusionProof,
318
+ }
319
+ */
320
+ const SLOT_BYTES_POSITION_IN_SIGNED_DATA_COLUMN_SIDECAR = 20;
321
+ export function getSlotFromDataColumnSidecarSerialized(data) {
322
+ if (data.length < SLOT_BYTES_POSITION_IN_SIGNED_DATA_COLUMN_SIDECAR + SLOT_SIZE) {
323
+ return null;
324
+ }
325
+ return getSlotFromOffset(data, SLOT_BYTES_POSITION_IN_SIGNED_DATA_COLUMN_SIDECAR);
326
+ }
310
327
  /**
311
328
  * Read only the first 4 bytes of Slot, max value is 4,294,967,295 will be reached 1634 years after genesis
312
329
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sszBytes.js","sourceRoot":"","sources":["../../src/util/sszBytes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sszBytes.js","sourceRoot":"","sources":["../../src/util/sszBytes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.33.0-dev.fb2621434e",
14
+ "version": "1.33.0-peerDAS.0ebfec4475",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -118,18 +118,18 @@
118
118
  "@libp2p/peer-id": "^5.1.0",
119
119
  "@libp2p/prometheus-metrics": "^4.3.15",
120
120
  "@libp2p/tcp": "^10.1.8",
121
- "@lodestar/api": "1.33.0-dev.fb2621434e",
122
- "@lodestar/config": "1.33.0-dev.fb2621434e",
123
- "@lodestar/db": "1.33.0-dev.fb2621434e",
124
- "@lodestar/fork-choice": "1.33.0-dev.fb2621434e",
125
- "@lodestar/light-client": "1.33.0-dev.fb2621434e",
126
- "@lodestar/logger": "1.33.0-dev.fb2621434e",
127
- "@lodestar/params": "1.33.0-dev.fb2621434e",
128
- "@lodestar/reqresp": "1.33.0-dev.fb2621434e",
129
- "@lodestar/state-transition": "1.33.0-dev.fb2621434e",
130
- "@lodestar/types": "1.33.0-dev.fb2621434e",
131
- "@lodestar/utils": "1.33.0-dev.fb2621434e",
132
- "@lodestar/validator": "1.33.0-dev.fb2621434e",
121
+ "@lodestar/api": "1.33.0-peerDAS.0ebfec4475",
122
+ "@lodestar/config": "1.33.0-peerDAS.0ebfec4475",
123
+ "@lodestar/db": "1.33.0-peerDAS.0ebfec4475",
124
+ "@lodestar/fork-choice": "1.33.0-peerDAS.0ebfec4475",
125
+ "@lodestar/light-client": "1.33.0-peerDAS.0ebfec4475",
126
+ "@lodestar/logger": "1.33.0-peerDAS.0ebfec4475",
127
+ "@lodestar/params": "1.33.0-peerDAS.0ebfec4475",
128
+ "@lodestar/reqresp": "1.33.0-peerDAS.0ebfec4475",
129
+ "@lodestar/state-transition": "1.33.0-peerDAS.0ebfec4475",
130
+ "@lodestar/types": "1.33.0-peerDAS.0ebfec4475",
131
+ "@lodestar/utils": "1.33.0-peerDAS.0ebfec4475",
132
+ "@lodestar/validator": "1.33.0-peerDAS.0ebfec4475",
133
133
  "@multiformats/multiaddr": "^12.1.3",
134
134
  "datastore-core": "^10.0.2",
135
135
  "datastore-level": "^11.0.1",
@@ -165,5 +165,5 @@
165
165
  "beacon",
166
166
  "blockchain"
167
167
  ],
168
- "gitHead": "3f263f4d9e6d7767215e101f1e084f686a195c17"
168
+ "gitHead": "67e1f64d61d110cc7f1c807ba58ff6d5c10b853a"
169
169
  }