@lodestar/beacon-node 1.41.0-dev.702f7932c2 → 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.
- package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/blocks/index.js +121 -3
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/state/index.js +8 -8
- package/lib/api/impl/beacon/state/index.js.map +1 -1
- package/lib/api/impl/beacon/state/utils.d.ts +3 -4
- package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
- package/lib/api/impl/beacon/state/utils.js +5 -24
- package/lib/api/impl/beacon/state/utils.js.map +1 -1
- package/lib/api/impl/debug/index.d.ts.map +1 -1
- package/lib/api/impl/debug/index.js +5 -2
- package/lib/api/impl/debug/index.js.map +1 -1
- package/lib/api/impl/lightclient/index.d.ts.map +1 -1
- package/lib/api/impl/lightclient/index.js +19 -2
- package/lib/api/impl/lightclient/index.js.map +1 -1
- package/lib/api/impl/validator/index.d.ts.map +1 -1
- package/lib/api/impl/validator/index.js +104 -6
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.d.ts +1 -0
- package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
- package/lib/chain/archiveStore/archiveStore.js +9 -0
- package/lib/chain/archiveStore/archiveStore.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +5 -6
- package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
- package/lib/chain/archiveStore/historicalState/getHistoricalState.js +9 -10
- package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/worker.js +3 -3
- package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
- package/lib/chain/archiveStore/utils/archivePayloads.d.ts +7 -0
- package/lib/chain/archiveStore/utils/archivePayloads.d.ts.map +1 -0
- package/lib/chain/archiveStore/utils/archivePayloads.js +10 -0
- package/lib/chain/archiveStore/utils/archivePayloads.js.map +1 -0
- package/lib/chain/blocks/importBlock.d.ts.map +1 -1
- package/lib/chain/blocks/importBlock.js +0 -2
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/index.d.ts.map +1 -1
- package/lib/chain/blocks/index.js +2 -1
- package/lib/chain/blocks/index.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js +3 -0
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/bls/multithread/index.d.ts +3 -3
- package/lib/chain/bls/multithread/index.d.ts.map +1 -1
- package/lib/chain/bls/multithread/index.js +5 -5
- package/lib/chain/bls/multithread/index.js.map +1 -1
- package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
- package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
- package/lib/chain/bls/multithread/jobItem.js +2 -2
- package/lib/chain/bls/multithread/jobItem.js.map +1 -1
- package/lib/chain/bls/singleThread.d.ts +4 -4
- package/lib/chain/bls/singleThread.d.ts.map +1 -1
- package/lib/chain/bls/singleThread.js +4 -4
- package/lib/chain/bls/singleThread.js.map +1 -1
- package/lib/chain/bls/utils.d.ts +2 -2
- package/lib/chain/bls/utils.d.ts.map +1 -1
- package/lib/chain/bls/utils.js +7 -4
- package/lib/chain/bls/utils.js.map +1 -1
- package/lib/chain/chain.d.ts +6 -9
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +32 -16
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +2 -2
- package/lib/chain/emitter.d.ts.map +1 -1
- package/lib/chain/errors/blockError.d.ts +7 -1
- package/lib/chain/errors/blockError.d.ts.map +1 -1
- package/lib/chain/errors/blockError.js +2 -0
- package/lib/chain/errors/blockError.js.map +1 -1
- package/lib/chain/interface.d.ts +4 -6
- package/lib/chain/interface.d.ts.map +1 -1
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/lightClient/index.d.ts.map +1 -1
- package/lib/chain/lightClient/index.js +1 -1
- package/lib/chain/lightClient/index.js.map +1 -1
- package/lib/chain/options.d.ts.map +1 -1
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/prepareNextSlot.js +3 -3
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.d.ts +10 -2
- package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.js +24 -2
- package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +22 -7
- package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +110 -10
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/validation/attestation.d.ts.map +1 -1
- package/lib/chain/validation/attestation.js +4 -1
- package/lib/chain/validation/attestation.js.map +1 -1
- package/lib/chain/validation/attesterSlashing.js +1 -1
- package/lib/chain/validation/attesterSlashing.js.map +1 -1
- package/lib/chain/validation/block.d.ts.map +1 -1
- package/lib/chain/validation/block.js +27 -3
- package/lib/chain/validation/block.js.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts +2 -2
- package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.js +2 -1
- package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
- package/lib/chain/validation/payloadAttestationMessage.js +8 -1
- package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
- package/lib/chain/validation/proposerSlashing.js +1 -1
- package/lib/chain/validation/proposerSlashing.js.map +1 -1
- package/lib/chain/validation/syncCommitteeContributionAndProof.js +1 -1
- package/lib/db/beacon.d.ts +3 -1
- package/lib/db/beacon.d.ts.map +1 -1
- package/lib/db/beacon.js +5 -1
- package/lib/db/beacon.js.map +1 -1
- package/lib/db/buckets.d.ts +3 -1
- package/lib/db/buckets.d.ts.map +1 -1
- package/lib/db/buckets.js +2 -0
- package/lib/db/buckets.js.map +1 -1
- package/lib/db/interface.d.ts +3 -1
- package/lib/db/interface.d.ts.map +1 -1
- package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
- package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
- package/lib/db/repositories/dataColumnSidecar.d.ts +5 -3
- package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
- package/lib/db/repositories/dataColumnSidecar.js +14 -1
- package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
- package/lib/db/repositories/dataColumnSidecarArchive.d.ts +5 -3
- package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
- package/lib/db/repositories/dataColumnSidecarArchive.js +14 -1
- package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
- package/lib/db/repositories/executionPayloadEnvelope.d.ts +19 -0
- package/lib/db/repositories/executionPayloadEnvelope.d.ts.map +1 -0
- package/lib/db/repositories/executionPayloadEnvelope.js +22 -0
- package/lib/db/repositories/executionPayloadEnvelope.js.map +1 -0
- package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts +18 -0
- package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts.map +1 -0
- package/lib/db/repositories/executionPayloadEnvelopeArchive.js +28 -0
- package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -0
- package/lib/db/repositories/index.d.ts +2 -0
- package/lib/db/repositories/index.d.ts.map +1 -1
- package/lib/db/repositories/index.js +2 -0
- package/lib/db/repositories/index.js.map +1 -1
- package/lib/metrics/metrics/beacon.d.ts +1 -0
- package/lib/metrics/metrics/beacon.d.ts.map +1 -1
- package/lib/metrics/metrics/beacon.js +5 -0
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +5 -0
- package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
- package/lib/metrics/metrics/lodestar.js +9 -0
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/metrics/metrics.d.ts.map +1 -1
- package/lib/metrics/metrics.js +8 -3
- package/lib/metrics/metrics.js.map +1 -1
- package/lib/monitoring/service.d.ts +2 -2
- package/lib/monitoring/service.d.ts.map +1 -1
- package/lib/monitoring/service.js +3 -2
- package/lib/monitoring/service.js.map +1 -1
- package/lib/network/gossip/interface.d.ts +3 -3
- package/lib/network/gossip/interface.d.ts.map +1 -1
- package/lib/network/gossip/topic.d.ts +114 -65
- package/lib/network/gossip/topic.d.ts.map +1 -1
- package/lib/network/gossip/topic.js +2 -2
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/interface.d.ts +3 -2
- package/lib/network/interface.d.ts.map +1 -1
- package/lib/network/network.d.ts +3 -2
- package/lib/network/network.d.ts.map +1 -1
- package/lib/network/network.js +10 -1
- package/lib/network/network.js.map +1 -1
- package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
- package/lib/network/processor/gossipHandlers.js +5 -1
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/reqresp/handlers/lightClientUpdatesByRange.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js +7 -1
- package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
- package/lib/node/nodejs.d.ts +3 -5
- package/lib/node/nodejs.d.ts.map +1 -1
- package/lib/node/nodejs.js +6 -4
- package/lib/node/nodejs.js.map +1 -1
- package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
- package/lib/sync/utils/downloadByRange.js +3 -9
- package/lib/sync/utils/downloadByRange.js.map +1 -1
- package/lib/sync/utils/downloadByRoot.d.ts +1 -1
- package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
- package/lib/sync/utils/downloadByRoot.js +4 -4
- package/lib/sync/utils/downloadByRoot.js.map +1 -1
- package/lib/util/blobs.d.ts +2 -2
- package/lib/util/blobs.d.ts.map +1 -1
- package/lib/util/blobs.js.map +1 -1
- package/lib/util/dataColumns.d.ts +15 -2
- package/lib/util/dataColumns.d.ts.map +1 -1
- package/lib/util/dataColumns.js +40 -5
- package/lib/util/dataColumns.js.map +1 -1
- package/lib/util/multifork.d.ts +8 -0
- package/lib/util/multifork.d.ts.map +1 -1
- package/lib/util/multifork.js +37 -0
- package/lib/util/multifork.js.map +1 -1
- package/lib/util/serializedCache.d.ts +5 -0
- package/lib/util/serializedCache.d.ts.map +1 -1
- package/lib/util/serializedCache.js +5 -0
- package/lib/util/serializedCache.js.map +1 -1
- package/package.json +15 -15
- package/src/api/impl/beacon/blocks/index.ts +145 -2
- package/src/api/impl/beacon/state/index.ts +8 -8
- package/src/api/impl/beacon/state/utils.ts +15 -29
- package/src/api/impl/debug/index.ts +8 -5
- package/src/api/impl/lightclient/index.ts +19 -2
- package/src/api/impl/validator/index.ts +127 -5
- package/src/chain/archiveStore/archiveStore.ts +10 -0
- package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -11
- package/src/chain/archiveStore/historicalState/worker.ts +3 -3
- package/src/chain/archiveStore/utils/archivePayloads.ts +15 -0
- package/src/chain/blocks/importBlock.ts +0 -3
- package/src/chain/blocks/index.ts +2 -1
- package/src/chain/blocks/writeBlockInputToDb.ts +3 -0
- package/src/chain/bls/multithread/index.ts +7 -7
- package/src/chain/bls/multithread/jobItem.ts +3 -3
- package/src/chain/bls/singleThread.ts +5 -5
- package/src/chain/bls/utils.ts +8 -5
- package/src/chain/chain.ts +51 -26
- package/src/chain/emitter.ts +2 -2
- package/src/chain/errors/blockError.ts +4 -1
- package/src/chain/interface.ts +4 -11
- package/src/chain/lightClient/index.ts +4 -1
- package/src/chain/options.ts +1 -0
- package/src/chain/prepareNextSlot.ts +5 -5
- package/src/chain/produceBlock/computeNewStateRoot.ts +35 -3
- package/src/chain/produceBlock/produceBlockBody.ts +163 -13
- package/src/chain/validation/attestation.ts +4 -1
- package/src/chain/validation/attesterSlashing.ts +1 -1
- package/src/chain/validation/block.ts +32 -4
- package/src/chain/validation/dataColumnSidecar.ts +2 -5
- package/src/chain/validation/executionPayloadEnvelope.ts +2 -1
- package/src/chain/validation/payloadAttestationMessage.ts +10 -2
- package/src/chain/validation/proposerSlashing.ts +1 -1
- package/src/chain/validation/syncCommitteeContributionAndProof.ts +1 -1
- package/src/db/beacon.ts +8 -0
- package/src/db/buckets.ts +3 -0
- package/src/db/interface.ts +5 -0
- package/src/db/repositories/dataColumnSidecar.ts +18 -3
- package/src/db/repositories/dataColumnSidecarArchive.ts +18 -3
- package/src/db/repositories/executionPayloadEnvelope.ts +26 -0
- package/src/db/repositories/executionPayloadEnvelopeArchive.ts +32 -0
- package/src/db/repositories/index.ts +2 -0
- package/src/metrics/metrics/beacon.ts +5 -0
- package/src/metrics/metrics/lodestar.ts +9 -0
- package/src/metrics/metrics.ts +8 -3
- package/src/monitoring/service.ts +3 -2
- package/src/network/gossip/interface.ts +3 -3
- package/src/network/gossip/topic.ts +2 -1
- package/src/network/interface.ts +4 -1
- package/src/network/network.ts +21 -3
- package/src/network/processor/gossipHandlers.ts +7 -1
- package/src/network/reqresp/handlers/lightClientUpdatesByRange.ts +6 -1
- package/src/node/nodejs.ts +8 -9
- package/src/sync/utils/downloadByRange.ts +3 -15
- package/src/sync/utils/downloadByRoot.ts +5 -11
- package/src/util/blobs.ts +3 -3
- package/src/util/dataColumns.ts +54 -5
- package/src/util/multifork.ts +45 -0
- package/src/util/serializedCache.ts +5 -0
package/lib/util/blobs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../../src/util/blobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAC,IAAI,EAAC,MAAM,mCAAmC,CAAC;AAEvD,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EAGvB,sBAAsB,EACtB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,yBAAyB,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,
|
|
1
|
+
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../../src/util/blobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ChainForkConfig } from "@lodestar/config";
|
|
2
|
-
import { ForkName, ForkPostFulu } from "@lodestar/params";
|
|
3
|
-
import { BeaconBlockBody, ColumnIndex, CustodyIndex, SignedBeaconBlock, SignedBeaconBlockHeader, deneb, fulu } from "@lodestar/types";
|
|
2
|
+
import { ForkName, ForkPostDeneb, ForkPostFulu } from "@lodestar/params";
|
|
3
|
+
import { BeaconBlockBody, ColumnIndex, CustodyIndex, Root, SignedBeaconBlock, SignedBeaconBlockHeader, Slot, deneb, fulu, gloas } from "@lodestar/types";
|
|
4
4
|
import { BlockInputColumns } from "../chain/blocks/blockInput/blockInput.js";
|
|
5
5
|
import { ChainEventEmitter } from "../chain/emitter.js";
|
|
6
6
|
import { Metrics } from "../metrics/metrics.js";
|
|
@@ -92,6 +92,11 @@ export declare function getCellsAndProofs(blobBundles: fulu.BlobAndProofV2[]): P
|
|
|
92
92
|
cells: Uint8Array[];
|
|
93
93
|
proofs: Uint8Array[];
|
|
94
94
|
}[]>;
|
|
95
|
+
/**
|
|
96
|
+
* Get blob KZG commitments from a signed block, handling the different locations
|
|
97
|
+
* in pre-Gloas (directly in block body) vs post-Gloas (in execution payload bid).
|
|
98
|
+
*/
|
|
99
|
+
export declare function getBlobKzgCommitments(fork: ForkName, signedBlock: SignedBeaconBlock<ForkPostDeneb>): deneb.KZGCommitment[];
|
|
95
100
|
/**
|
|
96
101
|
* Given a signed block header and the commitments, inclusion proof, cells/proofs associated with
|
|
97
102
|
* each blob in the block, assemble the sidecars which can be distributed to peers.
|
|
@@ -125,6 +130,14 @@ export declare function getDataColumnSidecarsFromColumnSidecar(sidecar: fulu.Dat
|
|
|
125
130
|
cells: Uint8Array[];
|
|
126
131
|
proofs: Uint8Array[];
|
|
127
132
|
}[]): fulu.DataColumnSidecars;
|
|
133
|
+
/**
|
|
134
|
+
* In Gloas, data column sidecars have a simplified structure with `slot` and `beaconBlockRoot`
|
|
135
|
+
* instead of `signedBlockHeader`, `kzgCommitments`, and `kzgCommitmentsInclusionProof`.
|
|
136
|
+
*/
|
|
137
|
+
export declare function getDataColumnSidecarsForGloas(slot: Slot, beaconBlockRoot: Root, cellsAndKzgProofs: {
|
|
138
|
+
cells: Uint8Array[];
|
|
139
|
+
proofs: Uint8Array[];
|
|
140
|
+
}[]): gloas.DataColumnSidecars;
|
|
128
141
|
/**
|
|
129
142
|
* If we receive more than half of NUMBER_OF_COLUMNS (64) we should recover all remaining columns
|
|
130
143
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataColumns.d.ts","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAEL,QAAQ,EACR,YAAY,
|
|
1
|
+
{"version":3,"file":"dataColumns.d.ts","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"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"}
|
package/lib/util/dataColumns.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { digest } from "@chainsafe/as-sha256";
|
|
2
2
|
import { Tree } from "@chainsafe/persistent-merkle-tree";
|
|
3
|
-
import { KZG_COMMITMENTS_GINDEX, NUMBER_OF_COLUMNS, } from "@lodestar/params";
|
|
3
|
+
import { KZG_COMMITMENTS_GINDEX, NUMBER_OF_COLUMNS, isForkPostGloas, } from "@lodestar/params";
|
|
4
4
|
import { signedBlockToSignedHeader } from "@lodestar/state-transition";
|
|
5
5
|
import { ssz, } from "@lodestar/types";
|
|
6
6
|
import { bytesToBigInt } from "@lodestar/utils";
|
|
@@ -193,6 +193,16 @@ export async function getCellsAndProofs(blobBundles) {
|
|
|
193
193
|
}
|
|
194
194
|
return blobsAndProofs;
|
|
195
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* Get blob KZG commitments from a signed block, handling the different locations
|
|
198
|
+
* in pre-Gloas (directly in block body) vs post-Gloas (in execution payload bid).
|
|
199
|
+
*/
|
|
200
|
+
export function getBlobKzgCommitments(fork, signedBlock) {
|
|
201
|
+
if (isForkPostGloas(fork)) {
|
|
202
|
+
return signedBlock.message.body.signedExecutionPayloadBid.message.blobKzgCommitments;
|
|
203
|
+
}
|
|
204
|
+
return signedBlock.message.body.blobKzgCommitments;
|
|
205
|
+
}
|
|
196
206
|
/**
|
|
197
207
|
* Given a signed block header and the commitments, inclusion proof, cells/proofs associated with
|
|
198
208
|
* each blob in the block, assemble the sidecars which can be distributed to peers.
|
|
@@ -231,14 +241,12 @@ export function getDataColumnSidecars(signedBlockHeader, kzgCommitments, kzgComm
|
|
|
231
241
|
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/validator.md#get_data_column_sidecars_from_block
|
|
232
242
|
*/
|
|
233
243
|
export function getDataColumnSidecarsFromBlock(config, signedBlock, cellsAndKzgProofs) {
|
|
234
|
-
|
|
235
|
-
const blobKzgCommitments = signedBlock
|
|
236
|
-
.blobKzgCommitments;
|
|
244
|
+
const fork = config.getForkName(signedBlock.message.slot);
|
|
245
|
+
const blobKzgCommitments = getBlobKzgCommitments(fork, signedBlock);
|
|
237
246
|
// No need to create data column sidecars if there are no blobs
|
|
238
247
|
if (blobKzgCommitments.length === 0) {
|
|
239
248
|
return [];
|
|
240
249
|
}
|
|
241
|
-
const fork = config.getForkName(signedBlock.message.slot);
|
|
242
250
|
const signedBlockHeader = signedBlockToSignedHeader(config, signedBlock);
|
|
243
251
|
const kzgCommitmentsInclusionProof = computePostFuluKzgCommitmentsInclusionProof(fork, signedBlock.message.body);
|
|
244
252
|
return getDataColumnSidecars(signedBlockHeader, blobKzgCommitments, kzgCommitmentsInclusionProof, cellsAndKzgProofs);
|
|
@@ -253,6 +261,33 @@ export function getDataColumnSidecarsFromBlock(config, signedBlock, cellsAndKzgP
|
|
|
253
261
|
export function getDataColumnSidecarsFromColumnSidecar(sidecar, cellsAndKzgProofs) {
|
|
254
262
|
return getDataColumnSidecars(sidecar.signedBlockHeader, sidecar.kzgCommitments, sidecar.kzgCommitmentsInclusionProof, cellsAndKzgProofs);
|
|
255
263
|
}
|
|
264
|
+
/**
|
|
265
|
+
* In Gloas, data column sidecars have a simplified structure with `slot` and `beaconBlockRoot`
|
|
266
|
+
* instead of `signedBlockHeader`, `kzgCommitments`, and `kzgCommitmentsInclusionProof`.
|
|
267
|
+
*/
|
|
268
|
+
export function getDataColumnSidecarsForGloas(slot, beaconBlockRoot, cellsAndKzgProofs) {
|
|
269
|
+
// No need to create data column sidecars if there are no blobs
|
|
270
|
+
if (cellsAndKzgProofs.length === 0) {
|
|
271
|
+
return [];
|
|
272
|
+
}
|
|
273
|
+
const sidecars = [];
|
|
274
|
+
for (let columnIndex = 0; columnIndex < NUMBER_OF_COLUMNS; columnIndex++) {
|
|
275
|
+
const column = [];
|
|
276
|
+
const kzgProofs = [];
|
|
277
|
+
for (const { cells, proofs } of cellsAndKzgProofs) {
|
|
278
|
+
column.push(cells[columnIndex]);
|
|
279
|
+
kzgProofs.push(proofs[columnIndex]);
|
|
280
|
+
}
|
|
281
|
+
sidecars.push({
|
|
282
|
+
index: columnIndex,
|
|
283
|
+
column,
|
|
284
|
+
kzgProofs,
|
|
285
|
+
slot,
|
|
286
|
+
beaconBlockRoot,
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
return sidecars;
|
|
290
|
+
}
|
|
256
291
|
/**
|
|
257
292
|
* If we receive more than half of NUMBER_OF_COLUMNS (64) we should recover all remaining columns
|
|
258
293
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"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"}
|
package/lib/util/multifork.d.ts
CHANGED
|
@@ -5,4 +5,12 @@ export declare function getSignedBlockTypeFromBytes(config: ChainForkConfig, byt
|
|
|
5
5
|
export declare function getStateTypeFromBytes(config: ChainForkConfig, bytes: Buffer | Uint8Array): SSZTypesFor<ForkAll, "BeaconState">;
|
|
6
6
|
export declare function getStateSlotFromBytes(bytes: Uint8Array): Slot;
|
|
7
7
|
export declare function getLightClientHeaderTypeFromBytes(config: ChainForkConfig, bytes: Buffer | Uint8Array): SSZTypesFor<ForkPostAltair, "LightClientHeader">;
|
|
8
|
+
/**
|
|
9
|
+
* Determines if DataColumnSidecar bytes are from Gloas fork by checking the SSZ offset structure.
|
|
10
|
+
*
|
|
11
|
+
* The first offset (bytes 8-12) indicates where variable-size data begins:
|
|
12
|
+
* - Gloas: 56 (small fixed section)
|
|
13
|
+
* - Fulu: 356
|
|
14
|
+
*/
|
|
15
|
+
export declare function isGloasDataColumnSidecarBytes(bytes: Uint8Array): boolean;
|
|
8
16
|
//# sourceMappingURL=multifork.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multifork.d.ts","sourceRoot":"","sources":["../../src/util/multifork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,OAAO,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAC,WAAW,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"multifork.d.ts","sourceRoot":"","sources":["../../src/util/multifork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,OAAO,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAC,WAAW,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AA0BlD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,GAAG,UAAU,GACzB,WAAW,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAO3C;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,GAAG,UAAU,GACzB,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAGrC;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAE7D;AAeD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,GAAG,UAAU,GACzB,WAAW,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAKlD;AAyBD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAQxE"}
|
package/lib/util/multifork.js
CHANGED
|
@@ -4,6 +4,10 @@ import { getSlotFromSignedBeaconBlockSerialized } from "./sszBytes.js";
|
|
|
4
4
|
* Slot uint64
|
|
5
5
|
*/
|
|
6
6
|
const SLOT_BYTE_COUNT = 8;
|
|
7
|
+
/**
|
|
8
|
+
* SSZ offset uint32
|
|
9
|
+
*/
|
|
10
|
+
const OFFSET_BYTE_COUNT = 4;
|
|
7
11
|
/**
|
|
8
12
|
* 8 + 32 = 40
|
|
9
13
|
* ```
|
|
@@ -46,4 +50,37 @@ export function getLightClientHeaderTypeFromBytes(config, bytes) {
|
|
|
46
50
|
const slot = bytesToInt(bytes.subarray(SLOT_BYTES_POSITION_IN_LIGHTCLIENTHEADER, SLOT_BYTES_POSITION_IN_LIGHTCLIENTHEADER + SLOT_BYTE_COUNT));
|
|
47
51
|
return config.getPostAltairForkTypes(slot).LightClientHeader;
|
|
48
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Position of first offset in DataColumnSidecar (after index field)
|
|
55
|
+
*
|
|
56
|
+
* Fulu DataColumnSidecar (6 fields):
|
|
57
|
+
* index: uint64 [fixed - 8 bytes]
|
|
58
|
+
* column: List [variable - 4-byte offset]
|
|
59
|
+
* kzgCommitments: List [variable - 4-byte offset]
|
|
60
|
+
* kzgProofs: List [variable - 4-byte offset]
|
|
61
|
+
* signedBlockHeader: Container [fixed - 208 bytes]
|
|
62
|
+
* kzgCommitmentsInclusionProof: Vector[Bytes32, 4] [fixed - 128 bytes]
|
|
63
|
+
* => First offset value = 8 + 4 + 4 + 4 + 208 + 128 = 356
|
|
64
|
+
*
|
|
65
|
+
* Gloas DataColumnSidecar (5 fields):
|
|
66
|
+
* index: uint64 [fixed - 8 bytes]
|
|
67
|
+
* column: List [variable - 4-byte offset]
|
|
68
|
+
* kzgProofs: List [variable - 4-byte offset]
|
|
69
|
+
* slot: uint64 [fixed - 8 bytes]
|
|
70
|
+
* beaconBlockRoot: Bytes32 [fixed - 32 bytes]
|
|
71
|
+
* => First offset value = 8 + 4 + 4 + 8 + 32 = 56
|
|
72
|
+
*/
|
|
73
|
+
const FIRST_OFFSET_POSITION_IN_DATA_COLUMN_SIDECAR = 8;
|
|
74
|
+
const GLOAS_DATA_COLUMN_SIDECAR_FIRST_OFFSET = 56;
|
|
75
|
+
/**
|
|
76
|
+
* Determines if DataColumnSidecar bytes are from Gloas fork by checking the SSZ offset structure.
|
|
77
|
+
*
|
|
78
|
+
* The first offset (bytes 8-12) indicates where variable-size data begins:
|
|
79
|
+
* - Gloas: 56 (small fixed section)
|
|
80
|
+
* - Fulu: 356
|
|
81
|
+
*/
|
|
82
|
+
export function isGloasDataColumnSidecarBytes(bytes) {
|
|
83
|
+
const firstOffset = bytesToInt(bytes.subarray(FIRST_OFFSET_POSITION_IN_DATA_COLUMN_SIDECAR, FIRST_OFFSET_POSITION_IN_DATA_COLUMN_SIDECAR + OFFSET_BYTE_COUNT));
|
|
84
|
+
return firstOffset === GLOAS_DATA_COLUMN_SIDECAR_FIRST_OFFSET;
|
|
85
|
+
}
|
|
49
86
|
//# sourceMappingURL=multifork.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multifork.js","sourceRoot":"","sources":["../../src/util/multifork.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,sCAAsC,EAAC,MAAM,eAAe,CAAC;AAErE;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B;;;;;;;;;GASG;AACH,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC,MAAM,UAAU,2BAA2B,CACzC,MAAuB,EACvB,KAA0B;IAE1B,MAAM,IAAI,GAAG,sCAAsC,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAuB,EACvB,KAA0B;IAE1B,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAiB;IACrD,OAAO,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,4BAA4B,EAAE,4BAA4B,GAAG,eAAe,CAAC,CAAC,CAAC;AAClH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,wCAAwC,GAAG,CAAC,CAAC;AACnD,MAAM,UAAU,iCAAiC,CAC/C,MAAuB,EACvB,KAA0B;IAE1B,MAAM,IAAI,GAAG,UAAU,CACrB,KAAK,CAAC,QAAQ,CAAC,wCAAwC,EAAE,wCAAwC,GAAG,eAAe,CAAC,CACrH,CAAC;IACF,OAAO,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;AAC/D,CAAC"}
|
|
1
|
+
{"version":3,"file":"multifork.js","sourceRoot":"","sources":["../../src/util/multifork.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,sCAAsC,EAAC,MAAM,eAAe,CAAC;AAErE;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B;;;;;;;;;GASG;AACH,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC,MAAM,UAAU,2BAA2B,CACzC,MAAuB,EACvB,KAA0B;IAE1B,MAAM,IAAI,GAAG,sCAAsC,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAuB,EACvB,KAA0B;IAE1B,MAAM,IAAI,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAiB;IACrD,OAAO,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,4BAA4B,EAAE,4BAA4B,GAAG,eAAe,CAAC,CAAC,CAAC;AAClH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,wCAAwC,GAAG,CAAC,CAAC;AACnD,MAAM,UAAU,iCAAiC,CAC/C,MAAuB,EACvB,KAA0B;IAE1B,MAAM,IAAI,GAAG,UAAU,CACrB,KAAK,CAAC,QAAQ,CAAC,wCAAwC,EAAE,wCAAwC,GAAG,eAAe,CAAC,CACrH,CAAC;IACF,OAAO,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,4CAA4C,GAAG,CAAC,CAAC;AACvD,MAAM,sCAAsC,GAAG,EAAE,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAiB;IAC7D,MAAM,WAAW,GAAG,UAAU,CAC5B,KAAK,CAAC,QAAQ,CACZ,4CAA4C,EAC5C,4CAA4C,GAAG,iBAAiB,CACjE,CACF,CAAC;IACF,OAAO,WAAW,KAAK,sCAAsC,CAAC;AAChE,CAAC"}
|
|
@@ -7,6 +7,11 @@ export declare class SerializedCache {
|
|
|
7
7
|
map: WeakMap<object, Uint8Array>;
|
|
8
8
|
get(obj: object): Uint8Array | undefined;
|
|
9
9
|
set(obj: object, serialized: Uint8Array): void;
|
|
10
|
+
/**
|
|
11
|
+
* Replace the internal WeakMap to force GC of all cached entries.
|
|
12
|
+
* Must only be called after all DB writes that may read from this cache have completed,
|
|
13
|
+
* otherwise cached serialized bytes will be unavailable and data will be re-serialized unnecessarily.
|
|
14
|
+
*/
|
|
10
15
|
clear(): void;
|
|
11
16
|
}
|
|
12
17
|
//# sourceMappingURL=serializedCache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializedCache.d.ts","sourceRoot":"","sources":["../../src/util/serializedCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAiB;IAEjD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAI9C,KAAK,IAAI,IAAI;CAGd"}
|
|
1
|
+
{"version":3,"file":"serializedCache.d.ts","sourceRoot":"","sources":["../../src/util/serializedCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAiB;IAEjD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAI9C;;;;OAIG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -11,6 +11,11 @@ export class SerializedCache {
|
|
|
11
11
|
set(obj, serialized) {
|
|
12
12
|
this.map.set(obj, serialized);
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Replace the internal WeakMap to force GC of all cached entries.
|
|
16
|
+
* Must only be called after all DB writes that may read from this cache have completed,
|
|
17
|
+
* otherwise cached serialized bytes will be unavailable and data will be re-serialized unnecessarily.
|
|
18
|
+
*/
|
|
14
19
|
clear() {
|
|
15
20
|
this.map = new WeakMap();
|
|
16
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializedCache.js","sourceRoot":"","sources":["../../src/util/serializedCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAC1B,GAAG,GAAgC,IAAI,OAAO,EAAE,CAAC;IAEjD,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,UAAsB;QACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAChC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"serializedCache.js","sourceRoot":"","sources":["../../src/util/serializedCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAC1B,GAAG,GAAgC,IAAI,OAAO,EAAE,CAAC;IAEjD,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,UAAsB;QACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
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.41.0-dev.
|
|
14
|
+
"version": "1.41.0-dev.95cf2edc4c",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -134,18 +134,18 @@
|
|
|
134
134
|
"@libp2p/peer-id": "^5.1.0",
|
|
135
135
|
"@libp2p/prometheus-metrics": "^4.3.15",
|
|
136
136
|
"@libp2p/tcp": "^10.1.8",
|
|
137
|
-
"@lodestar/api": "^1.41.0-dev.
|
|
138
|
-
"@lodestar/config": "^1.41.0-dev.
|
|
139
|
-
"@lodestar/db": "^1.41.0-dev.
|
|
140
|
-
"@lodestar/fork-choice": "^1.41.0-dev.
|
|
141
|
-
"@lodestar/light-client": "^1.41.0-dev.
|
|
142
|
-
"@lodestar/logger": "^1.41.0-dev.
|
|
143
|
-
"@lodestar/params": "^1.41.0-dev.
|
|
144
|
-
"@lodestar/reqresp": "^1.41.0-dev.
|
|
145
|
-
"@lodestar/state-transition": "^1.41.0-dev.
|
|
146
|
-
"@lodestar/types": "^1.41.0-dev.
|
|
147
|
-
"@lodestar/utils": "^1.41.0-dev.
|
|
148
|
-
"@lodestar/validator": "^1.41.0-dev.
|
|
137
|
+
"@lodestar/api": "^1.41.0-dev.95cf2edc4c",
|
|
138
|
+
"@lodestar/config": "^1.41.0-dev.95cf2edc4c",
|
|
139
|
+
"@lodestar/db": "^1.41.0-dev.95cf2edc4c",
|
|
140
|
+
"@lodestar/fork-choice": "^1.41.0-dev.95cf2edc4c",
|
|
141
|
+
"@lodestar/light-client": "^1.41.0-dev.95cf2edc4c",
|
|
142
|
+
"@lodestar/logger": "^1.41.0-dev.95cf2edc4c",
|
|
143
|
+
"@lodestar/params": "^1.41.0-dev.95cf2edc4c",
|
|
144
|
+
"@lodestar/reqresp": "^1.41.0-dev.95cf2edc4c",
|
|
145
|
+
"@lodestar/state-transition": "^1.41.0-dev.95cf2edc4c",
|
|
146
|
+
"@lodestar/types": "^1.41.0-dev.95cf2edc4c",
|
|
147
|
+
"@lodestar/utils": "^1.41.0-dev.95cf2edc4c",
|
|
148
|
+
"@lodestar/validator": "^1.41.0-dev.95cf2edc4c",
|
|
149
149
|
"@multiformats/multiaddr": "^12.1.3",
|
|
150
150
|
"datastore-core": "^10.0.2",
|
|
151
151
|
"datastore-fs": "^10.0.6",
|
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
"@chainsafe/swap-or-not-shuffle": "^1.2.1",
|
|
170
170
|
"@libp2p/interface-internal": "^2.3.18",
|
|
171
171
|
"@libp2p/logger": "^5.1.21",
|
|
172
|
-
"@lodestar/spec-test-util": "^1.41.0-dev.
|
|
172
|
+
"@lodestar/spec-test-util": "^1.41.0-dev.95cf2edc4c",
|
|
173
173
|
"@types/js-yaml": "^4.0.5",
|
|
174
174
|
"@types/qs": "^6.9.7",
|
|
175
175
|
"@types/tmp": "^0.2.3",
|
|
@@ -188,5 +188,5 @@
|
|
|
188
188
|
"beacon",
|
|
189
189
|
"blockchain"
|
|
190
190
|
],
|
|
191
|
-
"gitHead": "
|
|
191
|
+
"gitHead": "20fbfe73edbffc6a4da217dc2c8693fc0c37aae5"
|
|
192
192
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {routes} from "@lodestar/api";
|
|
2
2
|
import {ApiError, ApplicationMethods} from "@lodestar/api/server";
|
|
3
3
|
import {
|
|
4
|
+
BUILDER_INDEX_SELF_BUILD,
|
|
4
5
|
ForkPostBellatrix,
|
|
5
6
|
ForkPostFulu,
|
|
6
7
|
ForkPreGloas,
|
|
@@ -27,6 +28,7 @@ import {
|
|
|
27
28
|
WithOptionalBytes,
|
|
28
29
|
deneb,
|
|
29
30
|
fulu,
|
|
31
|
+
gloas,
|
|
30
32
|
isDenebBlockContents,
|
|
31
33
|
sszTypesFor,
|
|
32
34
|
} from "@lodestar/types";
|
|
@@ -42,6 +44,7 @@ import {
|
|
|
42
44
|
ProduceFullBellatrix,
|
|
43
45
|
ProduceFullDeneb,
|
|
44
46
|
ProduceFullFulu,
|
|
47
|
+
ProduceFullGloas,
|
|
45
48
|
} from "../../../../chain/produceBlock/index.js";
|
|
46
49
|
import {validateGossipBlock} from "../../../../chain/validation/block.js";
|
|
47
50
|
import {OpSource} from "../../../../chain/validatorMonitor.js";
|
|
@@ -51,7 +54,7 @@ import {
|
|
|
51
54
|
kzgCommitmentToVersionedHash,
|
|
52
55
|
reconstructBlobs,
|
|
53
56
|
} from "../../../../util/blobs.js";
|
|
54
|
-
import {getDataColumnSidecarsFromBlock} from "../../../../util/dataColumns.js";
|
|
57
|
+
import {getDataColumnSidecarsForGloas, getDataColumnSidecarsFromBlock} from "../../../../util/dataColumns.js";
|
|
55
58
|
import {isOptimisticBlock} from "../../../../util/forkChoice.js";
|
|
56
59
|
import {kzg} from "../../../../util/kzg.js";
|
|
57
60
|
import {promiseAllMaybeAsync} from "../../../../util/promises.js";
|
|
@@ -93,6 +96,7 @@ export function getBeaconBlockApi({
|
|
|
93
96
|
const fork = config.getForkName(slot);
|
|
94
97
|
const blockRoot = toRootHex(chain.config.getForkTypes(slot).BeaconBlock.hashTreeRoot(signedBlock.message));
|
|
95
98
|
|
|
99
|
+
// TODO GLOAS: handle new BlockInput type
|
|
96
100
|
const blockForImport = chain.seenBlockInputCache.getByBlock({
|
|
97
101
|
block: signedBlock,
|
|
98
102
|
source: BlockInputSource.api,
|
|
@@ -309,7 +313,9 @@ export function getBeaconBlockApi({
|
|
|
309
313
|
];
|
|
310
314
|
const sentPeersArr = await promiseAllMaybeAsync<number | void>(publishPromises);
|
|
311
315
|
|
|
312
|
-
if (
|
|
316
|
+
if (isForkPostGloas(fork)) {
|
|
317
|
+
// After gloas, data columns are not published with the block but when publishing the execution payload envelope
|
|
318
|
+
} else if (isForkPostFulu(fork)) {
|
|
313
319
|
let columnsPublishedWithZeroPeers = 0;
|
|
314
320
|
// sent peers per topic are logged in network.publishGossip(), here we only track metrics for it
|
|
315
321
|
// starting from fulu, we have to push to 128 subnets so need to make sure we have enough sent peers per topic
|
|
@@ -632,6 +638,143 @@ export function getBeaconBlockApi({
|
|
|
632
638
|
await publishBlock(args, context, opts);
|
|
633
639
|
},
|
|
634
640
|
|
|
641
|
+
async publishExecutionPayloadEnvelope({signedExecutionPayloadEnvelope}) {
|
|
642
|
+
const seenTimestampSec = Date.now() / 1000;
|
|
643
|
+
const envelope = signedExecutionPayloadEnvelope.message;
|
|
644
|
+
const slot = envelope.slot;
|
|
645
|
+
const fork = config.getForkName(slot);
|
|
646
|
+
const blockRootHex = toRootHex(envelope.beaconBlockRoot);
|
|
647
|
+
|
|
648
|
+
if (!isForkPostGloas(fork)) {
|
|
649
|
+
throw new ApiError(400, `publishExecutionPayloadEnvelope not supported for pre-gloas fork=${fork}`);
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
// TODO GLOAS: review checks, do we want to implement `broadcast_validation`?
|
|
653
|
+
const block = chain.forkChoice.getBlockHex(blockRootHex);
|
|
654
|
+
if (block === null) {
|
|
655
|
+
throw new ApiError(404, `Block not found for beacon block root ${blockRootHex}`);
|
|
656
|
+
}
|
|
657
|
+
if (block.slot !== slot) {
|
|
658
|
+
throw new ApiError(400, `Envelope slot ${slot} does not match block slot ${block.slot}`);
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
const isSelfBuild = envelope.builderIndex === BUILDER_INDEX_SELF_BUILD;
|
|
662
|
+
let dataColumnSidecars: gloas.DataColumnSidecars = [];
|
|
663
|
+
|
|
664
|
+
if (isSelfBuild) {
|
|
665
|
+
// For self-builds, construct and publish data column sidecars from cached block production data
|
|
666
|
+
const cachedResult = chain.blockProductionCache.get(blockRootHex) as ProduceFullGloas | undefined;
|
|
667
|
+
if (cachedResult === undefined) {
|
|
668
|
+
throw new ApiError(404, `No cached block production result found for block root ${blockRootHex}`);
|
|
669
|
+
}
|
|
670
|
+
if (!isForkPostGloas(cachedResult.fork)) {
|
|
671
|
+
throw new ApiError(400, `Cached block production result is for pre-gloas fork=${cachedResult.fork}`);
|
|
672
|
+
}
|
|
673
|
+
if (cachedResult.type !== BlockType.Full) {
|
|
674
|
+
throw new ApiError(400, "Cached block production result is not full block");
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
if (cachedResult.cells && cachedResult.blobsBundle.commitments.length > 0) {
|
|
678
|
+
const cellsAndProofs = cachedResult.cells.map((rowCells, rowIndex) => ({
|
|
679
|
+
cells: rowCells,
|
|
680
|
+
proofs: cachedResult.blobsBundle.proofs.slice(
|
|
681
|
+
rowIndex * NUMBER_OF_COLUMNS,
|
|
682
|
+
(rowIndex + 1) * NUMBER_OF_COLUMNS
|
|
683
|
+
),
|
|
684
|
+
}));
|
|
685
|
+
|
|
686
|
+
dataColumnSidecars = getDataColumnSidecarsForGloas(slot, envelope.beaconBlockRoot, cellsAndProofs);
|
|
687
|
+
}
|
|
688
|
+
} else {
|
|
689
|
+
// TODO GLOAS: will this api be used by builders or only for self-building?
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
// TODO GLOAS: Verify execution payload envelope signature
|
|
693
|
+
// For self-builds, the proposer signs with their own validator key
|
|
694
|
+
// For external builders, verify using the builder's registered pubkey
|
|
695
|
+
// Use verify_execution_payload_envelope_signature(state, signed_envelope)
|
|
696
|
+
|
|
697
|
+
// TODO GLOAS: Process execution payload via state transition
|
|
698
|
+
// Call process_execution_payload(state, signed_envelope, execution_engine)
|
|
699
|
+
|
|
700
|
+
// TODO GLOAS: Update fork choice with the execution payload
|
|
701
|
+
// Call on_execution_payload(store, signed_envelope) to update fork choice state
|
|
702
|
+
|
|
703
|
+
// TODO GLOAS: Add envelope and data columns to block input via seenBlockInputCache
|
|
704
|
+
// and trigger block import (Gloas block import requires both beacon block and envelope)
|
|
705
|
+
|
|
706
|
+
const valLogMeta = {
|
|
707
|
+
slot,
|
|
708
|
+
blockRoot: blockRootHex,
|
|
709
|
+
builderIndex: envelope.builderIndex,
|
|
710
|
+
isSelfBuild,
|
|
711
|
+
dataColumns: dataColumnSidecars.length,
|
|
712
|
+
};
|
|
713
|
+
|
|
714
|
+
// If called near a slot boundary (e.g. late in slot N-1), hold briefly so gossip aligns with slot N.
|
|
715
|
+
const msToBlockSlot = computeTimeAtSlot(config, slot, chain.genesisTime) * 1000 - Date.now();
|
|
716
|
+
if (msToBlockSlot <= MAX_API_CLOCK_DISPARITY_MS && msToBlockSlot > 0) {
|
|
717
|
+
await sleep(msToBlockSlot);
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
const delaySec = seenTimestampSec - computeTimeAtSlot(config, slot, chain.genesisTime);
|
|
721
|
+
metrics?.gossipExecutionPayloadEnvelope.elapsedTimeTillReceived.observe({source: OpSource.api}, delaySec);
|
|
722
|
+
|
|
723
|
+
chain.logger.info("Publishing execution payload envelope", valLogMeta);
|
|
724
|
+
|
|
725
|
+
// Publish envelope and data columns
|
|
726
|
+
const publishPromises = [
|
|
727
|
+
// Gossip the signed execution payload envelope first
|
|
728
|
+
() => network.publishSignedExecutionPayloadEnvelope(signedExecutionPayloadEnvelope),
|
|
729
|
+
// For self-builds, publish all data column sidecars
|
|
730
|
+
...dataColumnSidecars.map((dataColumnSidecar) => () => network.publishDataColumnSidecar(dataColumnSidecar)),
|
|
731
|
+
];
|
|
732
|
+
|
|
733
|
+
const sentPeersArr = await promiseAllMaybeAsync<number | void>(publishPromises);
|
|
734
|
+
|
|
735
|
+
// Track metrics for data column publishing
|
|
736
|
+
if (dataColumnSidecars.length > 0) {
|
|
737
|
+
let columnsPublishedWithZeroPeers = 0;
|
|
738
|
+
// Skip first entry (envelope), track data columns
|
|
739
|
+
for (let i = 1; i < sentPeersArr.length; i++) {
|
|
740
|
+
const sentPeers = sentPeersArr[i] as number;
|
|
741
|
+
metrics?.dataColumns.sentPeersPerSubnet.observe(sentPeers);
|
|
742
|
+
if (sentPeers === 0) {
|
|
743
|
+
columnsPublishedWithZeroPeers++;
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
if (columnsPublishedWithZeroPeers > 0) {
|
|
747
|
+
chain.logger.warn("Published data columns to 0 peers, increased risk of reorg", {
|
|
748
|
+
slot,
|
|
749
|
+
blockRoot: blockRootHex,
|
|
750
|
+
columns: columnsPublishedWithZeroPeers,
|
|
751
|
+
});
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
metrics?.dataColumns.bySource.inc({source: BlockInputSource.api}, dataColumnSidecars.length);
|
|
755
|
+
|
|
756
|
+
if (chain.emitter.listenerCount(routes.events.EventType.dataColumnSidecar)) {
|
|
757
|
+
// TODO GLOAS: revisit this, we likely don't wanna emit KZG commitments anymore
|
|
758
|
+
const cachedResult = chain.blockProductionCache.get(blockRootHex) as ProduceFullGloas | undefined;
|
|
759
|
+
const kzgCommitments = cachedResult?.blobsBundle.commitments.map(toHex) ?? [];
|
|
760
|
+
for (const dataColumnSidecar of dataColumnSidecars) {
|
|
761
|
+
chain.emitter.emit(routes.events.EventType.dataColumnSidecar, {
|
|
762
|
+
blockRoot: blockRootHex,
|
|
763
|
+
slot,
|
|
764
|
+
index: dataColumnSidecar.index,
|
|
765
|
+
kzgCommitments,
|
|
766
|
+
});
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
chain.logger.info("Published execution payload envelope", {
|
|
772
|
+
...valLogMeta,
|
|
773
|
+
delaySec,
|
|
774
|
+
sentPeers: (sentPeersArr[0] as number) ?? 0,
|
|
775
|
+
});
|
|
776
|
+
},
|
|
777
|
+
|
|
635
778
|
async getBlobSidecars({blockId, indices}) {
|
|
636
779
|
assertUniqueItems(indices, "Duplicate indices provided");
|
|
637
780
|
|