@lodestar/beacon-node 1.34.0-dev.d5a4e7a09c → 1.34.0-dev.d9fc7bb103
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 +162 -55
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/pool/index.js +3 -3
- package/lib/api/impl/beacon/pool/index.js.map +1 -1
- package/lib/api/impl/beacon/state/index.js +15 -16
- package/lib/api/impl/beacon/state/index.js.map +1 -1
- package/lib/api/impl/debug/index.d.ts +1 -1
- package/lib/api/impl/debug/index.js +24 -1
- package/lib/api/impl/debug/index.js.map +1 -1
- package/lib/api/impl/validator/index.js +37 -26
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/api/impl/validator/utils.d.ts +3 -3
- package/lib/api/impl/validator/utils.js +2 -2
- package/lib/api/impl/validator/utils.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.d.ts +1 -1
- package/lib/chain/archiveStore/archiveStore.js +2 -2
- package/lib/chain/archiveStore/interface.d.ts +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.js +89 -22
- package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
- package/lib/chain/beaconProposerCache.d.ts +1 -0
- package/lib/chain/beaconProposerCache.js +3 -0
- package/lib/chain/beaconProposerCache.js.map +1 -1
- package/lib/chain/blocks/importBlock.js +3 -2
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/types.d.ts +66 -23
- package/lib/chain/blocks/types.js +39 -5
- package/lib/chain/blocks/types.js.map +1 -1
- package/lib/chain/blocks/utils/zebraBanner.d.ts +2 -0
- package/lib/chain/blocks/utils/zebraBanner.js +45 -0
- package/lib/chain/blocks/utils/zebraBanner.js.map +1 -0
- package/lib/chain/blocks/verifyBlock.js +18 -5
- package/lib/chain/blocks/verifyBlock.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.js +21 -10
- package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js +63 -16
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/chain.d.ts +18 -101
- package/lib/chain/chain.js +107 -68
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +18 -2
- package/lib/chain/emitter.js +13 -0
- package/lib/chain/emitter.js.map +1 -1
- package/lib/chain/errors/dataColumnSidecarError.d.ts +69 -0
- package/lib/chain/errors/dataColumnSidecarError.js +21 -0
- package/lib/chain/errors/dataColumnSidecarError.js.map +1 -0
- package/lib/chain/errors/index.d.ts +1 -0
- package/lib/chain/errors/index.js +1 -0
- package/lib/chain/errors/index.js.map +1 -1
- package/lib/chain/interface.d.ts +6 -7
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/options.d.ts +4 -1
- package/lib/chain/options.js +1 -0
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/prepareNextSlot.js +2 -1
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +30 -16
- package/lib/chain/produceBlock/produceBlockBody.js +28 -28
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +6 -3
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +28 -4
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.d.ts +64 -18
- package/lib/chain/seenCache/seenGossipBlockInput.js +321 -53
- package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts +29 -0
- package/lib/chain/validation/dataColumnSidecar.js +248 -0
- package/lib/chain/validation/dataColumnSidecar.js.map +1 -0
- package/lib/db/beacon.d.ts +3 -1
- package/lib/db/beacon.js +3 -1
- package/lib/db/beacon.js.map +1 -1
- package/lib/db/buckets.d.ts +3 -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/repositories/dataColumnSidecar.d.ts +26 -0
- package/lib/db/repositories/dataColumnSidecar.js +39 -0
- package/lib/db/repositories/dataColumnSidecar.js.map +1 -0
- package/lib/db/repositories/dataColumnSidecarArchive.d.ts +24 -0
- package/lib/db/repositories/dataColumnSidecarArchive.js +39 -0
- package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -0
- package/lib/db/repositories/index.d.ts +2 -0
- package/lib/db/repositories/index.js +2 -0
- package/lib/db/repositories/index.js.map +1 -1
- package/lib/execution/builder/http.d.ts +20 -4
- package/lib/execution/builder/http.js +30 -11
- package/lib/execution/builder/http.js.map +1 -1
- package/lib/execution/builder/interface.d.ts +5 -4
- package/lib/execution/engine/http.d.ts +8 -5
- package/lib/execution/engine/http.js +56 -42
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +6 -13
- package/lib/execution/engine/interface.js +1 -1
- package/lib/execution/engine/interface.js.map +1 -1
- package/lib/execution/engine/mock.d.ts +1 -0
- package/lib/execution/engine/mock.js +5 -0
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/types.d.ts +12 -2
- package/lib/execution/engine/types.js +8 -2
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/metrics/metrics/beacon.d.ts +15 -5
- package/lib/metrics/metrics/beacon.js +61 -14
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +29 -1
- package/lib/metrics/metrics/lodestar.js +59 -0
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/core/metrics.d.ts +10 -3
- package/lib/network/core/metrics.js +22 -4
- package/lib/network/core/metrics.js.map +1 -1
- package/lib/network/core/networkCore.d.ts +15 -4
- package/lib/network/core/networkCore.js +73 -23
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/core/networkCoreWorker.js +2 -0
- package/lib/network/core/networkCoreWorker.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.d.ts +5 -3
- package/lib/network/core/networkCoreWorkerHandler.js +6 -1
- package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
- package/lib/network/core/types.d.ts +7 -4
- package/lib/network/events.d.ts +4 -2
- package/lib/network/events.js.map +1 -1
- package/lib/network/gossip/gossipsub.d.ts +2 -2
- package/lib/network/gossip/gossipsub.js +8 -6
- package/lib/network/gossip/gossipsub.js.map +1 -1
- package/lib/network/gossip/interface.d.ts +8 -1
- package/lib/network/gossip/interface.js +1 -0
- package/lib/network/gossip/interface.js.map +1 -1
- package/lib/network/gossip/scoringParameters.d.ts +6 -2
- package/lib/network/gossip/scoringParameters.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +2033 -1484
- package/lib/network/gossip/topic.js +29 -1
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/interface.d.ts +11 -3
- package/lib/network/metadata.d.ts +9 -5
- package/lib/network/metadata.js +26 -5
- package/lib/network/metadata.js.map +1 -1
- package/lib/network/network.d.ts +14 -4
- package/lib/network/network.js +73 -11
- package/lib/network/network.js.map +1 -1
- package/lib/network/networkConfig.d.ts +12 -0
- package/lib/network/networkConfig.js +2 -0
- package/lib/network/networkConfig.js.map +1 -0
- package/lib/network/options.d.ts +1 -0
- package/lib/network/options.js +5 -0
- package/lib/network/options.js.map +1 -1
- package/lib/network/peers/discover.d.ts +8 -3
- package/lib/network/peers/discover.js +99 -14
- package/lib/network/peers/discover.js.map +1 -1
- package/lib/network/peers/peerManager.d.ts +10 -4
- package/lib/network/peers/peerManager.js +105 -19
- package/lib/network/peers/peerManager.js.map +1 -1
- package/lib/network/peers/peersData.d.ts +17 -3
- package/lib/network/peers/peersData.js.map +1 -1
- package/lib/network/peers/score/interface.d.ts +1 -1
- package/lib/network/peers/score/score.d.ts +2 -2
- package/lib/network/peers/score/score.js +4 -1
- package/lib/network/peers/score/score.js.map +1 -1
- package/lib/network/peers/score/store.d.ts +3 -1
- package/lib/network/peers/score/store.js +6 -2
- package/lib/network/peers/score/store.js.map +1 -1
- package/lib/network/peers/utils/assertPeerRelevance.d.ts +7 -3
- package/lib/network/peers/utils/assertPeerRelevance.js +10 -1
- package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
- package/lib/network/peers/utils/prioritizePeers.d.ts +19 -7
- package/lib/network/peers/utils/prioritizePeers.js +42 -6
- package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
- package/lib/network/processor/extractSlotRootFns.js +8 -1
- package/lib/network/processor/extractSlotRootFns.js.map +1 -1
- package/lib/network/processor/gossipHandlers.js +165 -16
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipQueues/index.js +5 -0
- package/lib/network/processor/gossipQueues/index.js.map +1 -1
- package/lib/network/processor/index.js +1 -0
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.d.ts +2 -2
- package/lib/network/reqresp/ReqRespBeaconNode.js +36 -14
- package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +24 -4
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +259 -20
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +37 -6
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +283 -28
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -3
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts +2 -2
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +2 -2
- package/lib/network/reqresp/handlers/blobSidecarsByRange.js +2 -3
- package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +8 -0
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +73 -0
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -0
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +6 -0
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +36 -0
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -0
- package/lib/network/reqresp/handlers/index.js +13 -2
- package/lib/network/reqresp/handlers/index.js.map +1 -1
- package/lib/network/reqresp/protocols.d.ts +4 -0
- package/lib/network/reqresp/protocols.js +20 -0
- package/lib/network/reqresp/protocols.js.map +1 -1
- package/lib/network/reqresp/rateLimit.js +19 -3
- package/lib/network/reqresp/rateLimit.js.map +1 -1
- package/lib/network/reqresp/score.js +3 -0
- package/lib/network/reqresp/score.js.map +1 -1
- package/lib/network/reqresp/types.d.ts +13 -6
- package/lib/network/reqresp/types.js +14 -5
- package/lib/network/reqresp/types.js.map +1 -1
- package/lib/network/statusCache.d.ts +5 -5
- package/lib/network/statusCache.js.map +1 -1
- package/lib/network/subnets/interface.d.ts +3 -0
- package/lib/network/subnets/interface.js +14 -1
- package/lib/network/subnets/interface.js.map +1 -1
- package/lib/network/subnets/syncnetsService.js +4 -5
- package/lib/network/subnets/syncnetsService.js.map +1 -1
- package/lib/node/nodejs.js +1 -0
- package/lib/node/nodejs.js.map +1 -1
- package/lib/sync/constants.d.ts +18 -3
- package/lib/sync/constants.js +21 -3
- package/lib/sync/constants.js.map +1 -1
- package/lib/sync/interface.d.ts +2 -2
- package/lib/sync/interface.js +1 -1
- package/lib/sync/interface.js.map +1 -1
- package/lib/sync/range/batch.d.ts +17 -2
- package/lib/sync/range/batch.js +39 -7
- package/lib/sync/range/batch.js.map +1 -1
- package/lib/sync/range/chain.d.ts +15 -1
- package/lib/sync/range/chain.js +124 -33
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.d.ts +3 -2
- package/lib/sync/range/range.js +9 -3
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/range/utils/chainTarget.d.ts +5 -1
- package/lib/sync/range/utils/chainTarget.js +26 -1
- package/lib/sync/range/utils/chainTarget.js.map +1 -1
- package/lib/sync/range/utils/peerBalancer.d.ts +19 -5
- package/lib/sync/range/utils/peerBalancer.js +104 -10
- package/lib/sync/range/utils/peerBalancer.js.map +1 -1
- package/lib/sync/sync.js +1 -1
- package/lib/sync/sync.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts +54 -5
- package/lib/sync/unknownBlock.js +321 -61
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/sync/utils/remoteSyncType.d.ts +4 -4
- package/lib/sync/utils/remoteSyncType.js.map +1 -1
- package/lib/util/blobs.d.ts +16 -4
- package/lib/util/blobs.js +122 -5
- package/lib/util/blobs.js.map +1 -1
- package/lib/util/dataColumns.d.ts +137 -0
- package/lib/util/dataColumns.js +358 -0
- package/lib/util/dataColumns.js.map +1 -0
- package/lib/util/metadata.d.ts +5 -0
- package/lib/util/metadata.js +10 -0
- package/lib/util/metadata.js.map +1 -1
- package/lib/util/sszBytes.d.ts +1 -0
- package/lib/util/sszBytes.js +17 -0
- package/lib/util/sszBytes.js.map +1 -1
- package/lib/util/types.d.ts +7 -0
- package/lib/util/types.js +3 -0
- package/lib/util/types.js.map +1 -1
- package/package.json +18 -18
- package/lib/network/reqresp/handlers/status.d.ts +0 -4
- package/lib/network/reqresp/handlers/status.js +0 -11
- package/lib/network/reqresp/handlers/status.js.map +0 -1
|
@@ -3,55 +3,159 @@ import { routes } from "@lodestar/api";
|
|
|
3
3
|
import { ForkName, ForkSeq } from "@lodestar/params";
|
|
4
4
|
import { signedBlockToSignedHeader } from "@lodestar/state-transition";
|
|
5
5
|
import { fromHex, toHex } from "@lodestar/utils";
|
|
6
|
-
import { BlobsSource, BlockInputType, BlockSource, getBlockInput, getBlockInputBlobs, } from "../../chain/blocks/types.js";
|
|
6
|
+
import { BlobsSource, BlockInputType, BlockSource, DataColumnsSource, getBlockInput, getBlockInputBlobs, getBlockInputDataColumns, } from "../../chain/blocks/types.js";
|
|
7
7
|
import { BlockInputAvailabilitySource } from "../../chain/seenCache/seenGossipBlockInput.js";
|
|
8
8
|
import { computeInclusionProof, kzgCommitmentToVersionedHash } from "../../util/blobs.js";
|
|
9
|
-
import {
|
|
9
|
+
import { getDataColumnsFromExecution } from "../../util/dataColumns.js";
|
|
10
|
+
import { SyncSourceByRoot, matchBlockWithBlobs, matchBlockWithDataColumns, } from "./beaconBlocksMaybeBlobsByRange.js";
|
|
10
11
|
// keep 1 epoch of stuff, assmume 16 blobs
|
|
11
12
|
const MAX_ENGINE_GETBLOBS_CACHE = 32 * 16;
|
|
12
13
|
const MAX_UNAVAILABLE_RETRY_CACHE = 32;
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Request beacon blocks by root, and blobs or data columns if available.
|
|
16
|
+
* return BlockInput[] along with pendingDataColumns (null for prefulu forks for postfulu where data is available)
|
|
17
|
+
*/
|
|
18
|
+
export async function beaconBlocksMaybeBlobsByRoot(config, network, peerId, request, partialDownload, peerClient, metrics, logger) {
|
|
19
|
+
// console.log("beaconBlocksMaybeBlobsByRoot", request);
|
|
20
|
+
const allBlocks = partialDownload
|
|
21
|
+
? partialDownload.blocks.map((blockInput) => ({ data: blockInput.block }))
|
|
22
|
+
: await network.sendBeaconBlocksByRoot(peerId, request);
|
|
23
|
+
logger?.debug("beaconBlocksMaybeBlobsByRoot response", { allBlocks: allBlocks.length, peerClient });
|
|
24
|
+
const preDataBlocks = [];
|
|
25
|
+
const blobsDataBlocks = [];
|
|
26
|
+
const dataColumnsDataBlocks = [];
|
|
27
|
+
const sampledColumns = network.custodyConfig.sampledColumns;
|
|
28
|
+
const neededColumns = partialDownload ? partialDownload.pendingDataColumns : sampledColumns;
|
|
29
|
+
const { custodyGroups: peerColumns } = network.getConnectedPeerSyncMeta(peerId);
|
|
30
|
+
// get match
|
|
31
|
+
const columns = peerColumns.reduce((acc, elem) => {
|
|
32
|
+
if (neededColumns.includes(elem)) {
|
|
33
|
+
acc.push(elem);
|
|
34
|
+
}
|
|
35
|
+
return acc;
|
|
36
|
+
}, []);
|
|
37
|
+
let pendingDataColumns = null;
|
|
15
38
|
const blobIdentifiers = [];
|
|
39
|
+
const dataColumnsByRootIdentifiers = [];
|
|
40
|
+
let prevFork = null;
|
|
16
41
|
for (const block of allBlocks) {
|
|
17
42
|
const slot = block.data.message.slot;
|
|
18
43
|
const blockRoot = config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block.data.message);
|
|
19
44
|
const fork = config.getForkName(slot);
|
|
20
|
-
if (
|
|
45
|
+
if (fork !== (prevFork ?? fork)) {
|
|
46
|
+
throw Error("beaconBlocksMaybeBlobsByRoot only accepts requests of same fork");
|
|
47
|
+
}
|
|
48
|
+
prevFork = fork;
|
|
49
|
+
if (ForkSeq[fork] < ForkSeq.deneb) {
|
|
50
|
+
preDataBlocks.push(block);
|
|
51
|
+
}
|
|
52
|
+
else if (fork === ForkName.deneb || fork === ForkName.electra) {
|
|
53
|
+
blobsDataBlocks.push(block);
|
|
21
54
|
const blobKzgCommitmentsLen = block.data.message.body.blobKzgCommitments.length;
|
|
55
|
+
logger?.debug("beaconBlocksMaybeBlobsByRoot", { blobKzgCommitmentsLen, peerClient });
|
|
22
56
|
for (let index = 0; index < blobKzgCommitmentsLen; index++) {
|
|
23
57
|
// try see if the blob is available locally
|
|
24
58
|
blobIdentifiers.push({ blockRoot, index });
|
|
25
59
|
}
|
|
26
60
|
}
|
|
61
|
+
else if (fork === ForkName.fulu) {
|
|
62
|
+
dataColumnsDataBlocks.push(block);
|
|
63
|
+
const blobKzgCommitmentsLen = block.data.message.body.blobKzgCommitments.length;
|
|
64
|
+
const custodyColumnIndexes = blobKzgCommitmentsLen > 0 ? columns : [];
|
|
65
|
+
if (custodyColumnIndexes.length > 0) {
|
|
66
|
+
dataColumnsByRootIdentifiers.push({
|
|
67
|
+
blockRoot,
|
|
68
|
+
columns: custodyColumnIndexes,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
throw Error(`Invalid fork=${fork} in beaconBlocksMaybeBlobsByRoot`);
|
|
74
|
+
}
|
|
27
75
|
}
|
|
28
|
-
let
|
|
29
|
-
if (
|
|
30
|
-
allBlobSidecars
|
|
76
|
+
let blockInputs = preDataBlocks.map((block) => getBlockInput.preData(config, block.data, BlockSource.byRoot));
|
|
77
|
+
if (blobsDataBlocks.length > 0) {
|
|
78
|
+
let allBlobSidecars;
|
|
79
|
+
if (blobIdentifiers.length > 0) {
|
|
80
|
+
allBlobSidecars = await network.sendBlobSidecarsByRoot(peerId, blobIdentifiers);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
allBlobSidecars = [];
|
|
84
|
+
}
|
|
85
|
+
// The last arg is to provide slot to which all blobs should be exausted in matching
|
|
86
|
+
// and here it should be infinity since all bobs should match
|
|
87
|
+
const blockInputWithBlobs = matchBlockWithBlobs(config, allBlocks, allBlobSidecars, Infinity, BlockSource.byRoot, BlobsSource.byRoot, SyncSourceByRoot);
|
|
88
|
+
blockInputs = [...blockInputs, ...blockInputWithBlobs];
|
|
31
89
|
}
|
|
32
|
-
|
|
33
|
-
|
|
90
|
+
if (dataColumnsDataBlocks.length > 0) {
|
|
91
|
+
pendingDataColumns = neededColumns.reduce((acc, elem) => {
|
|
92
|
+
if (!columns.includes(elem)) {
|
|
93
|
+
acc.push(elem);
|
|
94
|
+
}
|
|
95
|
+
return acc;
|
|
96
|
+
}, []);
|
|
97
|
+
let allDataColumnsSidecars;
|
|
98
|
+
logger?.debug("allDataColumnsSidecars partialDownload", {
|
|
99
|
+
...(partialDownload
|
|
100
|
+
? { blocks: partialDownload.blocks.length, pendingDataColumns: partialDownload.pendingDataColumns.join(" ") }
|
|
101
|
+
: { blocks: null, pendingDataColumns: null }),
|
|
102
|
+
dataColumnIdentifiers: dataColumnsByRootIdentifiers
|
|
103
|
+
.map((id) => `${id.blockRoot}: ${id.columns.join(" ")}`)
|
|
104
|
+
.join(" "),
|
|
105
|
+
peerClient,
|
|
106
|
+
});
|
|
107
|
+
if (dataColumnsByRootIdentifiers.length > 0) {
|
|
108
|
+
allDataColumnsSidecars = await network.sendDataColumnSidecarsByRoot(peerId, dataColumnsByRootIdentifiers);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
if (partialDownload !== null) {
|
|
112
|
+
return partialDownload;
|
|
113
|
+
}
|
|
114
|
+
allDataColumnsSidecars = [];
|
|
115
|
+
}
|
|
116
|
+
// The last arg is to provide slot to which all blobs should be exausted in matching
|
|
117
|
+
// and here it should be infinity since all bobs should match
|
|
118
|
+
// TODO: should not call matchBlockWithDataColumns() because it's supposed for range sync
|
|
119
|
+
// in that function, peers should return all requested data columns, this function runs at gossip time
|
|
120
|
+
// and it should not expect that
|
|
121
|
+
const blockInputWithBlobs = matchBlockWithDataColumns(network, peerId, config, sampledColumns, columns, allBlocks, allDataColumnsSidecars, Infinity, BlockSource.byRoot, DataColumnsSource.byRoot, partialDownload, peerClient, SyncSourceByRoot, metrics, logger);
|
|
122
|
+
blockInputs = [...blockInputs, ...blockInputWithBlobs];
|
|
34
123
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
124
|
+
return {
|
|
125
|
+
blocks: blockInputs,
|
|
126
|
+
pendingDataColumns: pendingDataColumns && pendingDataColumns.length > 0 ? pendingDataColumns : null,
|
|
127
|
+
};
|
|
38
128
|
}
|
|
39
|
-
export async function unavailableBeaconBlobsByRoot(config, network, peerId, unavailableBlockInput, opts) {
|
|
40
|
-
const { executionEngine, metrics, emitter, engineGetBlobsCache, blockInputsRetryTrackerCache } = opts;
|
|
129
|
+
export async function unavailableBeaconBlobsByRoot(config, network, peerId, peerClient, unavailableBlockInput, opts) {
|
|
41
130
|
if (unavailableBlockInput.block !== null && unavailableBlockInput.type !== BlockInputType.dataPromise) {
|
|
42
131
|
return unavailableBlockInput;
|
|
43
132
|
}
|
|
44
133
|
// resolve the block if thats unavailable
|
|
45
|
-
let block,
|
|
134
|
+
let block, cachedData;
|
|
46
135
|
if (unavailableBlockInput.block === null) {
|
|
47
136
|
const allBlocks = await network.sendBeaconBlocksByRoot(peerId, [fromHex(unavailableBlockInput.blockRootHex)]);
|
|
48
137
|
block = allBlocks[0].data;
|
|
49
138
|
cachedData = unavailableBlockInput.cachedData;
|
|
50
|
-
(
|
|
139
|
+
unavailableBlockInput = getBlockInput.dataPromise(config, block, BlockSource.byRoot, cachedData);
|
|
51
140
|
}
|
|
52
141
|
else {
|
|
53
142
|
({ block, cachedData } = unavailableBlockInput);
|
|
54
|
-
|
|
143
|
+
}
|
|
144
|
+
const forkSeq = config.getForkSeq(block.message.slot);
|
|
145
|
+
if (forkSeq < ForkSeq.fulu) {
|
|
146
|
+
return unavailableBeaconBlobsByRootPreFulu(config, network, peerId, unavailableBlockInput, block, cachedData, opts);
|
|
147
|
+
}
|
|
148
|
+
return unavailableBeaconBlobsByRootPostFulu(config, network, peerId, peerClient, unavailableBlockInput, block, cachedData, {
|
|
149
|
+
metrics: opts.metrics,
|
|
150
|
+
executionEngine: opts.executionEngine,
|
|
151
|
+
emitter: opts.emitter,
|
|
152
|
+
logger: opts.logger,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
export async function unavailableBeaconBlobsByRootPreFulu(config, network, peerId, unavailableBlockInput, block, cachedData, opts) {
|
|
156
|
+
const { executionEngine, metrics, emitter, engineGetBlobsCache, blockInputsRetryTrackerCache } = opts;
|
|
157
|
+
if (unavailableBlockInput.block !== null && unavailableBlockInput.type !== BlockInputType.dataPromise) {
|
|
158
|
+
return unavailableBlockInput;
|
|
55
159
|
}
|
|
56
160
|
// resolve missing blobs
|
|
57
161
|
const slot = block.message.slot;
|
|
@@ -72,7 +176,7 @@ export async function unavailableBeaconBlobsByRoot(config, network, peerId, unav
|
|
|
72
176
|
const networkReqIdentifiers = [];
|
|
73
177
|
let getBlobsUseful = false;
|
|
74
178
|
for (let index = 0; index < blobKzgCommitmentsLen; index++) {
|
|
75
|
-
if (blobsCache.has(index) === false) {
|
|
179
|
+
if (cachedData.blobsCache.has(index) === false) {
|
|
76
180
|
const kzgCommitment = block.message.body.blobKzgCommitments[index];
|
|
77
181
|
const versionedHash = kzgCommitmentToVersionedHash(kzgCommitment);
|
|
78
182
|
// check if the getblobs cache has the data if block not been queried before
|
|
@@ -88,7 +192,7 @@ export async function unavailableBeaconBlobsByRoot(config, network, peerId, unav
|
|
|
88
192
|
const { blob, proof: kzgProof } = catchedBlobAndProof;
|
|
89
193
|
const kzgCommitmentInclusionProof = computeInclusionProof(fork, block.message.body, index);
|
|
90
194
|
const blobSidecar = { index, blob, kzgCommitment, kzgProof, signedBlockHeader, kzgCommitmentInclusionProof };
|
|
91
|
-
blobsCache.set(blobSidecar.index, blobSidecar);
|
|
195
|
+
cachedData.blobsCache.set(blobSidecar.index, blobSidecar);
|
|
92
196
|
}
|
|
93
197
|
}
|
|
94
198
|
else if (blockTriedBefore) {
|
|
@@ -122,7 +226,7 @@ export async function unavailableBeaconBlobsByRoot(config, network, peerId, unav
|
|
|
122
226
|
if (blobAndProof !== null) {
|
|
123
227
|
metrics?.blockInputFetchStats.dataPromiseBlobsEngineGetBlobsApiNotNull.inc();
|
|
124
228
|
// if we already got it by now, save the compute
|
|
125
|
-
if (blobsCache.has(engineReqIdentifiers[j].index) === false) {
|
|
229
|
+
if (cachedData.blobsCache.has(engineReqIdentifiers[j].index) === false) {
|
|
126
230
|
metrics?.blockInputFetchStats.dataPromiseBlobsEngineApiGetBlobsUseful.inc();
|
|
127
231
|
getBlobsUseful = true;
|
|
128
232
|
const { blob, proof: kzgProof } = blobAndProof;
|
|
@@ -132,8 +236,8 @@ export async function unavailableBeaconBlobsByRoot(config, network, peerId, unav
|
|
|
132
236
|
// add them in cache so that its reflected in all the blockInputs that carry this
|
|
133
237
|
// for e.g. a blockInput that might be awaiting blobs promise fullfillment in
|
|
134
238
|
// verifyBlocksDataAvailability
|
|
135
|
-
blobsCache.set(blobSidecar.index, blobSidecar);
|
|
136
|
-
if (emitter
|
|
239
|
+
cachedData.blobsCache.set(blobSidecar.index, blobSidecar);
|
|
240
|
+
if (emitter.listenerCount(routes.events.EventType.blobSidecar)) {
|
|
137
241
|
emitter.emit(routes.events.EventType.blobSidecar, {
|
|
138
242
|
blockRoot: blockRootHex,
|
|
139
243
|
slot,
|
|
@@ -151,7 +255,7 @@ export async function unavailableBeaconBlobsByRoot(config, network, peerId, unav
|
|
|
151
255
|
// may be blobsidecar arrived in the timespan of making the request
|
|
152
256
|
else {
|
|
153
257
|
metrics?.blockInputFetchStats.dataPromiseBlobsEngineGetBlobsApiNull.inc();
|
|
154
|
-
if (blobsCache.has(engineReqIdentifiers[j].index) === false) {
|
|
258
|
+
if (cachedData.blobsCache.has(engineReqIdentifiers[j].index) === false) {
|
|
155
259
|
const { blockRoot, index } = engineReqIdentifiers[j];
|
|
156
260
|
networkReqIdentifiers.push({ blockRoot, index });
|
|
157
261
|
}
|
|
@@ -205,8 +309,8 @@ export async function unavailableBeaconBlobsByRoot(config, network, peerId, unav
|
|
|
205
309
|
// for e.g. a blockInput that might be awaiting blobs promise fullfillment in
|
|
206
310
|
// verifyBlocksDataAvailability
|
|
207
311
|
for (const blobSidecar of networkResBlobSidecars) {
|
|
208
|
-
blobsCache.set(blobSidecar.index, blobSidecar);
|
|
209
|
-
if (emitter
|
|
312
|
+
cachedData.blobsCache.set(blobSidecar.index, blobSidecar);
|
|
313
|
+
if (emitter.listenerCount(routes.events.EventType.blobSidecar)) {
|
|
210
314
|
emitter.emit(routes.events.EventType.blobSidecar, {
|
|
211
315
|
blockRoot: blockRootHex,
|
|
212
316
|
slot,
|
|
@@ -218,13 +322,13 @@ export async function unavailableBeaconBlobsByRoot(config, network, peerId, unav
|
|
|
218
322
|
}
|
|
219
323
|
// check and see if all blobs are now available and in that case resolve availability
|
|
220
324
|
// if not this will error and the leftover blobs will be tried from another peer
|
|
221
|
-
const allBlobs = getBlockInputBlobs(blobsCache);
|
|
325
|
+
const allBlobs = getBlockInputBlobs(cachedData.blobsCache);
|
|
222
326
|
const { blobs } = allBlobs;
|
|
223
327
|
if (blobs.length !== blobKzgCommitmentsLen) {
|
|
224
328
|
throw Error(`Not all blobs fetched missingBlobs=${blobKzgCommitmentsLen - blobs.length}`);
|
|
225
329
|
}
|
|
226
330
|
const blockData = { fork: cachedData.fork, ...allBlobs, blobsSource: BlobsSource.byRoot };
|
|
227
|
-
resolveAvailability(blockData);
|
|
331
|
+
cachedData.resolveAvailability(blockData);
|
|
228
332
|
metrics?.syncUnknownBlock.resolveAvailabilitySource.inc({ source: BlockInputAvailabilitySource.UNKNOWN_SYNC });
|
|
229
333
|
metrics?.blockInputFetchStats.totalDataPromiseBlockInputsResolvedAvailable.inc();
|
|
230
334
|
if (getBlobsUseful) {
|
|
@@ -241,4 +345,155 @@ export async function unavailableBeaconBlobsByRoot(config, network, peerId, unav
|
|
|
241
345
|
}
|
|
242
346
|
return getBlockInput.availableData(config, block, BlockSource.byRoot, blockData);
|
|
243
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* Download more columns for a BlockInput
|
|
350
|
+
* - unavailableBlockInput should have block, but not enough blobs (deneb) or data columns (fulu)
|
|
351
|
+
*
|
|
352
|
+
* This function may return data promise, and consumer should continue with fetching more blobs or columns from other peers
|
|
353
|
+
* see UnknownBlockSync.fetchUnavailableBlockInput()
|
|
354
|
+
*/
|
|
355
|
+
export async function unavailableBeaconBlobsByRootPostFulu(config, network, peerId, peerClient, unavailableBlockInput, block, cachedData, opts) {
|
|
356
|
+
if (unavailableBlockInput.block !== null && unavailableBlockInput.type !== BlockInputType.dataPromise) {
|
|
357
|
+
return unavailableBlockInput;
|
|
358
|
+
}
|
|
359
|
+
if (cachedData.fork === ForkName.deneb || cachedData.fork === ForkName.electra) {
|
|
360
|
+
const { blobsCache, resolveAvailability } = cachedData;
|
|
361
|
+
// resolve missing blobs
|
|
362
|
+
const blobIdentifiers = [];
|
|
363
|
+
const slot = block.message.slot;
|
|
364
|
+
const blockRoot = config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block.message);
|
|
365
|
+
const blobKzgCommitmentsLen = block.message.body.blobKzgCommitments.length;
|
|
366
|
+
for (let index = 0; index < blobKzgCommitmentsLen; index++) {
|
|
367
|
+
if (blobsCache.has(index) === false)
|
|
368
|
+
blobIdentifiers.push({ blockRoot, index });
|
|
369
|
+
}
|
|
370
|
+
let allBlobSidecars;
|
|
371
|
+
if (blobIdentifiers.length > 0) {
|
|
372
|
+
allBlobSidecars = await network.sendBlobSidecarsByRoot(peerId, blobIdentifiers);
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
allBlobSidecars = [];
|
|
376
|
+
}
|
|
377
|
+
// add them in cache so that its reflected in all the blockInputs that carry this
|
|
378
|
+
// for e.g. a blockInput that might be awaiting blobs promise fullfillment in
|
|
379
|
+
// verifyBlocksDataAvailability
|
|
380
|
+
for (const blobSidecar of allBlobSidecars) {
|
|
381
|
+
blobsCache.set(blobSidecar.index, blobSidecar);
|
|
382
|
+
}
|
|
383
|
+
// check and see if all blobs are now available and in that case resolve availability
|
|
384
|
+
// if not this will error and the leftover blobs will be tried from another peer
|
|
385
|
+
const allBlobs = getBlockInputBlobs(blobsCache);
|
|
386
|
+
const { blobs } = allBlobs;
|
|
387
|
+
if (blobs.length !== blobKzgCommitmentsLen) {
|
|
388
|
+
throw Error(`Not all blobs fetched missingBlobs=${blobKzgCommitmentsLen - blobs.length}`);
|
|
389
|
+
}
|
|
390
|
+
const blockData = { fork: cachedData.fork, ...allBlobs, blobsSource: BlobsSource.byRoot };
|
|
391
|
+
resolveAvailability(blockData);
|
|
392
|
+
opts.metrics?.syncUnknownBlock.resolveAvailabilitySource.inc({ source: BlockInputAvailabilitySource.UNKNOWN_SYNC });
|
|
393
|
+
return getBlockInput.availableData(config, block, BlockSource.byRoot, blockData);
|
|
394
|
+
}
|
|
395
|
+
// fulu fork
|
|
396
|
+
const { dataColumnsCache, resolveAvailability } = cachedData;
|
|
397
|
+
// resolve missing blobs
|
|
398
|
+
const slot = block.message.slot;
|
|
399
|
+
const blockRoot = config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block.message);
|
|
400
|
+
const blobKzgCommitments = block.message.body.blobKzgCommitments;
|
|
401
|
+
if (blobKzgCommitments.length === 0) {
|
|
402
|
+
const blockData = {
|
|
403
|
+
fork: cachedData.fork,
|
|
404
|
+
dataColumns: [],
|
|
405
|
+
dataColumnsBytes: [],
|
|
406
|
+
dataColumnsSource: DataColumnsSource.gossip,
|
|
407
|
+
};
|
|
408
|
+
resolveAvailability(blockData);
|
|
409
|
+
opts.metrics?.syncUnknownBlock.resolveAvailabilitySource.inc({ source: BlockInputAvailabilitySource.UNKNOWN_SYNC });
|
|
410
|
+
return getBlockInput.availableData(config, block, BlockSource.byRoot, blockData);
|
|
411
|
+
}
|
|
412
|
+
const sampledColumns = network.custodyConfig.sampledColumns;
|
|
413
|
+
let neededColumns = sampledColumns.reduce((acc, elem) => {
|
|
414
|
+
if (dataColumnsCache.get(elem) === undefined) {
|
|
415
|
+
acc.push(elem);
|
|
416
|
+
}
|
|
417
|
+
return acc;
|
|
418
|
+
}, []);
|
|
419
|
+
let resolveBlockInput = null;
|
|
420
|
+
const blockInputPromise = new Promise((resolveCB) => {
|
|
421
|
+
resolveBlockInput = resolveCB;
|
|
422
|
+
});
|
|
423
|
+
if (resolveBlockInput === null) {
|
|
424
|
+
throw Error("Promise Constructor was not executed immediately");
|
|
425
|
+
}
|
|
426
|
+
const gotColumnsFromExecution = await getDataColumnsFromExecution(config, network.custodyConfig, opts.executionEngine, opts.emitter, {
|
|
427
|
+
fork: config.getForkName(block.message.slot),
|
|
428
|
+
block: block,
|
|
429
|
+
cachedData: cachedData,
|
|
430
|
+
blockInputPromise,
|
|
431
|
+
resolveBlockInput,
|
|
432
|
+
}, opts.metrics ?? null);
|
|
433
|
+
if (!gotColumnsFromExecution) {
|
|
434
|
+
const { custodyGroups: peerColumns } = network.getConnectedPeerSyncMeta(peerId);
|
|
435
|
+
// get match
|
|
436
|
+
const columns = peerColumns.reduce((acc, elem) => {
|
|
437
|
+
if (neededColumns.includes(elem)) {
|
|
438
|
+
acc.push(elem);
|
|
439
|
+
}
|
|
440
|
+
return acc;
|
|
441
|
+
}, []);
|
|
442
|
+
// this peer can't help fetching columns for this block
|
|
443
|
+
if (unavailableBlockInput.block !== null && columns.length === 0 && neededColumns.length > 0) {
|
|
444
|
+
return unavailableBlockInput;
|
|
445
|
+
}
|
|
446
|
+
let allDataColumnSidecars;
|
|
447
|
+
if (columns.length > 0) {
|
|
448
|
+
allDataColumnSidecars = await network.sendDataColumnSidecarsByRoot(peerId, [{ blockRoot, columns }]);
|
|
449
|
+
opts.metrics?.dataColumns.bySource.inc({ source: DataColumnsSource.byRoot }, allDataColumnSidecars.length);
|
|
450
|
+
}
|
|
451
|
+
else {
|
|
452
|
+
allDataColumnSidecars = [];
|
|
453
|
+
}
|
|
454
|
+
const logCtx = {
|
|
455
|
+
slot: block.message.slot,
|
|
456
|
+
requestedColumns: columns.join(","),
|
|
457
|
+
respondedColumns: allDataColumnSidecars.map((dcs) => dcs.index).join(","),
|
|
458
|
+
peerClient,
|
|
459
|
+
};
|
|
460
|
+
opts.logger?.verbose("unavailableBeaconBlobsByRootPostFulu: Requested data columns from peer", logCtx);
|
|
461
|
+
// the same to matchBlockWithDataColumns() without expecting requested data columns = responded data columns
|
|
462
|
+
// because at gossip time peer may not have enough column to return
|
|
463
|
+
for (const dataColumnSidecar of allDataColumnSidecars) {
|
|
464
|
+
dataColumnsCache.set(dataColumnSidecar.index, {
|
|
465
|
+
dataColumn: dataColumnSidecar,
|
|
466
|
+
// TODO: req/resp should return bytes here
|
|
467
|
+
dataColumnBytes: null,
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
// reevaluate needeColumns and resolve availability if possible
|
|
472
|
+
neededColumns = sampledColumns.reduce((acc, elem) => {
|
|
473
|
+
if (dataColumnsCache.get(elem) === undefined) {
|
|
474
|
+
acc.push(elem);
|
|
475
|
+
}
|
|
476
|
+
return acc;
|
|
477
|
+
}, []);
|
|
478
|
+
const logCtx = {
|
|
479
|
+
slot: block.message.slot,
|
|
480
|
+
neededColumns: neededColumns.join(","),
|
|
481
|
+
sampledColumns: sampledColumns.join(","),
|
|
482
|
+
};
|
|
483
|
+
if (neededColumns.length === 0) {
|
|
484
|
+
const { dataColumns, dataColumnsBytes } = getBlockInputDataColumns(cachedData.dataColumnsCache, sampledColumns);
|
|
485
|
+
// don't forget to resolve availability as the block may be stuck in availability wait
|
|
486
|
+
const blockData = {
|
|
487
|
+
fork: config.getForkName(block.message.slot),
|
|
488
|
+
dataColumns,
|
|
489
|
+
dataColumnsBytes,
|
|
490
|
+
dataColumnsSource: DataColumnsSource.byRoot,
|
|
491
|
+
};
|
|
492
|
+
resolveAvailability(blockData);
|
|
493
|
+
opts.logger?.verbose("unavailableBeaconBlobsByRootPostFulu: Resolved availability for block with all data columns", logCtx);
|
|
494
|
+
return getBlockInput.availableData(config, block, BlockSource.byRoot, blockData);
|
|
495
|
+
}
|
|
496
|
+
opts.logger?.verbose("unavailableBeaconBlobsByRootPostFulu: Still missing data columns for block", logCtx);
|
|
497
|
+
return getBlockInput.dataPromise(config, block, BlockSource.byRoot, cachedData);
|
|
498
|
+
}
|
|
244
499
|
//# sourceMappingURL=beaconBlocksMaybeBlobsByRoot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beaconBlocksMaybeBlobsByRoot.js","sourceRoot":"","sources":["../../../src/network/reqresp/beaconBlocksMaybeBlobsByRoot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"beaconBlocksMaybeBlobsByRoot.js","sourceRoot":"","sources":["../../../src/network/reqresp/beaconBlocksMaybeBlobsByRoot.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,5 @@ import { deneb, phase0 } from "@lodestar/types";
|
|
|
4
4
|
import { IBeaconChain } from "../../../chain/index.js";
|
|
5
5
|
import { IBeaconDb } from "../../../db/index.js";
|
|
6
6
|
export declare function onBeaconBlocksByRange(request: phase0.BeaconBlocksByRangeRequest, chain: IBeaconChain, db: IBeaconDb): AsyncIterable<ResponseOutgoing>;
|
|
7
|
-
export declare function validateBeaconBlocksByRangeRequest(config: BeaconConfig, request:
|
|
7
|
+
export declare function validateBeaconBlocksByRangeRequest(config: BeaconConfig, request: phase0.BeaconBlocksByRangeRequest): deneb.BlobSidecarsByRangeRequest;
|
|
8
8
|
//# sourceMappingURL=beaconBlocksByRange.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GENESIS_SLOT,
|
|
1
|
+
import { GENESIS_SLOT, isForkPostDeneb } from "@lodestar/params";
|
|
2
2
|
import { RespStatus, ResponseError } from "@lodestar/reqresp";
|
|
3
3
|
import { computeEpochAtSlot } from "@lodestar/state-transition";
|
|
4
4
|
import { fromHex } from "@lodestar/utils";
|
|
@@ -63,8 +63,8 @@ export function validateBeaconBlocksByRangeRequest(config, request) {
|
|
|
63
63
|
}
|
|
64
64
|
// step > 1 is deprecated, see https://github.com/ethereum/consensus-specs/pull/2856
|
|
65
65
|
const maxRequestBlocks = isForkPostDeneb(config.getForkName(startSlot))
|
|
66
|
-
? MAX_REQUEST_BLOCKS_DENEB
|
|
67
|
-
: MAX_REQUEST_BLOCKS;
|
|
66
|
+
? config.MAX_REQUEST_BLOCKS_DENEB
|
|
67
|
+
: config.MAX_REQUEST_BLOCKS;
|
|
68
68
|
if (count > maxRequestBlocks) {
|
|
69
69
|
count = maxRequestBlocks;
|
|
70
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beaconBlocksByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/beaconBlocksByRange.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"beaconBlocksByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/beaconBlocksByRange.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ResponseOutgoing } from "@lodestar/reqresp";
|
|
2
|
-
import { phase0 } from "@lodestar/types";
|
|
3
2
|
import { IBeaconChain } from "../../../chain/index.js";
|
|
4
3
|
import { IBeaconDb } from "../../../db/index.js";
|
|
5
|
-
|
|
4
|
+
import { BeaconBlocksByRootRequest } from "../../../util/types.js";
|
|
5
|
+
export declare function onBeaconBlocksByRoot(requestBody: BeaconBlocksByRootRequest, chain: IBeaconChain, db: IBeaconDb): AsyncIterable<ResponseOutgoing>;
|
|
6
6
|
//# sourceMappingURL=beaconBlocksByRoot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beaconBlocksByRoot.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/beaconBlocksByRoot.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG1C,OAAO,EAAC,sCAAsC,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"beaconBlocksByRoot.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/beaconBlocksByRoot.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG1C,OAAO,EAAC,sCAAsC,EAAC,MAAM,2BAA2B,CAAC;AAGjF,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CACzC,WAAsC,EACtC,KAAmB,EACnB,EAAa;IAEb,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,SAAS,CAAC;QACvB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,UAAU,GAAsB,IAAI,CAAC;QAEzC,4EAA4E;QAC5E,IAAI,OAAO,EAAE,CAAC;YACZ,UAAU,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,IAAI,GAAqB,SAAS,CAAC;QACvC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACpE,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC;gBACtB,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;YAChC,CAAC;QACH,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,aAAa,GAAG,sCAAsC,CAAC,UAAU,CAAC,CAAC;gBACzE,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;oBAC3B,MAAM,KAAK,CAAC,sCAAsC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvE,CAAC;gBACD,IAAI,GAAG,aAAa,CAAC;YACvB,CAAC;YAED,MAAM;gBACJ,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;aACxE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChainConfig } from "@lodestar/config";
|
|
2
2
|
import { ResponseOutgoing } from "@lodestar/reqresp";
|
|
3
3
|
import { Slot, deneb } from "@lodestar/types";
|
|
4
4
|
import { IBeaconChain } from "../../../chain/index.js";
|
|
5
5
|
import { IBeaconDb } from "../../../db/index.js";
|
|
6
6
|
export declare function onBlobSidecarsByRange(request: deneb.BlobSidecarsByRangeRequest, chain: IBeaconChain, db: IBeaconDb): AsyncIterable<ResponseOutgoing>;
|
|
7
7
|
export declare function iterateBlobBytesFromWrapper(chain: IBeaconChain, blobSideCarsBytesWrapped: Uint8Array, blockSlot: Slot): Iterable<ResponseOutgoing>;
|
|
8
|
-
export declare function validateBlobSidecarsByRangeRequest(config:
|
|
8
|
+
export declare function validateBlobSidecarsByRangeRequest(config: ChainConfig, request: deneb.BlobSidecarsByRangeRequest): deneb.BlobSidecarsByRangeRequest;
|
|
9
9
|
//# sourceMappingURL=blobSidecarsByRange.d.ts.map
|
|
@@ -72,9 +72,8 @@ export function validateBlobSidecarsByRangeRequest(config, request) {
|
|
|
72
72
|
if (startSlot < GENESIS_SLOT) {
|
|
73
73
|
throw new ResponseError(RespStatus.INVALID_REQUEST, "startSlot < genesis");
|
|
74
74
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
count = maxRequestBlobSidecars;
|
|
75
|
+
if (count > config.MAX_REQUEST_BLOCKS_DENEB) {
|
|
76
|
+
count = config.MAX_REQUEST_BLOCKS_DENEB;
|
|
78
77
|
}
|
|
79
78
|
return { startSlot, count };
|
|
80
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobSidecarsByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/blobSidecarsByRange.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"blobSidecarsByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/blobSidecarsByRange.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ChainConfig } from "@lodestar/config";
|
|
2
|
+
import { ResponseOutgoing } from "@lodestar/reqresp";
|
|
3
|
+
import { fulu } from "@lodestar/types";
|
|
4
|
+
import { IBeaconChain } from "../../../chain/index.js";
|
|
5
|
+
import { IBeaconDb } from "../../../db/index.js";
|
|
6
|
+
export declare function onDataColumnSidecarsByRange(request: fulu.DataColumnSidecarsByRangeRequest, chain: IBeaconChain, db: IBeaconDb): AsyncIterable<ResponseOutgoing>;
|
|
7
|
+
export declare function validateDataColumnSidecarsByRangeRequest(config: ChainConfig, request: fulu.DataColumnSidecarsByRangeRequest): fulu.DataColumnSidecarsByRangeRequest;
|
|
8
|
+
//# sourceMappingURL=dataColumnSidecarsByRange.d.ts.map
|