@lodestar/beacon-node 1.51.0-dev.d2b5232209 → 1.51.0-dev.e2c534f5b1
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 +17 -27
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/pool/index.js +5 -2
- package/lib/api/impl/beacon/pool/index.js.map +1 -1
- package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
- package/lib/chain/GetBlobsTracker.js +4 -2
- package/lib/chain/GetBlobsTracker.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
- package/lib/chain/archiveStore/archiveStore.js +1 -0
- package/lib/chain/archiveStore/archiveStore.js.map +1 -1
- package/lib/chain/blocks/importExecutionPayload.d.ts +4 -1
- package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
- package/lib/chain/blocks/importExecutionPayload.js +6 -1
- package/lib/chain/blocks/importExecutionPayload.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/verifyBlocksDataAvailability.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.js +8 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
- package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -1
- package/lib/chain/blocks/verifyPayloadsDataAvailability.js +8 -1
- package/lib/chain/blocks/verifyPayloadsDataAvailability.js.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/errors/blockError.d.ts +1 -1
- package/lib/chain/errors/blockError.d.ts.map +1 -1
- package/lib/chain/errors/blockError.js +1 -1
- package/lib/chain/errors/blockError.js.map +1 -1
- package/lib/chain/interface.d.ts +1 -2
- package/lib/chain/interface.d.ts.map +1 -1
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/options.d.ts +0 -1
- package/lib/chain/options.d.ts.map +1 -1
- package/lib/chain/options.js +0 -1
- package/lib/chain/options.js.map +1 -1
- package/lib/execution/engine/index.d.ts +1 -1
- package/lib/execution/engine/index.d.ts.map +1 -1
- package/lib/execution/engine/index.js +1 -1
- package/lib/execution/engine/index.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +1 -1
- package/lib/execution/engine/interface.d.ts.map +1 -1
- package/lib/execution/engine/interface.js.map +1 -1
- package/lib/execution/engine/types.d.ts.map +1 -1
- package/lib/execution/engine/types.js +2 -2
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/monitoring/service.js +1 -1
- package/lib/monitoring/service.js.map +1 -1
- package/lib/network/network.d.ts.map +1 -1
- package/lib/network/network.js +3 -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 +6 -5
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/node/options.d.ts +1 -1
- package/lib/node/options.d.ts.map +1 -1
- package/lib/node/options.js +1 -1
- package/lib/node/options.js.map +1 -1
- package/lib/sync/interface.d.ts.map +1 -1
- package/lib/sync/interface.js.map +1 -1
- package/lib/util/queue/itemQueue.js +1 -1
- package/lib/util/queue/itemQueue.js.map +1 -1
- package/lib/util/sszBytes.js +2 -2
- package/lib/util/sszBytes.js.map +1 -1
- package/package.json +15 -15
- package/src/api/impl/beacon/blocks/index.ts +35 -45
- package/src/api/impl/beacon/pool/index.ts +5 -1
- package/src/chain/GetBlobsTracker.ts +4 -2
- package/src/chain/archiveStore/archiveStore.ts +1 -0
- package/src/chain/blocks/importExecutionPayload.ts +11 -1
- package/src/chain/blocks/payloadEnvelopeProcessor.ts +2 -2
- package/src/chain/blocks/verifyBlocksDataAvailability.ts +10 -1
- package/src/chain/blocks/verifyPayloadsDataAvailability.ts +10 -1
- package/src/chain/bls/multithread/index.ts +5 -5
- package/src/chain/errors/blockError.ts +1 -1
- package/src/chain/interface.ts +1 -2
- package/src/chain/options.ts +0 -2
- package/src/execution/engine/index.ts +1 -1
- package/src/execution/engine/interface.ts +1 -1
- package/src/execution/engine/types.ts +3 -1
- package/src/monitoring/service.ts +1 -1
- package/src/network/network.ts +3 -1
- package/src/network/processor/gossipHandlers.ts +6 -5
- package/src/node/options.ts +4 -5
- package/src/sync/interface.ts +1 -0
- package/src/util/queue/itemQueue.ts +1 -1
- package/src/util/sszBytes.ts +2 -2
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
DEPOSIT_REQUEST_TYPE,
|
|
10
10
|
FIELD_ELEMENTS_PER_BLOB,
|
|
11
11
|
ForkName,
|
|
12
|
+
ForkPostElectra,
|
|
12
13
|
ForkSeq,
|
|
13
14
|
WITHDRAWAL_REQUEST_TYPE,
|
|
14
15
|
} from "@lodestar/params";
|
|
@@ -23,6 +24,7 @@ import {
|
|
|
23
24
|
deneb,
|
|
24
25
|
gloas,
|
|
25
26
|
ssz,
|
|
27
|
+
sszTypesFor,
|
|
26
28
|
} from "@lodestar/types";
|
|
27
29
|
import {BlobAndProof} from "@lodestar/types/deneb";
|
|
28
30
|
import {BlobAndProofV2} from "@lodestar/types/fulu";
|
|
@@ -628,7 +630,7 @@ export function deserializeExecutionRequestsFromBytes(fork: ForkName, serialized
|
|
|
628
630
|
|
|
629
631
|
switch (currentRequestType) {
|
|
630
632
|
case DEPOSIT_REQUEST_TYPE: {
|
|
631
|
-
result.deposits =
|
|
633
|
+
result.deposits = sszTypesFor(fork as ForkPostElectra).DepositRequests.deserialize(requests);
|
|
632
634
|
break;
|
|
633
635
|
}
|
|
634
636
|
case WITHDRAWAL_REQUEST_TYPE: {
|
|
@@ -101,7 +101,7 @@ export class MonitoringService {
|
|
|
101
101
|
if (this.monitoringInterval) {
|
|
102
102
|
clearTimeout(this.monitoringInterval);
|
|
103
103
|
}
|
|
104
|
-
if (this.pendingRequest) {
|
|
104
|
+
if (this.pendingRequest !== undefined) {
|
|
105
105
|
this.fetchAbortController?.abort(FetchAbortReason.Close);
|
|
106
106
|
await this.pendingRequest;
|
|
107
107
|
}
|
package/src/network/network.ts
CHANGED
|
@@ -855,7 +855,9 @@ export class Network implements INetwork {
|
|
|
855
855
|
};
|
|
856
856
|
|
|
857
857
|
private onTargetGroupCountUpdated = (count: number): void => {
|
|
858
|
-
this.core.setTargetGroupCount(count)
|
|
858
|
+
this.core.setTargetGroupCount(count).catch((e) => {
|
|
859
|
+
this.logger.debug("Error setting target custody group count", {count}, e as Error);
|
|
860
|
+
});
|
|
859
861
|
};
|
|
860
862
|
|
|
861
863
|
private onPublishDataColumns = async (sidecars: DataColumnSidecar[]): Promise<void> => {
|
|
@@ -705,8 +705,6 @@ function getSequentialHandlers(modules: ValidatorFnsModules, options: GossipHand
|
|
|
705
705
|
|
|
706
706
|
// Immediately attempt fetch of data columns from execution engine as the bid contains kzg commitments
|
|
707
707
|
// which is all the information we need so there is no reason to delay until execution payload arrives
|
|
708
|
-
// TODO GLOAS: If we want EL retries after this initial attempt, add an explicit retry policy here
|
|
709
|
-
// (for example later in the slot). Do not couple retries to incoming gossip columns.
|
|
710
708
|
// Columns fetched here feed payloadInput.addColumn, which resolves waitForAllData for any
|
|
711
709
|
// in-flight importExecutionPayload. No processExecutionPayload trigger needed from this path.
|
|
712
710
|
chain.getBlobsTracker.triggerGetBlobs(payloadInput);
|
|
@@ -718,11 +716,10 @@ function getSequentialHandlers(modules: ValidatorFnsModules, options: GossipHand
|
|
|
718
716
|
|
|
719
717
|
if (e instanceof BlockError) {
|
|
720
718
|
switch (e.type.code) {
|
|
721
|
-
case BlockErrorCode.DATA_UNAVAILABLE:
|
|
722
|
-
//
|
|
719
|
+
case BlockErrorCode.DATA_UNAVAILABLE:
|
|
720
|
+
// Data did not arrive in time, BlockInputSync keeps pulling it and retries the import
|
|
723
721
|
logLevel = LogLevel.debug;
|
|
724
722
|
break;
|
|
725
|
-
}
|
|
726
723
|
// ALREADY_KNOWN should not happen with ignoreIfKnown=true above
|
|
727
724
|
// PARENT_BLOCK_UNKNOWN should not happen, we handled this in validateBeaconBlock() function above
|
|
728
725
|
case BlockErrorCode.ALREADY_KNOWN:
|
|
@@ -1358,6 +1355,10 @@ function getSequentialHandlers(modules: ValidatorFnsModules, options: GossipHand
|
|
|
1358
1355
|
|
|
1359
1356
|
if (e instanceof PayloadError) {
|
|
1360
1357
|
switch (e.type.code) {
|
|
1358
|
+
case PayloadErrorCode.DATA_UNAVAILABLE:
|
|
1359
|
+
// Columns did not arrive in time, BlockInputSync keeps pulling them and retries the import
|
|
1360
|
+
logLevel = LogLevel.debug;
|
|
1361
|
+
break;
|
|
1361
1362
|
// BLOCK_NOT_IN_FORK_CHOICE should not happen, validateGossipExecutionPayloadEnvelope above
|
|
1362
1363
|
// already verified the block is in fork choice
|
|
1363
1364
|
case PayloadErrorCode.BLOCK_NOT_IN_FORK_CHOICE:
|
package/src/node/options.ts
CHANGED
|
@@ -19,16 +19,15 @@ import {SyncOptions, defaultSyncOptions} from "../sync/options.js";
|
|
|
19
19
|
|
|
20
20
|
// Re-export so the CLI doesn't need to depend on lodestar-api
|
|
21
21
|
export {allNamespaces} from "../api/rest/index.js";
|
|
22
|
-
|
|
22
|
+
export type {EngineApiMode};
|
|
23
23
|
// Re-export to use as default values in CLI args
|
|
24
24
|
export {
|
|
25
|
-
defaultExecutionEngineHttpOpts,
|
|
26
|
-
defaultExecutionBuilderHttpOpts,
|
|
27
|
-
engineApiModes,
|
|
28
25
|
ArchiveMode,
|
|
29
26
|
DEFAULT_ARCHIVE_MODE,
|
|
27
|
+
defaultExecutionBuilderHttpOpts,
|
|
28
|
+
defaultExecutionEngineHttpOpts,
|
|
29
|
+
engineApiModes,
|
|
30
30
|
};
|
|
31
|
-
export type {EngineApiMode};
|
|
32
31
|
|
|
33
32
|
export interface IBeaconNodeOptions {
|
|
34
33
|
api: ApiOptions;
|
package/src/sync/interface.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {IBeaconDb} from "../db/index.js";
|
|
|
7
7
|
import {Metrics} from "../metrics/index.js";
|
|
8
8
|
import {INetwork} from "../network/index.js";
|
|
9
9
|
import {SyncChainDebugState} from "./range/chain.js";
|
|
10
|
+
|
|
10
11
|
export type {SyncChainDebugState};
|
|
11
12
|
|
|
12
13
|
export type SyncingStatus = routes.node.SyncingStatus;
|
|
@@ -69,7 +69,7 @@ export class JobItemQueue<Args extends any[], R> {
|
|
|
69
69
|
if (this.jobs.length === 1 && this.opts.noYieldIfOneItem) {
|
|
70
70
|
void this.runJob();
|
|
71
71
|
} else if (this.runningJobs < this.opts.maxConcurrency) {
|
|
72
|
-
callInNextEventLoop(this.runJob);
|
|
72
|
+
callInNextEventLoop(() => void this.runJob());
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
75
|
}
|
package/src/util/sszBytes.ts
CHANGED
|
@@ -854,7 +854,7 @@ export function getBlobKzgCommitmentsCountFromSignedBeaconBlockSerialized(
|
|
|
854
854
|
|
|
855
855
|
const start = bidMsgStart + commitmentsRange.start;
|
|
856
856
|
const end = bidMsgStart + commitmentsRange.end;
|
|
857
|
-
return Math.round(((end
|
|
857
|
+
return Math.round((Math.min(end, blockBytes.byteLength) - start) / commitmentSize);
|
|
858
858
|
}
|
|
859
859
|
|
|
860
860
|
const {SignedBeaconBlock, BeaconBlock, BeaconBlockBody, KZGCommitment} = ssz[forkName as ForkPostDeneb];
|
|
@@ -880,5 +880,5 @@ export function getBlobKzgCommitmentsCountFromSignedBeaconBlockSerialized(
|
|
|
880
880
|
const end = messageRange.end + bodyRange.end + kzgCommitmentsRange.end;
|
|
881
881
|
const start = messageRange.start + bodyRange.start + kzgCommitmentsRange.start;
|
|
882
882
|
|
|
883
|
-
return Math.round(((end
|
|
883
|
+
return Math.round((Math.min(end, blockBytes.byteLength) - start) / commitmentSize);
|
|
884
884
|
}
|