@lodestar/beacon-node 1.43.0-dev.07875b3e0c → 1.43.0-dev.180030f946
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.js +1 -1
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/lodestar/index.js +1 -1
- package/lib/api/impl/lodestar/index.js.map +1 -1
- package/lib/chain/blocks/importBlock.d.ts.map +1 -1
- package/lib/chain/blocks/importBlock.js +6 -3
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/importExecutionPayload.d.ts +19 -8
- package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
- package/lib/chain/blocks/importExecutionPayload.js +31 -20
- package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
- package/lib/chain/blocks/index.d.ts +5 -3
- package/lib/chain/blocks/index.d.ts.map +1 -1
- package/lib/chain/blocks/index.js +28 -9
- package/lib/chain/blocks/index.js.map +1 -1
- package/lib/chain/blocks/payloadEnvelopeProcessor.js +2 -2
- package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
- package/lib/chain/blocks/types.d.ts +2 -2
- package/lib/chain/blocks/types.d.ts.map +1 -1
- package/lib/chain/blocks/utils/chainSegment.d.ts +23 -2
- package/lib/chain/blocks/utils/chainSegment.d.ts.map +1 -1
- package/lib/chain/blocks/utils/chainSegment.js +81 -12
- package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
- package/lib/chain/blocks/verifyBlock.d.ts +3 -2
- package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlock.js +30 -5
- package/lib/chain/blocks/verifyBlock.js.map +1 -1
- package/lib/chain/chain.d.ts +3 -2
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +14 -3
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/errors/blockError.d.ts +8 -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 +3 -2
- package/lib/chain/interface.d.ts.map +1 -1
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/prepareNextSlot.d.ts.map +1 -1
- package/lib/chain/prepareNextSlot.js +19 -8
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -2
- package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +27 -13
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/validation/block.d.ts.map +1 -1
- package/lib/chain/validation/block.js +1 -0
- package/lib/chain/validation/block.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +749 -2
- package/lib/network/gossip/topic.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js +14 -6
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRange.js +11 -5
- package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +17 -5
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +7 -4
- package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -1
- package/lib/node/notifier.js +7 -1
- package/lib/node/notifier.js.map +1 -1
- package/lib/sync/range/batch.d.ts +12 -2
- package/lib/sync/range/batch.d.ts.map +1 -1
- package/lib/sync/range/batch.js +56 -30
- package/lib/sync/range/batch.js.map +1 -1
- package/lib/sync/range/chain.d.ts +6 -2
- package/lib/sync/range/chain.d.ts.map +1 -1
- package/lib/sync/range/chain.js +4 -3
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.d.ts.map +1 -1
- package/lib/sync/range/range.js +17 -6
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/utils/downloadByRange.d.ts +46 -10
- package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
- package/lib/sync/utils/downloadByRange.js +147 -24
- package/lib/sync/utils/downloadByRange.js.map +1 -1
- package/package.json +16 -15
- package/src/api/impl/beacon/blocks/index.ts +1 -1
- package/src/api/impl/lodestar/index.ts +1 -1
- package/src/chain/blocks/importBlock.ts +4 -2
- package/src/chain/blocks/importExecutionPayload.ts +36 -21
- package/src/chain/blocks/index.ts +44 -12
- package/src/chain/blocks/payloadEnvelopeProcessor.ts +2 -2
- package/src/chain/blocks/types.ts +2 -2
- package/src/chain/blocks/utils/chainSegment.ts +106 -17
- package/src/chain/blocks/verifyBlock.ts +35 -6
- package/src/chain/chain.ts +23 -3
- package/src/chain/errors/blockError.ts +4 -1
- package/src/chain/interface.ts +7 -1
- package/src/chain/prepareNextSlot.ts +29 -9
- package/src/chain/produceBlock/produceBlockBody.ts +30 -11
- package/src/chain/validation/block.ts +1 -0
- package/src/network/reqresp/handlers/beaconBlocksByRange.ts +14 -6
- package/src/network/reqresp/handlers/blobSidecarsByRange.ts +11 -5
- package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +17 -5
- package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +7 -4
- package/src/node/notifier.ts +8 -1
- package/src/sync/range/batch.ts +90 -35
- package/src/sync/range/chain.ts +13 -5
- package/src/sync/range/range.ts +18 -6
- package/src/sync/utils/downloadByRange.ts +256 -39
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
import { ChainForkConfig } from "@lodestar/config";
|
|
2
|
-
import { SignedBeaconBlock, Slot, deneb, fulu, phase0 } from "@lodestar/types";
|
|
2
|
+
import { DataColumnSidecar, SignedBeaconBlock, Slot, deneb, fulu, gloas, phase0 } from "@lodestar/types";
|
|
3
3
|
import { LodestarError, Logger } from "@lodestar/utils";
|
|
4
4
|
import { DAType, IBlockInput } from "../../chain/blocks/blockInput/index.js";
|
|
5
|
+
import { PayloadEnvelopeInput } from "../../chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js";
|
|
5
6
|
import { SeenBlockInput } from "../../chain/seenCache/seenGossipBlockInput.js";
|
|
7
|
+
import { SeenPayloadEnvelopeInput } from "../../chain/seenCache/seenPayloadEnvelopeInput.js";
|
|
6
8
|
import { BeaconMetrics } from "../../metrics/metrics/beacon.js";
|
|
7
9
|
import { INetwork } from "../../network/index.js";
|
|
10
|
+
import { CustodyConfig } from "../../util/dataColumns.js";
|
|
8
11
|
import { PeerIdStr } from "../../util/peerId.js";
|
|
9
12
|
import { WarnResult } from "../../util/wrapError.js";
|
|
10
13
|
export type DownloadByRangeRequests = {
|
|
11
14
|
blocksRequest?: phase0.BeaconBlocksByRangeRequest;
|
|
12
15
|
blobsRequest?: deneb.BlobSidecarsByRangeRequest;
|
|
13
16
|
columnsRequest?: fulu.DataColumnSidecarsByRangeRequest;
|
|
17
|
+
envelopesRequest?: gloas.ExecutionPayloadEnvelopesByRangeRequest;
|
|
14
18
|
};
|
|
15
19
|
export type DownloadByRangeResponses = {
|
|
16
20
|
blocks?: SignedBeaconBlock[];
|
|
17
21
|
blobSidecars?: deneb.BlobSidecars;
|
|
18
|
-
columnSidecars?:
|
|
22
|
+
columnSidecars?: DataColumnSidecar[];
|
|
23
|
+
payloadEnvelopes?: gloas.SignedExecutionPayloadEnvelope[];
|
|
19
24
|
};
|
|
20
25
|
export type DownloadAndCacheByRangeProps = DownloadByRangeRequests & {
|
|
21
26
|
config: ChainForkConfig;
|
|
@@ -27,9 +32,17 @@ export type DownloadAndCacheByRangeProps = DownloadByRangeRequests & {
|
|
|
27
32
|
};
|
|
28
33
|
export type CacheByRangeResponsesProps = {
|
|
29
34
|
cache: SeenBlockInput;
|
|
35
|
+
seenPayloadEnvelopeInputCache: SeenPayloadEnvelopeInput;
|
|
30
36
|
peerIdStr: string;
|
|
31
37
|
responses: ValidatedResponses;
|
|
32
38
|
batchBlocks: IBlockInput[];
|
|
39
|
+
/** Raw envelopes downloaded in this batch, keyed by slot (from downloadByRange return) */
|
|
40
|
+
downloadedPayloadEnvelopes: Map<Slot, gloas.SignedExecutionPayloadEnvelope> | null;
|
|
41
|
+
/** Envelopes already wrapped from previous partial downloads on this batch */
|
|
42
|
+
existingPayloadEnvelopes: Map<Slot, PayloadEnvelopeInput> | null;
|
|
43
|
+
/** Sampled/custody column indices for building PayloadEnvelopeInputs */
|
|
44
|
+
custodyConfig: Pick<CustodyConfig, "sampledColumns" | "custodyColumns">;
|
|
45
|
+
seenTimestampSec: number;
|
|
33
46
|
};
|
|
34
47
|
export type ValidatedBlock = {
|
|
35
48
|
blockRoot: Uint8Array;
|
|
@@ -41,7 +54,7 @@ export type ValidatedBlobSidecars = {
|
|
|
41
54
|
};
|
|
42
55
|
export type ValidatedColumnSidecars = {
|
|
43
56
|
blockRoot: Uint8Array;
|
|
44
|
-
columnSidecars:
|
|
57
|
+
columnSidecars: DataColumnSidecar[];
|
|
45
58
|
};
|
|
46
59
|
export type ValidatedResponses = {
|
|
47
60
|
validatedBlocks?: ValidatedBlock[];
|
|
@@ -51,23 +64,32 @@ export type ValidatedResponses = {
|
|
|
51
64
|
/**
|
|
52
65
|
* Given existing cached batch block inputs and newly validated responses, update the cache with the new data
|
|
53
66
|
*/
|
|
54
|
-
export declare function cacheByRangeResponses({ cache, peerIdStr, responses, batchBlocks }: CacheByRangeResponsesProps):
|
|
55
|
-
|
|
67
|
+
export declare function cacheByRangeResponses({ cache, seenPayloadEnvelopeInputCache, peerIdStr, responses, batchBlocks, downloadedPayloadEnvelopes, existingPayloadEnvelopes, custodyConfig, seenTimestampSec }: CacheByRangeResponsesProps): {
|
|
68
|
+
blocks: IBlockInput[];
|
|
69
|
+
payloadEnvelopes: Map<Slot, PayloadEnvelopeInput> | null;
|
|
70
|
+
};
|
|
71
|
+
export declare function downloadByRange({ config, network, peerIdStr, batchBlocks, blocksRequest, blobsRequest, columnsRequest, envelopesRequest, peerDasMetrics }: DownloadAndCacheByRangeProps): Promise<WarnResult<{
|
|
72
|
+
responses: ValidatedResponses;
|
|
73
|
+
payloadEnvelopes: Map<Slot, gloas.SignedExecutionPayloadEnvelope> | null;
|
|
74
|
+
}, DownloadByRangeError>>;
|
|
56
75
|
/**
|
|
57
76
|
* Should not be called directly. Only exported for unit testing purposes
|
|
58
77
|
*/
|
|
59
|
-
export declare function requestByRange({ network, peerIdStr, blocksRequest, blobsRequest, columnsRequest }: DownloadByRangeRequests & {
|
|
78
|
+
export declare function requestByRange({ network, peerIdStr, blocksRequest, blobsRequest, columnsRequest, envelopesRequest }: DownloadByRangeRequests & {
|
|
60
79
|
network: INetwork;
|
|
61
80
|
peerIdStr: PeerIdStr;
|
|
62
81
|
}): Promise<DownloadByRangeResponses>;
|
|
63
82
|
/**
|
|
64
83
|
* Should not be called directly. Only exported for unit testing purposes
|
|
65
84
|
*/
|
|
66
|
-
export declare function validateResponses({ config, batchBlocks, blocksRequest, blobsRequest, columnsRequest, blocks, blobSidecars, columnSidecars, peerDasMetrics }: DownloadByRangeRequests & DownloadByRangeResponses & {
|
|
85
|
+
export declare function validateResponses({ config, batchBlocks, blocksRequest, blobsRequest, columnsRequest, envelopesRequest, blocks, blobSidecars, columnSidecars, payloadEnvelopes, peerDasMetrics }: DownloadByRangeRequests & DownloadByRangeResponses & {
|
|
67
86
|
config: ChainForkConfig;
|
|
68
87
|
batchBlocks?: IBlockInput[];
|
|
69
88
|
peerDasMetrics?: BeaconMetrics["peerDas"] | null;
|
|
70
|
-
}): Promise<WarnResult<
|
|
89
|
+
}): Promise<WarnResult<{
|
|
90
|
+
responses: ValidatedResponses;
|
|
91
|
+
payloadEnvelopes: Map<Slot, gloas.SignedExecutionPayloadEnvelope> | null;
|
|
92
|
+
}, DownloadByRangeError>>;
|
|
71
93
|
/**
|
|
72
94
|
* Should not be called directly. Only exported for unit testing purposes
|
|
73
95
|
*
|
|
@@ -125,7 +147,7 @@ export declare function validateBlobsByRangeResponse(dataRequestBlocks: Validate
|
|
|
125
147
|
* - non-sparse response (any missing block is a skipped slot not a bad response)
|
|
126
148
|
* - last block is last slot received
|
|
127
149
|
*/
|
|
128
|
-
export declare function validateColumnsByRangeResponse(config: ChainForkConfig, request: fulu.DataColumnSidecarsByRangeRequest, blocks: ValidatedBlock[], columnSidecars:
|
|
150
|
+
export declare function validateColumnsByRangeResponse(config: ChainForkConfig, request: fulu.DataColumnSidecarsByRangeRequest, blocks: ValidatedBlock[], columnSidecars: DataColumnSidecar[], peerDasMetrics?: BeaconMetrics["peerDas"] | null): Promise<WarnResult<ValidatedColumnSidecars[], DownloadByRangeError>>;
|
|
129
151
|
/**
|
|
130
152
|
* Given a data request, return only the blocks and roots that correspond to the data request (sorted). Assumes that
|
|
131
153
|
* cached have slots that are all before the current batch of downloaded blocks
|
|
@@ -155,7 +177,9 @@ export declare enum DownloadByRangeErrorCode {
|
|
|
155
177
|
OUT_OF_ORDER_COLUMNS = "DOWNLOAD_BY_RANGE_OUT_OF_ORDER_COLUMNS",
|
|
156
178
|
/** Cached block input type mismatches new data */
|
|
157
179
|
MISMATCH_BLOCK_FORK = "DOWNLOAD_BY_RANGE_ERROR_MISMATCH_BLOCK_FORK",
|
|
158
|
-
MISMATCH_BLOCK_INPUT_TYPE = "DOWNLOAD_BY_RANGE_ERROR_MISMATCH_BLOCK_INPUT_TYPE"
|
|
180
|
+
MISMATCH_BLOCK_INPUT_TYPE = "DOWNLOAD_BY_RANGE_ERROR_MISMATCH_BLOCK_INPUT_TYPE",
|
|
181
|
+
/** Envelope beaconBlockRoot does not match the block's root */
|
|
182
|
+
INVALID_ENVELOPE_BEACON_BLOCK_ROOT = "DOWNLOAD_BY_RANGE_ERROR_INVALID_ENVELOPE_BEACON_BLOCK_ROOT"
|
|
159
183
|
}
|
|
160
184
|
export type DownloadByRangeErrorType = {
|
|
161
185
|
code: DownloadByRangeErrorCode.MISSING_BLOCKS_RESPONSE | DownloadByRangeErrorCode.MISSING_BLOBS_RESPONSE | DownloadByRangeErrorCode.MISSING_COLUMNS_RESPONSE;
|
|
@@ -228,7 +252,19 @@ export type DownloadByRangeErrorType = {
|
|
|
228
252
|
blockRoot: string;
|
|
229
253
|
expected: DAType;
|
|
230
254
|
actual: DAType;
|
|
255
|
+
} | {
|
|
256
|
+
code: DownloadByRangeErrorCode.INVALID_ENVELOPE_BEACON_BLOCK_ROOT;
|
|
257
|
+
slot: Slot;
|
|
258
|
+
expected: string;
|
|
259
|
+
actual: string;
|
|
231
260
|
};
|
|
232
261
|
export declare class DownloadByRangeError extends LodestarError<DownloadByRangeErrorType> {
|
|
233
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* Validates SignedExecutionPayloadEnvelopes received for a range request.
|
|
265
|
+
* For each envelope whose slot appears in the downloaded blocks, verifies that
|
|
266
|
+
* envelope.message.beaconBlockRoot matches the corresponding block's root.
|
|
267
|
+
* Envelopes for slots not in the batch (orphaned payloads) are silently ignored.
|
|
268
|
+
*/
|
|
269
|
+
export declare function validateEnvelopesByRangeResponse(validatedBlocks: ValidatedBlock[], batchBlocks: IBlockInput[] | undefined, payloadEnvelopes: gloas.SignedExecutionPayloadEnvelope[]): Map<Slot, gloas.SignedExecutionPayloadEnvelope>;
|
|
234
270
|
//# sourceMappingURL=downloadByRange.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadByRange.d.ts","sourceRoot":"","sources":["../../../src/sync/utils/downloadByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"downloadByRange.d.ts","sourceRoot":"","sources":["../../../src/sync/utils/downloadByRange.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { isForkPostFulu } from "@lodestar/params";
|
|
1
|
+
import { isForkPostFulu, isForkPostGloas, } from "@lodestar/params";
|
|
2
|
+
import { isGloasDataColumnSidecar, } from "@lodestar/types";
|
|
2
3
|
import { LodestarError, byteArrayEquals, fromHex, prettyPrintIndices, toRootHex } from "@lodestar/utils";
|
|
3
4
|
import { BlockInputSource, DAType, isBlockInputBlobs, isBlockInputColumns, } from "../../chain/blocks/blockInput/index.js";
|
|
5
|
+
import { PayloadEnvelopeInputSource } from "../../chain/blocks/payloadEnvelopeInput/types.js";
|
|
4
6
|
import { validateBlockBlobSidecars } from "../../chain/validation/blobSidecar.js";
|
|
5
|
-
import { validateFuluBlockDataColumnSidecars } from "../../chain/validation/dataColumnSidecar.js";
|
|
7
|
+
import { validateFuluBlockDataColumnSidecars, validateGloasBlockDataColumnSidecars, } from "../../chain/validation/dataColumnSidecar.js";
|
|
6
8
|
import { getBlobKzgCommitments } from "../../util/dataColumns.js";
|
|
7
9
|
/**
|
|
8
10
|
* Given existing cached batch block inputs and newly validated responses, update the cache with the new data
|
|
9
11
|
*/
|
|
10
|
-
export function cacheByRangeResponses({ cache, peerIdStr, responses, batchBlocks, }) {
|
|
12
|
+
export function cacheByRangeResponses({ cache, seenPayloadEnvelopeInputCache, peerIdStr, responses, batchBlocks, downloadedPayloadEnvelopes, existingPayloadEnvelopes, custodyConfig, seenTimestampSec, }) {
|
|
11
13
|
const source = BlockInputSource.byRange;
|
|
12
|
-
const seenTimestampSec = Date.now() / 1000;
|
|
13
14
|
const updatedBatchBlocks = new Map(batchBlocks.map((block) => [block.slot, block]));
|
|
14
15
|
const blocks = responses.validatedBlocks ?? [];
|
|
15
16
|
for (let i = 0; i < blocks.length; i++) {
|
|
@@ -68,13 +69,71 @@ export function cacheByRangeResponses({ cache, peerIdStr, responses, batchBlocks
|
|
|
68
69
|
}, { throwOnDuplicateAdd: false });
|
|
69
70
|
}
|
|
70
71
|
}
|
|
72
|
+
// Build payloadEnvelopes map for gloas: start from existing (partial download) state.
|
|
73
|
+
// The entries are wrappers around (block + envelope + sampled columns) and also seeded into
|
|
74
|
+
// seenPayloadEnvelopeInputCache so importBlock can find them without creating a duplicate.
|
|
75
|
+
let payloadEnvelopes = null;
|
|
76
|
+
if (downloadedPayloadEnvelopes !== null) {
|
|
77
|
+
payloadEnvelopes = new Map(existingPayloadEnvelopes ?? []);
|
|
78
|
+
for (const [slot, envelope] of downloadedPayloadEnvelopes) {
|
|
79
|
+
const blockInput = updatedBatchBlocks.get(slot);
|
|
80
|
+
if (!blockInput?.hasBlock() || !isForkPostGloas(blockInput.forkName)) {
|
|
81
|
+
// No block to pair this envelope with; drop silently
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
const { blockRootHex } = blockInput;
|
|
85
|
+
// Reuse any existing PayloadEnvelopeInput (e.g. gossip arrived first) to avoid
|
|
86
|
+
// duplicate cache entries. If missing, create a fresh one from the block's bid.
|
|
87
|
+
let payloadInput = seenPayloadEnvelopeInputCache.get(blockRootHex);
|
|
88
|
+
if (payloadInput === undefined) {
|
|
89
|
+
payloadInput = seenPayloadEnvelopeInputCache.add({
|
|
90
|
+
blockRootHex,
|
|
91
|
+
block: blockInput.getBlock(),
|
|
92
|
+
forkName: blockInput.forkName,
|
|
93
|
+
sampledColumns: custodyConfig.sampledColumns,
|
|
94
|
+
custodyColumns: custodyConfig.custodyColumns,
|
|
95
|
+
timeCreatedSec: seenTimestampSec,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
if (!payloadInput.hasPayloadEnvelope()) {
|
|
99
|
+
payloadInput.addPayloadEnvelope({
|
|
100
|
+
envelope,
|
|
101
|
+
source: PayloadEnvelopeInputSource.byRange,
|
|
102
|
+
seenTimestampSec,
|
|
103
|
+
peerIdStr,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
payloadEnvelopes.set(slot, payloadInput);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
71
109
|
for (const { blockRoot, columnSidecars } of responses.validatedColumnSidecars ?? []) {
|
|
72
|
-
const
|
|
73
|
-
if (
|
|
110
|
+
const firstColumn = columnSidecars[0];
|
|
111
|
+
if (!firstColumn) {
|
|
74
112
|
throw new Error(`Coding Error: empty columnSidecars returned for blockRoot=${toRootHex(blockRoot)} from validation functions`);
|
|
75
113
|
}
|
|
76
|
-
const existing = updatedBatchBlocks.get(dataSlot);
|
|
77
114
|
const blockRootHex = toRootHex(blockRoot);
|
|
115
|
+
if (isGloasDataColumnSidecar(firstColumn)) {
|
|
116
|
+
// Gloas columns are attached to the matching PayloadEnvelopeInput, NOT to IBlockInput.
|
|
117
|
+
// Gloas DataColumnSidecar has `slot` directly (no signedBlockHeader).
|
|
118
|
+
const dataSlot = firstColumn.slot;
|
|
119
|
+
const payloadInput = payloadEnvelopes?.get(dataSlot);
|
|
120
|
+
if (!payloadInput) {
|
|
121
|
+
// Should not happen: we built payloadInputs for all gloas blocks above
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
for (const columnSidecar of columnSidecars) {
|
|
125
|
+
payloadInput.addColumn({
|
|
126
|
+
columnSidecar,
|
|
127
|
+
seenTimestampSec,
|
|
128
|
+
peerIdStr,
|
|
129
|
+
source: PayloadEnvelopeInputSource.byRange,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
const fuluColumns = columnSidecars;
|
|
135
|
+
const dataSlot = fuluColumns[0].signedBlockHeader.message.slot;
|
|
136
|
+
const existing = updatedBatchBlocks.get(dataSlot);
|
|
78
137
|
if (!existing) {
|
|
79
138
|
throw new Error("Coding error: blockInput must exist when adding columns");
|
|
80
139
|
}
|
|
@@ -87,7 +146,7 @@ export function cacheByRangeResponses({ cache, peerIdStr, responses, batchBlocks
|
|
|
87
146
|
actual: existing.type,
|
|
88
147
|
});
|
|
89
148
|
}
|
|
90
|
-
for (const columnSidecar of
|
|
149
|
+
for (const columnSidecar of fuluColumns) {
|
|
91
150
|
// will throw if root hex does not match (meaning we are following the wrong chain)
|
|
92
151
|
existing.addColumn({
|
|
93
152
|
columnSidecar,
|
|
@@ -98,9 +157,9 @@ export function cacheByRangeResponses({ cache, peerIdStr, responses, batchBlocks
|
|
|
98
157
|
}, { throwOnDuplicateAdd: false });
|
|
99
158
|
}
|
|
100
159
|
}
|
|
101
|
-
return Array.from(updatedBatchBlocks.values());
|
|
160
|
+
return { blocks: Array.from(updatedBatchBlocks.values()), payloadEnvelopes };
|
|
102
161
|
}
|
|
103
|
-
export async function downloadByRange({ config, network, peerIdStr, batchBlocks, blocksRequest, blobsRequest, columnsRequest, peerDasMetrics, }) {
|
|
162
|
+
export async function downloadByRange({ config, network, peerIdStr, batchBlocks, blocksRequest, blobsRequest, columnsRequest, envelopesRequest, peerDasMetrics, }) {
|
|
104
163
|
let response;
|
|
105
164
|
try {
|
|
106
165
|
response = await requestByRange({
|
|
@@ -109,6 +168,7 @@ export async function downloadByRange({ config, network, peerIdStr, batchBlocks,
|
|
|
109
168
|
blocksRequest,
|
|
110
169
|
blobsRequest,
|
|
111
170
|
columnsRequest,
|
|
171
|
+
envelopesRequest,
|
|
112
172
|
});
|
|
113
173
|
}
|
|
114
174
|
catch (err) {
|
|
@@ -118,24 +178,25 @@ export async function downloadByRange({ config, network, peerIdStr, batchBlocks,
|
|
|
118
178
|
...requestsLogMeta({ blocksRequest, blobsRequest, columnsRequest }),
|
|
119
179
|
});
|
|
120
180
|
}
|
|
121
|
-
|
|
181
|
+
return validateResponses({
|
|
122
182
|
config,
|
|
123
183
|
batchBlocks,
|
|
124
184
|
blocksRequest,
|
|
125
185
|
blobsRequest,
|
|
126
186
|
columnsRequest,
|
|
187
|
+
envelopesRequest,
|
|
127
188
|
peerDasMetrics,
|
|
128
189
|
...response,
|
|
129
190
|
});
|
|
130
|
-
return validated;
|
|
131
191
|
}
|
|
132
192
|
/**
|
|
133
193
|
* Should not be called directly. Only exported for unit testing purposes
|
|
134
194
|
*/
|
|
135
|
-
export async function requestByRange({ network, peerIdStr, blocksRequest, blobsRequest, columnsRequest, }) {
|
|
195
|
+
export async function requestByRange({ network, peerIdStr, blocksRequest, blobsRequest, columnsRequest, envelopesRequest, }) {
|
|
136
196
|
let blocks;
|
|
137
197
|
let blobSidecars;
|
|
138
198
|
let columnSidecars;
|
|
199
|
+
let payloadEnvelopes;
|
|
139
200
|
const requests = [];
|
|
140
201
|
if (blocksRequest) {
|
|
141
202
|
requests.push(network.sendBeaconBlocksByRange(peerIdStr, blocksRequest).then((blockResponse) => {
|
|
@@ -152,17 +213,23 @@ export async function requestByRange({ network, peerIdStr, blocksRequest, blobsR
|
|
|
152
213
|
columnSidecars = columnResponse;
|
|
153
214
|
}));
|
|
154
215
|
}
|
|
216
|
+
if (envelopesRequest) {
|
|
217
|
+
requests.push(network.sendExecutionPayloadEnvelopesByRange(peerIdStr, envelopesRequest).then((envelopeResponse) => {
|
|
218
|
+
payloadEnvelopes = envelopeResponse;
|
|
219
|
+
}));
|
|
220
|
+
}
|
|
155
221
|
await Promise.all(requests);
|
|
156
222
|
return {
|
|
157
223
|
blocks,
|
|
158
224
|
blobSidecars,
|
|
159
225
|
columnSidecars,
|
|
226
|
+
payloadEnvelopes,
|
|
160
227
|
};
|
|
161
228
|
}
|
|
162
229
|
/**
|
|
163
230
|
* Should not be called directly. Only exported for unit testing purposes
|
|
164
231
|
*/
|
|
165
|
-
export async function validateResponses({ config, batchBlocks, blocksRequest, blobsRequest, columnsRequest, blocks, blobSidecars, columnSidecars, peerDasMetrics, }) {
|
|
232
|
+
export async function validateResponses({ config, batchBlocks, blocksRequest, blobsRequest, columnsRequest, envelopesRequest, blocks, blobSidecars, columnSidecars, payloadEnvelopes, peerDasMetrics, }) {
|
|
166
233
|
// Blocks are always required for blob/column validation
|
|
167
234
|
// If a blocksRequest is provided, blocks have just been downloaded
|
|
168
235
|
// If no blocksRequest is provided, batchBlocks must have been provided from cache
|
|
@@ -182,8 +249,16 @@ export async function validateResponses({ config, batchBlocks, blocksRequest, bl
|
|
|
182
249
|
validatedResponses.validatedBlocks = result.result;
|
|
183
250
|
}
|
|
184
251
|
const dataRequest = blobsRequest ?? columnsRequest;
|
|
252
|
+
if (!dataRequest && !envelopesRequest) {
|
|
253
|
+
return { result: { responses: validatedResponses, payloadEnvelopes: null }, warnings };
|
|
254
|
+
}
|
|
185
255
|
if (!dataRequest) {
|
|
186
|
-
|
|
256
|
+
// Only envelope validation needed
|
|
257
|
+
let validatedPayloadEnvelopes = null;
|
|
258
|
+
if (envelopesRequest) {
|
|
259
|
+
validatedPayloadEnvelopes = validateEnvelopesByRangeResponse(validatedResponses.validatedBlocks ?? [], batchBlocks, payloadEnvelopes ?? []);
|
|
260
|
+
}
|
|
261
|
+
return { result: { responses: validatedResponses, payloadEnvelopes: validatedPayloadEnvelopes }, warnings };
|
|
187
262
|
}
|
|
188
263
|
const blocksForDataValidation = getBlocksForDataValidation(dataRequest, batchBlocks, validatedResponses.validatedBlocks?.length ? validatedResponses.validatedBlocks : undefined);
|
|
189
264
|
if (!blocksForDataValidation.length) {
|
|
@@ -212,7 +287,12 @@ export async function validateResponses({ config, batchBlocks, blocksRequest, bl
|
|
|
212
287
|
validatedResponses.validatedColumnSidecars = validatedColumnSidecarsResult.result;
|
|
213
288
|
warnings = validatedColumnSidecarsResult.warnings;
|
|
214
289
|
}
|
|
215
|
-
|
|
290
|
+
// Validate envelopes if an envelopes request was made
|
|
291
|
+
let validatedPayloadEnvelopes = null;
|
|
292
|
+
if (envelopesRequest) {
|
|
293
|
+
validatedPayloadEnvelopes = validateEnvelopesByRangeResponse(validatedResponses.validatedBlocks ?? [], batchBlocks, payloadEnvelopes ?? []);
|
|
294
|
+
}
|
|
295
|
+
return { result: { responses: validatedResponses, payloadEnvelopes: validatedPayloadEnvelopes }, warnings };
|
|
216
296
|
}
|
|
217
297
|
/**
|
|
218
298
|
* Should not be called directly. Only exported for unit testing purposes
|
|
@@ -384,14 +464,14 @@ export async function validateBlobsByRangeResponse(dataRequestBlocks, blobSideca
|
|
|
384
464
|
*/
|
|
385
465
|
export async function validateColumnsByRangeResponse(config, request, blocks, columnSidecars, peerDasMetrics) {
|
|
386
466
|
const warnings = [];
|
|
387
|
-
// TODO GLOAS: Extend by range column sync to support gloas.DataColumnSidecar and
|
|
388
|
-
// validate against the block bid commitments instead of the fulu signed header shape
|
|
389
467
|
const seenColumns = new Map();
|
|
390
468
|
let currentSlot = -1;
|
|
391
469
|
let currentIndex = -1;
|
|
392
470
|
// Check for duplicates and order
|
|
393
471
|
for (const columnSidecar of columnSidecars) {
|
|
394
|
-
const slot = columnSidecar
|
|
472
|
+
const slot = isGloasDataColumnSidecar(columnSidecar)
|
|
473
|
+
? columnSidecar.slot
|
|
474
|
+
: columnSidecar.signedBlockHeader.message.slot;
|
|
395
475
|
let seenSlotColumns = seenColumns.get(slot);
|
|
396
476
|
if (!seenSlotColumns) {
|
|
397
477
|
seenSlotColumns = new Map();
|
|
@@ -436,15 +516,15 @@ export async function validateColumnsByRangeResponse(config, request, blocks, co
|
|
|
436
516
|
const columnSidecars = Array.from(columnSidecarsMap.values()).sort((a, b) => a.index - b.index);
|
|
437
517
|
let blobCount;
|
|
438
518
|
if (!isForkPostFulu(forkName)) {
|
|
439
|
-
const dataSlot = columnSidecars.at(0)?.signedBlockHeader.message.slot;
|
|
440
519
|
throw new DownloadByRangeError({
|
|
441
520
|
code: DownloadByRangeErrorCode.MISMATCH_BLOCK_FORK,
|
|
442
521
|
slot,
|
|
443
522
|
blockFork: forkName,
|
|
444
|
-
dataFork:
|
|
523
|
+
dataFork: "unknown",
|
|
445
524
|
});
|
|
446
525
|
}
|
|
447
|
-
|
|
526
|
+
const kzgCommitments = getBlobKzgCommitments(forkName, block);
|
|
527
|
+
blobCount = kzgCommitments.length;
|
|
448
528
|
if (columnSidecars.length === 0) {
|
|
449
529
|
if (!blobCount) {
|
|
450
530
|
// no columns in the slot
|
|
@@ -492,8 +572,11 @@ export async function validateColumnsByRangeResponse(config, request, blocks, co
|
|
|
492
572
|
invalidIndices: prettyPrintIndices(extraIndices),
|
|
493
573
|
}, "Data column in not in requested columns in DataColumnSidecarsByRange response"));
|
|
494
574
|
}
|
|
495
|
-
|
|
496
|
-
|
|
575
|
+
const validatePromise = isForkPostGloas(forkName)
|
|
576
|
+
? validateGloasBlockDataColumnSidecars(slot, blockRoot, kzgCommitments, columnSidecars, peerDasMetrics)
|
|
577
|
+
: validateFuluBlockDataColumnSidecars(null, // do not pass chain here so we do not validate header signature
|
|
578
|
+
slot, blockRoot, blobCount, columnSidecars, peerDasMetrics);
|
|
579
|
+
validationPromises.push(validatePromise.then(() => ({
|
|
497
580
|
blockRoot,
|
|
498
581
|
columnSidecars,
|
|
499
582
|
})));
|
|
@@ -575,7 +658,47 @@ var DownloadByRangeErrorCode;
|
|
|
575
658
|
/** Cached block input type mismatches new data */
|
|
576
659
|
DownloadByRangeErrorCode["MISMATCH_BLOCK_FORK"] = "DOWNLOAD_BY_RANGE_ERROR_MISMATCH_BLOCK_FORK";
|
|
577
660
|
DownloadByRangeErrorCode["MISMATCH_BLOCK_INPUT_TYPE"] = "DOWNLOAD_BY_RANGE_ERROR_MISMATCH_BLOCK_INPUT_TYPE";
|
|
661
|
+
/** Envelope beaconBlockRoot does not match the block's root */
|
|
662
|
+
DownloadByRangeErrorCode["INVALID_ENVELOPE_BEACON_BLOCK_ROOT"] = "DOWNLOAD_BY_RANGE_ERROR_INVALID_ENVELOPE_BEACON_BLOCK_ROOT";
|
|
578
663
|
})(DownloadByRangeErrorCode || (DownloadByRangeErrorCode = {}));
|
|
579
664
|
export class DownloadByRangeError extends LodestarError {
|
|
580
665
|
}
|
|
666
|
+
/**
|
|
667
|
+
* Validates SignedExecutionPayloadEnvelopes received for a range request.
|
|
668
|
+
* For each envelope whose slot appears in the downloaded blocks, verifies that
|
|
669
|
+
* envelope.message.beaconBlockRoot matches the corresponding block's root.
|
|
670
|
+
* Envelopes for slots not in the batch (orphaned payloads) are silently ignored.
|
|
671
|
+
*/
|
|
672
|
+
export function validateEnvelopesByRangeResponse(validatedBlocks, batchBlocks, payloadEnvelopes) {
|
|
673
|
+
// Build a map of slot -> blockRoot for all blocks in the batch
|
|
674
|
+
const batchBlockRoots = new Map();
|
|
675
|
+
if (batchBlocks) {
|
|
676
|
+
for (const blockInput of batchBlocks) {
|
|
677
|
+
batchBlockRoots.set(blockInput.slot, fromHex(blockInput.blockRootHex));
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
for (const { block, blockRoot } of validatedBlocks) {
|
|
681
|
+
batchBlockRoots.set(block.message.slot, blockRoot);
|
|
682
|
+
}
|
|
683
|
+
const payloadEnvelopeMap = new Map();
|
|
684
|
+
for (const payloadEnvelope of payloadEnvelopes) {
|
|
685
|
+
const slot = payloadEnvelope.message.payload.slotNumber;
|
|
686
|
+
const batchBlockRoot = batchBlockRoots.get(slot);
|
|
687
|
+
// Envelopes for slots not in the batch are silently ignored (orphaned payloads)
|
|
688
|
+
if (batchBlockRoot === undefined) {
|
|
689
|
+
continue;
|
|
690
|
+
}
|
|
691
|
+
// Verify beaconBlockRoot matches the block's root
|
|
692
|
+
if (!byteArrayEquals(payloadEnvelope.message.beaconBlockRoot, batchBlockRoot)) {
|
|
693
|
+
throw new DownloadByRangeError({
|
|
694
|
+
code: DownloadByRangeErrorCode.INVALID_ENVELOPE_BEACON_BLOCK_ROOT,
|
|
695
|
+
slot,
|
|
696
|
+
expected: toRootHex(batchBlockRoot),
|
|
697
|
+
actual: toRootHex(payloadEnvelope.message.beaconBlockRoot),
|
|
698
|
+
});
|
|
699
|
+
}
|
|
700
|
+
payloadEnvelopeMap.set(slot, payloadEnvelope);
|
|
701
|
+
}
|
|
702
|
+
return payloadEnvelopeMap;
|
|
703
|
+
}
|
|
581
704
|
//# sourceMappingURL=downloadByRange.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadByRange.js","sourceRoot":"","sources":["../../../src/sync/utils/downloadByRange.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"downloadByRange.js","sourceRoot":"","sources":["../../../src/sync/utils/downloadByRange.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.43.0-dev.
|
|
14
|
+
"version": "1.43.0-dev.180030f946",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -135,18 +135,18 @@
|
|
|
135
135
|
"@libp2p/peer-id": "^6.0.4",
|
|
136
136
|
"@libp2p/prometheus-metrics": "^5.0.14",
|
|
137
137
|
"@libp2p/tcp": "^11.0.13",
|
|
138
|
-
"@lodestar/api": "^1.43.0-dev.
|
|
139
|
-
"@lodestar/config": "^1.43.0-dev.
|
|
140
|
-
"@lodestar/db": "^1.43.0-dev.
|
|
141
|
-
"@lodestar/fork-choice": "^1.43.0-dev.
|
|
142
|
-
"@lodestar/light-client": "^1.43.0-dev.
|
|
143
|
-
"@lodestar/logger": "^1.43.0-dev.
|
|
144
|
-
"@lodestar/params": "^1.43.0-dev.
|
|
145
|
-
"@lodestar/reqresp": "^1.43.0-dev.
|
|
146
|
-
"@lodestar/state-transition": "^1.43.0-dev.
|
|
147
|
-
"@lodestar/types": "^1.43.0-dev.
|
|
148
|
-
"@lodestar/utils": "^1.43.0-dev.
|
|
149
|
-
"@lodestar/validator": "^1.43.0-dev.
|
|
138
|
+
"@lodestar/api": "^1.43.0-dev.180030f946",
|
|
139
|
+
"@lodestar/config": "^1.43.0-dev.180030f946",
|
|
140
|
+
"@lodestar/db": "^1.43.0-dev.180030f946",
|
|
141
|
+
"@lodestar/fork-choice": "^1.43.0-dev.180030f946",
|
|
142
|
+
"@lodestar/light-client": "^1.43.0-dev.180030f946",
|
|
143
|
+
"@lodestar/logger": "^1.43.0-dev.180030f946",
|
|
144
|
+
"@lodestar/params": "^1.43.0-dev.180030f946",
|
|
145
|
+
"@lodestar/reqresp": "^1.43.0-dev.180030f946",
|
|
146
|
+
"@lodestar/state-transition": "^1.43.0-dev.180030f946",
|
|
147
|
+
"@lodestar/types": "^1.43.0-dev.180030f946",
|
|
148
|
+
"@lodestar/utils": "^1.43.0-dev.180030f946",
|
|
149
|
+
"@lodestar/validator": "^1.43.0-dev.180030f946",
|
|
150
150
|
"@multiformats/multiaddr": "^13.0.1",
|
|
151
151
|
"datastore-core": "^11.0.2",
|
|
152
152
|
"datastore-fs": "^11.0.2",
|
|
@@ -169,10 +169,11 @@
|
|
|
169
169
|
"@libp2p/interface-internal": "^3.0.13",
|
|
170
170
|
"@libp2p/logger": "^6.2.2",
|
|
171
171
|
"@libp2p/utils": "^7.0.13",
|
|
172
|
-
"@lodestar/spec-test-util": "^1.43.0-dev.
|
|
172
|
+
"@lodestar/spec-test-util": "^1.43.0-dev.180030f946",
|
|
173
173
|
"@types/js-yaml": "^4.0.5",
|
|
174
174
|
"@types/qs": "^6.9.7",
|
|
175
175
|
"@types/tmp": "^0.2.3",
|
|
176
|
+
"dotenv": "^16.4.5",
|
|
176
177
|
"js-yaml": "^4.1.0",
|
|
177
178
|
"rewiremock": "^3.14.5",
|
|
178
179
|
"rimraf": "^4.4.1",
|
|
@@ -186,5 +187,5 @@
|
|
|
186
187
|
"beacon",
|
|
187
188
|
"blockchain"
|
|
188
189
|
],
|
|
189
|
-
"gitHead": "
|
|
190
|
+
"gitHead": "3e78ffe668f4ac5a1a6be8486f6338ee1111590a"
|
|
190
191
|
}
|
|
@@ -234,7 +234,7 @@ export function getBeaconBlockApi({
|
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
try {
|
|
237
|
-
await verifyBlocksInEpoch.call(chain as BeaconChain, parentBlock, [blockForImport], {
|
|
237
|
+
await verifyBlocksInEpoch.call(chain as BeaconChain, parentBlock, [blockForImport], null, {
|
|
238
238
|
...opts,
|
|
239
239
|
verifyOnly: true,
|
|
240
240
|
skipVerifyBlockSignatures: true,
|