@lodestar/beacon-node 1.16.0-dev.ed43a988bf → 1.16.0-dev.efb684a918
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/README.md +1 -1
- package/lib/api/impl/beacon/blocks/index.js +7 -1
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/validator/index.js +148 -162
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/api/impl/validator/utils.d.ts +8 -1
- package/lib/api/impl/validator/utils.js +18 -0
- package/lib/api/impl/validator/utils.js.map +1 -1
- package/lib/api/rest/base.js +4 -4
- package/lib/api/rest/base.js.map +1 -1
- package/lib/chain/archiver/archiveBlocks.d.ts +1 -1
- package/lib/chain/archiver/archiveBlocks.js +18 -11
- package/lib/chain/archiver/archiveBlocks.js.map +1 -1
- package/lib/chain/archiver/index.d.ts +2 -0
- package/lib/chain/archiver/index.js +2 -1
- package/lib/chain/archiver/index.js.map +1 -1
- package/lib/chain/blocks/importBlock.js +16 -3
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +9 -4
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksSignatures.js +11 -3
- package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +6 -3
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
- package/lib/chain/emitter.d.ts +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.d.ts +27 -6
- package/lib/chain/opPools/aggregatedAttestationPool.js +174 -76
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/options.d.ts +1 -0
- package/lib/chain/options.js.map +1 -1
- package/lib/eth1/provider/jsonRpcHttpClient.d.ts +1 -1
- package/lib/eth1/provider/jwt.js +1 -0
- package/lib/eth1/provider/jwt.js.map +1 -1
- package/lib/execution/builder/http.js +1 -1
- package/lib/execution/builder/http.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +25 -6
- package/lib/metrics/metrics/lodestar.js +70 -30
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/monitoring/system.js +4 -0
- package/lib/monitoring/system.js.map +1 -1
- package/lib/network/core/networkCoreWorker.js +0 -1
- package/lib/network/core/networkCoreWorker.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
- package/lib/network/discv5/index.d.ts +1 -1
- package/lib/network/gossip/topic.d.ts +4 -4
- package/lib/network/interface.d.ts +2 -0
- package/lib/network/libp2p/index.js +3 -1
- package/lib/network/libp2p/index.js.map +1 -1
- package/lib/network/peers/peerManager.js +9 -10
- package/lib/network/peers/peerManager.js.map +1 -1
- package/lib/network/peers/score/score.js +0 -2
- package/lib/network/peers/score/score.js.map +1 -1
- package/lib/network/processor/gossipHandlers.js +49 -25
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/index.js +13 -5
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.js +0 -1
- package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
- package/lib/sync/range/range.d.ts +1 -1
- package/lib/util/blobs.js +2 -2
- package/lib/util/blobs.js.map +1 -1
- package/lib/util/clock.d.ts +1 -1
- package/lib/util/kzg.js +2 -2
- package/lib/util/kzg.js.map +1 -1
- package/lib/util/types.d.ts +1 -1
- package/package.json +23 -23
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { computeSlotsSinceEpochStart } from "@lodestar/state-transition";
|
|
2
2
|
import { ATTESTATION_SUBNET_COUNT } from "@lodestar/params";
|
|
3
|
+
import { routes } from "@lodestar/api";
|
|
4
|
+
import { ProducedBlockSource } from "@lodestar/types";
|
|
5
|
+
import { MAX_BUILDER_BOOST_FACTOR } from "@lodestar/validator";
|
|
3
6
|
export function computeSubnetForCommitteesAtSlot(slot, committeesAtSlot, committeeIndex) {
|
|
4
7
|
const slotsSinceEpochStart = computeSlotsSinceEpochStart(slot);
|
|
5
8
|
const committeesSinceEpochStart = committeesAtSlot * slotsSinceEpochStart;
|
|
@@ -28,4 +31,19 @@ export function getPubkeysForIndices(validators, indexes) {
|
|
|
28
31
|
}
|
|
29
32
|
return pubkeys;
|
|
30
33
|
}
|
|
34
|
+
export function selectBlockProductionSource({ builderSelection, engineBlockValue, builderBlockValue, builderBoostFactor, }) {
|
|
35
|
+
switch (builderSelection) {
|
|
36
|
+
case routes.validator.BuilderSelection.ExecutionAlways:
|
|
37
|
+
case routes.validator.BuilderSelection.ExecutionOnly:
|
|
38
|
+
return ProducedBlockSource.engine;
|
|
39
|
+
case routes.validator.BuilderSelection.MaxProfit:
|
|
40
|
+
return builderBoostFactor !== MAX_BUILDER_BOOST_FACTOR &&
|
|
41
|
+
(builderBoostFactor === BigInt(0) || engineBlockValue >= (builderBlockValue * builderBoostFactor) / BigInt(100))
|
|
42
|
+
? ProducedBlockSource.engine
|
|
43
|
+
: ProducedBlockSource.builder;
|
|
44
|
+
case routes.validator.BuilderSelection.BuilderAlways:
|
|
45
|
+
case routes.validator.BuilderSelection.BuilderOnly:
|
|
46
|
+
return ProducedBlockSource.builder;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
31
49
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/api/impl/validator/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,2BAA2B,EAAC,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAC,wBAAwB,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/api/impl/validator/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,2BAA2B,EAAC,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAC,wBAAwB,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAA4B,mBAAmB,EAAuB,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAE7D,MAAM,UAAU,gCAAgC,CAC9C,IAAU,EACV,gBAAwB,EACxB,cAA8B;IAE9B,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,yBAAyB,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;IAC1E,OAAO,CAAC,yBAAyB,GAAG,cAAc,CAAC,GAAG,wBAAwB,CAAC;AACjF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAA6C,EAC7C,OAAyB;IAEzB,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,2BAA2B;IAEpE,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,KAAK,IAAI,aAAa,EAAE;YAC1B,MAAM,KAAK,CAAC,kBAAkB,KAAK,sCAAsC,aAAa,EAAE,CAAC,CAAC;SAC3F;QAED,0FAA0F;QAC1F,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAChC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,EAC1C,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GAMnB;IACC,QAAQ,gBAAgB,EAAE;QACxB,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC;QACvD,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa;YAClD,OAAO,mBAAmB,CAAC,MAAM,CAAC;QAEpC,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS;YAC9C,OAAO,kBAAkB,KAAK,wBAAwB;gBACpD,CAAC,kBAAkB,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,IAAI,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChH,CAAC,CAAC,mBAAmB,CAAC,MAAM;gBAC5B,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC;QAElC,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC;QACrD,KAAK,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW;YAChD,OAAO,mBAAmB,CAAC,OAAO,CAAC;KACtC;AACH,CAAC"}
|
package/lib/api/rest/base.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import fastify from "fastify";
|
|
3
|
-
import fastifyCors from "@fastify/cors";
|
|
1
|
+
import { parse as parseQueryString } from "qs";
|
|
2
|
+
import { fastify } from "fastify";
|
|
3
|
+
import { fastifyCors } from "@fastify/cors";
|
|
4
4
|
import bearerAuthPlugin from "@fastify/bearer-auth";
|
|
5
5
|
import { ErrorAborted } from "@lodestar/utils";
|
|
6
6
|
import { isLocalhostIP } from "../../util/ip.js";
|
|
@@ -17,7 +17,7 @@ export class RestApiServer {
|
|
|
17
17
|
const server = fastify({
|
|
18
18
|
logger: false,
|
|
19
19
|
ajv: { customOptions: { coerceTypes: "array" } },
|
|
20
|
-
querystringParser: (str) =>
|
|
20
|
+
querystringParser: (str) => parseQueryString(str, {
|
|
21
21
|
// Array as comma-separated values must be supported to be OpenAPI spec compliant
|
|
22
22
|
comma: true,
|
|
23
23
|
// Drop support for array query strings like `id[0]=1&id[1]=2&id[2]=3` as those are not required to
|
package/lib/api/rest/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/api/rest/base.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/api/rest/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ type CheckpointHex = {
|
|
|
17
17
|
* Note that the finalized block still stay in forkchoice to check finalize checkpoint of next onBlock calls,
|
|
18
18
|
* the next run should not reprocess finalzied block of this run.
|
|
19
19
|
*/
|
|
20
|
-
export declare function archiveBlocks(config: ChainForkConfig, db: IBeaconDb, forkChoice: IForkChoice, lightclientServer: LightClientServer, logger: Logger, finalizedCheckpoint: CheckpointHex, currentEpoch: Epoch): Promise<void>;
|
|
20
|
+
export declare function archiveBlocks(config: ChainForkConfig, db: IBeaconDb, forkChoice: IForkChoice, lightclientServer: LightClientServer, logger: Logger, finalizedCheckpoint: CheckpointHex, currentEpoch: Epoch, archiveBlobEpochs?: number): Promise<void>;
|
|
21
21
|
/**
|
|
22
22
|
* ```
|
|
23
23
|
* class SignedBeaconBlock(Container):
|
|
@@ -16,7 +16,7 @@ const BLOB_SIDECAR_BATCH_SIZE = 32;
|
|
|
16
16
|
* Note that the finalized block still stay in forkchoice to check finalize checkpoint of next onBlock calls,
|
|
17
17
|
* the next run should not reprocess finalzied block of this run.
|
|
18
18
|
*/
|
|
19
|
-
export async function archiveBlocks(config, db, forkChoice, lightclientServer, logger, finalizedCheckpoint, currentEpoch) {
|
|
19
|
+
export async function archiveBlocks(config, db, forkChoice, lightclientServer, logger, finalizedCheckpoint, currentEpoch, archiveBlobEpochs) {
|
|
20
20
|
// Use fork choice to determine the blocks to archive and delete
|
|
21
21
|
// getAllAncestorBlocks response includes the finalized block, so it's also moved to the cold db
|
|
22
22
|
const finalizedCanonicalBlocks = forkChoice.getAllAncestorBlocks(finalizedCheckpoint.rootHex);
|
|
@@ -53,19 +53,26 @@ export async function archiveBlocks(config, db, forkChoice, lightclientServer, l
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
// Delete expired blobs
|
|
56
|
-
// Keep only `[
|
|
56
|
+
// Keep only `[current_epoch - max(MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS, archiveBlobEpochs)]
|
|
57
|
+
// if archiveBlobEpochs set to Infinity do not prune`
|
|
57
58
|
if (finalizedPostDeneb) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
if (
|
|
62
|
-
await db.blobSidecarsArchive.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
59
|
+
if (archiveBlobEpochs !== Infinity) {
|
|
60
|
+
const blobsArchiveWindow = Math.max(config.MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS, archiveBlobEpochs ?? 0);
|
|
61
|
+
const blobSidecarsMinEpoch = currentEpoch - blobsArchiveWindow;
|
|
62
|
+
if (blobSidecarsMinEpoch >= config.DENEB_FORK_EPOCH) {
|
|
63
|
+
const slotsToDelete = await db.blobSidecarsArchive.keys({ lt: computeStartSlotAtEpoch(blobSidecarsMinEpoch) });
|
|
64
|
+
if (slotsToDelete.length > 0) {
|
|
65
|
+
await db.blobSidecarsArchive.batchDelete(slotsToDelete);
|
|
66
|
+
logger.verbose(`blobSidecars prune: batchDelete range ${slotsToDelete[0]}..${slotsToDelete[slotsToDelete.length - 1]}`);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
logger.verbose(`blobSidecars prune: no entries before epoch ${blobSidecarsMinEpoch}`);
|
|
70
|
+
}
|
|
67
71
|
}
|
|
68
72
|
}
|
|
73
|
+
else {
|
|
74
|
+
logger.verbose("blobSidecars pruning skipped: archiveBlobEpochs set to Infinity");
|
|
75
|
+
}
|
|
69
76
|
}
|
|
70
77
|
// Prunning potential checkpoint data
|
|
71
78
|
const finalizedCanonicalNonCheckpointBlocks = getNonCheckpointBlocks(finalizedCanonicalBlockRoots);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiveBlocks.js","sourceRoot":"","sources":["../../../src/chain/archiver/archiveBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAS,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AAOvF,iCAAiC;AACjC,6EAA6E;AAC7E,gFAAgF;AAChF,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAKnC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAuB,EACvB,EAAa,EACb,UAAuB,EACvB,iBAAoC,EACpC,MAAc,EACd,mBAAkC,EAClC,YAAmB;
|
|
1
|
+
{"version":3,"file":"archiveBlocks.js","sourceRoot":"","sources":["../../../src/chain/archiver/archiveBlocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { IBeaconChain } from "../interface.js";
|
|
|
4
4
|
import { StatesArchiverOpts } from "./archiveStates.js";
|
|
5
5
|
export type ArchiverOpts = StatesArchiverOpts & {
|
|
6
6
|
disableArchiveOnCheckpoint?: boolean;
|
|
7
|
+
archiveBlobEpochs?: number;
|
|
7
8
|
};
|
|
8
9
|
type ProposalStats = {
|
|
9
10
|
total: number;
|
|
@@ -29,6 +30,7 @@ export declare class Archiver {
|
|
|
29
30
|
private jobQueue;
|
|
30
31
|
private prevFinalized;
|
|
31
32
|
private readonly statesArchiver;
|
|
33
|
+
private archiveBlobEpochs?;
|
|
32
34
|
constructor(db: IBeaconDb, chain: IBeaconChain, logger: Logger, signal: AbortSignal, opts: ArchiverOpts);
|
|
33
35
|
/** Archive latest finalized state */
|
|
34
36
|
persistToDisk(): Promise<void>;
|
|
@@ -23,7 +23,7 @@ export class Archiver {
|
|
|
23
23
|
try {
|
|
24
24
|
const finalizedEpoch = finalized.epoch;
|
|
25
25
|
this.logger.verbose("Start processing finalized checkpoint", { epoch: finalizedEpoch, rootHex: finalized.rootHex });
|
|
26
|
-
await archiveBlocks(this.chain.config, this.db, this.chain.forkChoice, this.chain.lightClientServer, this.logger, finalized, this.chain.clock.currentEpoch);
|
|
26
|
+
await archiveBlocks(this.chain.config, this.db, this.chain.forkChoice, this.chain.lightClientServer, this.logger, finalized, this.chain.clock.currentEpoch, this.archiveBlobEpochs);
|
|
27
27
|
this.prevFinalized = finalized;
|
|
28
28
|
// should be after ArchiveBlocksTask to handle restart cleanly
|
|
29
29
|
await this.statesArchiver.maybeArchiveState(finalized);
|
|
@@ -80,6 +80,7 @@ export class Archiver {
|
|
|
80
80
|
this.logger.error("Error updating backfilledRanges on finalization", { epoch: finalized.epoch }, e);
|
|
81
81
|
}
|
|
82
82
|
};
|
|
83
|
+
this.archiveBlobEpochs = opts.archiveBlobEpochs;
|
|
83
84
|
this.statesArchiver = new StatesArchiver(chain.regen, db, logger, opts);
|
|
84
85
|
this.prevFinalized = chain.forkChoice.getFinalizedCheckpoint();
|
|
85
86
|
this.jobQueue = new JobItemQueue(this.processFinalizedCheckpoint, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/archiver/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,cAAc,EAAqB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAEjD,MAAM,sCAAsC,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/archiver/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,7 @@ export async function importBlock(fullyVerifiedBlock, opts) {
|
|
|
54
54
|
const parentEpoch = computeEpochAtSlot(parentBlockSlot);
|
|
55
55
|
const prevFinalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
|
|
56
56
|
const blockDelaySec = (fullyVerifiedBlock.seenTimestampSec - postState.genesisTime) % this.config.SECONDS_PER_SLOT;
|
|
57
|
+
const recvToValLatency = Date.now() / 1000 - (opts.seenTimestampSec ?? Date.now() / 1000);
|
|
57
58
|
// 1. Persist block to hot DB (pre-emptively)
|
|
58
59
|
// If eagerPersistBlock = true we do that in verifyBlocksInEpoch to batch all I/O operations to save block time to head
|
|
59
60
|
if (!opts.eagerPersistBlock) {
|
|
@@ -323,6 +324,16 @@ export async function importBlock(fullyVerifiedBlock, opts) {
|
|
|
323
324
|
this.emitter.emit(routes.events.EventType.attestation, attestation);
|
|
324
325
|
}
|
|
325
326
|
}
|
|
327
|
+
if (this.emitter.listenerCount(routes.events.EventType.attesterSlashing)) {
|
|
328
|
+
for (const attesterSlashing of block.message.body.attesterSlashings) {
|
|
329
|
+
this.emitter.emit(routes.events.EventType.attesterSlashing, attesterSlashing);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
if (this.emitter.listenerCount(routes.events.EventType.proposerSlashing)) {
|
|
333
|
+
for (const proposerSlashing of block.message.body.proposerSlashings) {
|
|
334
|
+
this.emitter.emit(routes.events.EventType.proposerSlashing, proposerSlashing);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
326
337
|
}
|
|
327
338
|
// Register stat metrics about the block after importing it
|
|
328
339
|
this.metrics?.parentBlockDistance.observe(blockSlot - parentBlockSlot);
|
|
@@ -338,9 +349,11 @@ export async function importBlock(fullyVerifiedBlock, opts) {
|
|
|
338
349
|
this.reprocessController.onBlockImported({ slot: blockSlot, root: blockRootHex }, advancedSlot);
|
|
339
350
|
}, 0);
|
|
340
351
|
if (opts.seenTimestampSec !== undefined) {
|
|
341
|
-
const
|
|
342
|
-
|
|
343
|
-
this.
|
|
352
|
+
const recvToValidation = Date.now() / 1000 - opts.seenTimestampSec;
|
|
353
|
+
const validationTime = recvToValidation - recvToValLatency;
|
|
354
|
+
this.metrics?.gossipBlock.blockImport.recvToValidation.observe(recvToValidation);
|
|
355
|
+
this.metrics?.gossipBlock.blockImport.validationTime.observe(validationTime);
|
|
356
|
+
this.logger.debug("Imported block", { slot: blockSlot, recvToValLatency, recvToValidation, validationTime });
|
|
344
357
|
}
|
|
345
358
|
this.logger.verbose("Block processed", {
|
|
346
359
|
slot: blockSlot,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importBlock.js","sourceRoot":"","sources":["../../../src/chain/blocks/importBlock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"importBlock.js","sourceRoot":"","sources":["../../../src/chain/blocks/importBlock.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ import { ExecutionPayloadStatus } from "../../execution/engine/interface.js";
|
|
|
14
14
|
export async function verifyBlocksExecutionPayload(chain, parentBlock, blocks, preState0, signal, opts) {
|
|
15
15
|
const executionStatuses = [];
|
|
16
16
|
let mergeBlockFound = null;
|
|
17
|
+
const recvToValLatency = Date.now() / 1000 - (opts.seenTimestampSec ?? Date.now() / 1000);
|
|
17
18
|
// Error in the same way as verifyBlocksSanityChecks if empty blocks
|
|
18
19
|
if (blocks.length === 0) {
|
|
19
20
|
throw Error("Empty partiallyVerifiedBlocks");
|
|
@@ -154,11 +155,15 @@ export async function verifyBlocksExecutionPayload(chain, parentBlock, blocks, p
|
|
|
154
155
|
}
|
|
155
156
|
const executionTime = Date.now();
|
|
156
157
|
if (blocks.length === 1 && opts.seenTimestampSec !== undefined && executionStatuses[0] === ExecutionStatus.Valid) {
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
chain.
|
|
158
|
+
const recvToValidation = executionTime / 1000 - opts.seenTimestampSec;
|
|
159
|
+
const validationTime = recvToValidation - recvToValLatency;
|
|
160
|
+
chain.metrics?.gossipBlock.executionPayload.recvToValidation.observe(recvToValidation);
|
|
161
|
+
chain.metrics?.gossipBlock.executionPayload.validationTime.observe(validationTime);
|
|
162
|
+
chain.logger.debug("Verified execution payload", {
|
|
160
163
|
slot: blocks[0].message.slot,
|
|
161
|
-
|
|
164
|
+
recvToValLatency,
|
|
165
|
+
recvToValidation,
|
|
166
|
+
validationTime,
|
|
162
167
|
});
|
|
163
168
|
}
|
|
164
169
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyBlocksExecutionPayloads.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksExecutionPayloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAEL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,IAAI,wBAAwB,EAClD,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAEL,2BAA2B,EAE3B,eAAe,GAIhB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAC,YAAY,EAAS,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAC,OAAO,EAAE,mCAAmC,EAAC,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAC,4BAA4B,EAAC,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAmC3E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,KAAyC,EACzC,WAAuB,EACvB,MAAoC,EACpC,SAAoC,EACpC,MAAmB,EACnB,IAAwC;IAExC,MAAM,iBAAiB,GAAgC,EAAE,CAAC;IAC1D,IAAI,eAAe,GAAiC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"verifyBlocksExecutionPayloads.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksExecutionPayloads.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import { BlockError, BlockErrorCode } from "../errors/blockError.js";
|
|
|
10
10
|
*/
|
|
11
11
|
export async function verifyBlocksSignatures(bls, logger, metrics, preState0, blocks, opts) {
|
|
12
12
|
const isValidPromises = [];
|
|
13
|
+
const recvToValLatency = Date.now() / 1000 - (opts.seenTimestampSec ?? Date.now() / 1000);
|
|
13
14
|
// Verifies signatures after running state transition, so all SyncCommittee signed roots are known at this point.
|
|
14
15
|
// We must ensure block.slot <= state.slot before running getAllBlockSignatureSets().
|
|
15
16
|
// NOTE: If in the future multiple blocks signatures are verified at once, all blocks must be in the same epoch
|
|
@@ -36,9 +37,16 @@ export async function verifyBlocksSignatures(bls, logger, metrics, preState0, bl
|
|
|
36
37
|
}
|
|
37
38
|
const verifySignaturesTime = Date.now();
|
|
38
39
|
if (blocks.length === 1 && opts.seenTimestampSec !== undefined) {
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
const recvToValidation = verifySignaturesTime / 1000 - opts.seenTimestampSec;
|
|
41
|
+
const validationTime = recvToValidation - recvToValLatency;
|
|
42
|
+
metrics?.gossipBlock.signatureVerification.recvToValidation.observe(recvToValidation);
|
|
43
|
+
metrics?.gossipBlock.signatureVerification.validationTime.observe(validationTime);
|
|
44
|
+
logger.debug("Verified block signatures", {
|
|
45
|
+
slot: blocks[0].message.slot,
|
|
46
|
+
recvToValLatency,
|
|
47
|
+
recvToValidation,
|
|
48
|
+
validationTime,
|
|
49
|
+
});
|
|
42
50
|
}
|
|
43
51
|
return { verifySignaturesTime };
|
|
44
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyBlocksSignatures.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksSignatures.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAE5F,OAAO,EAAS,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAG9C,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAGnE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAiB,EACjB,MAAc,EACd,OAAuB,EACvB,SAAoC,EACpC,MAAoC,EACpC,IAAqB;IAErB,MAAM,eAAe,GAAuB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"verifyBlocksSignatures.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksSignatures.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import { byteArrayEquals } from "../../util/bytes.js";
|
|
|
13
13
|
export async function verifyBlocksStateTransitionOnly(preState0, blocks, dataAvailabilityStatuses, logger, metrics, signal, opts) {
|
|
14
14
|
const postStates = [];
|
|
15
15
|
const proposerBalanceDeltas = [];
|
|
16
|
+
const recvToValLatency = Date.now() / 1000 - (opts.seenTimestampSec ?? Date.now() / 1000);
|
|
16
17
|
for (let i = 0; i < blocks.length; i++) {
|
|
17
18
|
const { validProposerSignature, validSignatures } = opts;
|
|
18
19
|
const { block } = blocks[i];
|
|
@@ -64,9 +65,11 @@ export async function verifyBlocksStateTransitionOnly(preState0, blocks, dataAva
|
|
|
64
65
|
const verifyStateTime = Date.now();
|
|
65
66
|
if (blocks.length === 1 && opts.seenTimestampSec !== undefined) {
|
|
66
67
|
const slot = blocks[0].block.message.slot;
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
const recvToValidation = verifyStateTime / 1000 - opts.seenTimestampSec;
|
|
69
|
+
const validationTime = recvToValidation - recvToValLatency;
|
|
70
|
+
metrics?.gossipBlock.stateTransition.recvToValidation.observe(recvToValidation);
|
|
71
|
+
metrics?.gossipBlock.stateTransition.validationTime.observe(validationTime);
|
|
72
|
+
logger.debug("Verified block state transition", { slot, recvToValLatency, recvToValidation, validationTime });
|
|
70
73
|
}
|
|
71
74
|
return { postStates, proposerBalanceDeltas, verifyStateTime };
|
|
72
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyBlocksStateTransitionOnly.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksStateTransitionOnly.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,sBAAsB,EAEtB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,YAAY,EAAU,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAGpD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,SAAoC,EACpC,MAAoB,EACpB,wBAA+C,EAC/C,MAAc,EACd,OAAuB,EACvB,MAAmB,EACnB,IAAwC;IAExC,MAAM,UAAU,GAAgC,EAAE,CAAC;IACnD,MAAM,qBAAqB,GAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"verifyBlocksStateTransitionOnly.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksStateTransitionOnly.ts"],"names":[],"mappings":"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"}
|
package/lib/chain/emitter.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
|
-
import StrictEventEmitter from "strict-event-emitter-types";
|
|
2
|
+
import { StrictEventEmitter } from "strict-event-emitter-types";
|
|
3
3
|
import { routes } from "@lodestar/api";
|
|
4
4
|
import { phase0 } from "@lodestar/types";
|
|
5
5
|
import { CheckpointWithHex } from "@lodestar/fork-choice";
|
|
@@ -2,7 +2,12 @@ import { phase0, Epoch, Slot, ValidatorIndex, RootHex } from "@lodestar/types";
|
|
|
2
2
|
import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
|
|
3
3
|
import { IForkChoice } from "@lodestar/fork-choice";
|
|
4
4
|
import { InsertOutcome } from "./types.js";
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* This function returns not seen participation for a given epoch and committee.
|
|
7
|
+
* Return null if all validators are seen or no info to check.
|
|
8
|
+
*/
|
|
9
|
+
type GetNotSeenValidatorsFn = (epoch: Epoch, committee: number[]) => Set<number> | null;
|
|
10
|
+
type ValidateAttestationDataFn = (attData: phase0.AttestationData) => boolean;
|
|
6
11
|
/**
|
|
7
12
|
* Maintain a pool of aggregated attestations. Attestations can be retrieved for inclusion in a block
|
|
8
13
|
* or api. The returned attestations are aggregated to maximise the number of validators that can be
|
|
@@ -10,7 +15,7 @@ type GetParticipationFn = (epoch: Epoch, committee: number[]) => Set<number> | n
|
|
|
10
15
|
* Note that we want to remove attestations with attesters that were included in the chain.
|
|
11
16
|
*/
|
|
12
17
|
export declare class AggregatedAttestationPool {
|
|
13
|
-
private readonly
|
|
18
|
+
private readonly attestationGroupByDataHashByIndexBySlot;
|
|
14
19
|
private lowestPermissibleSlot;
|
|
15
20
|
/** For metrics to track size of the pool */
|
|
16
21
|
getAttestationCount(): {
|
|
@@ -57,7 +62,12 @@ export declare class MatchingDataAttestationGroup {
|
|
|
57
62
|
* If it's a superset of an existing attestation, remove the existing attestation and add new.
|
|
58
63
|
*/
|
|
59
64
|
add(attestation: AttestationWithIndex): InsertOutcome;
|
|
60
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Get AttestationNonParticipant for this groups of same attestation data.
|
|
67
|
+
* @param notSeenAttestingIndices not seen attestting indices, i.e. indices in the same committee
|
|
68
|
+
* @returns an array of AttestationNonParticipant
|
|
69
|
+
*/
|
|
70
|
+
getAttestationsForBlock(notSeenAttestingIndices: Set<number>): AttestationNonParticipant[];
|
|
61
71
|
/** Get attestations for API. */
|
|
62
72
|
getAttestations(): phase0.Attestation[];
|
|
63
73
|
}
|
|
@@ -66,10 +76,21 @@ export declare function aggregateInto(attestation1: AttestationWithIndex, attest
|
|
|
66
76
|
* Pre-compute participation from a CachedBeaconStateAllForks, for use to check if an attestation's committee
|
|
67
77
|
* has already attested or not.
|
|
68
78
|
*/
|
|
69
|
-
export declare function
|
|
70
|
-
export declare function
|
|
79
|
+
export declare function getNotSeenValidatorsFn(state: CachedBeaconStateAllForks): GetNotSeenValidatorsFn;
|
|
80
|
+
export declare function extractParticipationPhase0(attestations: phase0.PendingAttestation[], state: CachedBeaconStateAllForks): Set<ValidatorIndex>;
|
|
81
|
+
/**
|
|
82
|
+
* This returns a function to validate if an attestation data is compatible to a state,
|
|
83
|
+
* it's an optimized version of isValidAttestationData().
|
|
84
|
+
* Atttestation data is validated by:
|
|
85
|
+
* - Validate the source checkpoint
|
|
86
|
+
* - Validate shuffling using beacon block root and target epoch
|
|
87
|
+
*
|
|
88
|
+
* Here we always validate the source checkpoint, and cache beacon block root + target epoch
|
|
89
|
+
* to avoid running the same shuffling validation multiple times.
|
|
90
|
+
*/
|
|
91
|
+
export declare function getValidateAttestationDataFn(forkChoice: IForkChoice, state: CachedBeaconStateAllForks): ValidateAttestationDataFn;
|
|
71
92
|
/**
|
|
72
|
-
*
|
|
93
|
+
* A straight forward version to validate attestation data. We don't use it, but keep it here for reference.
|
|
73
94
|
* - Validate the source checkpoint
|
|
74
95
|
* - Since we validated attestation's signature in gossip validation function,
|
|
75
96
|
* we only need to validate the shuffling of attestation
|