@lodestar/beacon-node 1.16.0-dev.f2e352ff01 → 1.16.0-rc.1
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 +14 -2
- 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/jsonRpcHttpClient.js +4 -5
- package/lib/eth1/provider/jsonRpcHttpClient.js.map +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/network/subnets/attnetsService.js +2 -2
- package/lib/network/subnets/attnetsService.js.map +1 -1
- package/lib/network/subnets/dllAttnetsService.js +2 -2
- package/lib/network/subnets/dllAttnetsService.js.map +1 -1
- package/lib/network/subnets/syncnetsService.js +2 -2
- package/lib/network/subnets/syncnetsService.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
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ You will need to go over the [specification](https://github.com/ethereum/consens
|
|
|
18
18
|
## Getting started
|
|
19
19
|
|
|
20
20
|
- Follow the [installation guide](https://chainsafe.github.io/lodestar/) to install Lodestar.
|
|
21
|
-
- Quickly try out the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/
|
|
21
|
+
- Quickly try out the whole stack by [starting a local testnet](https://chainsafe.github.io/lodestar/advanced-topics/setting-up-a-testnet/).
|
|
22
22
|
|
|
23
23
|
## Contributors
|
|
24
24
|
|
|
@@ -8,7 +8,7 @@ import { BlockSource, getBlockInput } from "../../../../chain/blocks/types.js";
|
|
|
8
8
|
import { promiseAllMaybeAsync } from "../../../../util/promises.js";
|
|
9
9
|
import { isOptimisticBlock } from "../../../../util/forkChoice.js";
|
|
10
10
|
import { computeBlobSidecars } from "../../../../util/blobs.js";
|
|
11
|
-
import { BlockError, BlockErrorCode } from "../../../../chain/errors/index.js";
|
|
11
|
+
import { BlockError, BlockErrorCode, BlockGossipError } from "../../../../chain/errors/index.js";
|
|
12
12
|
import { OpSource } from "../../../../metrics/validatorMonitor.js";
|
|
13
13
|
import { NetworkEvent } from "../../../../network/index.js";
|
|
14
14
|
import { validateGossipBlock } from "../../../../chain/validation/block.js";
|
|
@@ -59,6 +59,12 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
|
|
|
59
59
|
await validateGossipBlock(config, chain, signedBlock, fork);
|
|
60
60
|
}
|
|
61
61
|
catch (error) {
|
|
62
|
+
if (error instanceof BlockGossipError && error.type.code === BlockErrorCode.ALREADY_KNOWN) {
|
|
63
|
+
chain.logger.debug("Ignoring known block during publishing", valLogMeta);
|
|
64
|
+
// Blocks might already be published by another node as part of a fallback setup or DVT cluster
|
|
65
|
+
// and can reach our node by gossip before the api. The error can be ignored and should not result in a 500 response.
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
62
68
|
chain.logger.error("Gossip validations failed while publishing the block", valLogMeta, error);
|
|
63
69
|
chain.persistInvalidSszValue(chain.config.getForkTypes(slot).SignedBeaconBlock, signedBlock, "api_reject_gossip_failure");
|
|
64
70
|
throw error;
|
|
@@ -137,6 +143,13 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
|
|
|
137
143
|
const publishPromises = [
|
|
138
144
|
// Send the block, regardless of whether or not it is valid. The API
|
|
139
145
|
// specification is very clear that this is the desired behaviour.
|
|
146
|
+
//
|
|
147
|
+
// i) Publish blobs and block before importing so that network can see them asap
|
|
148
|
+
// ii) publish blobs first because
|
|
149
|
+
// a) by the times nodes see block, they might decide to pull blobs
|
|
150
|
+
// b) they might require more hops to reach recipients in peerDAS kind of setup where
|
|
151
|
+
// blobs might need to hop between nodes because of partial subnet subscription
|
|
152
|
+
...blobSidecars.map((blobSidecar) => () => network.publishBlobSidecar(blobSidecar)),
|
|
140
153
|
() => network.publishBeaconBlock(signedBlock),
|
|
141
154
|
() =>
|
|
142
155
|
// there is no rush to persist block since we published it to gossip anyway
|
|
@@ -149,7 +162,6 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
|
|
|
149
162
|
}
|
|
150
163
|
throw e;
|
|
151
164
|
}),
|
|
152
|
-
...blobSidecars.map((blobSidecar) => () => network.publishBlobSidecar(blobSidecar)),
|
|
153
165
|
];
|
|
154
166
|
await promiseAllMaybeAsync(publishPromises);
|
|
155
167
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/blocks/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/blocks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { GENESIS_SLOT, SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT, SYNC_COMMITTE
|
|
|
5
5
|
import { MAX_BUILDER_BOOST_FACTOR } from "@lodestar/validator";
|
|
6
6
|
import { ssz, ProducedBlockSource, isBlindedBeaconBlock, isBlockContents, } from "@lodestar/types";
|
|
7
7
|
import { ExecutionStatus } from "@lodestar/fork-choice";
|
|
8
|
-
import { toHex,
|
|
8
|
+
import { toHex, resolveOrRacePromises, prettyWeiToEth } from "@lodestar/utils";
|
|
9
9
|
import { AttestationError, AttestationErrorCode, GossipAction, SyncCommitteeError, SyncCommitteeErrorCode, } from "../../../chain/errors/index.js";
|
|
10
10
|
import { validateApiAggregateAndProof } from "../../../chain/validation/index.js";
|
|
11
11
|
import { ZERO_HASH } from "../../../constants/index.js";
|
|
@@ -19,7 +19,7 @@ import { getValidatorStatus } from "../beacon/state/utils.js";
|
|
|
19
19
|
import { validateGossipFnRetryUnknownRoot } from "../../../network/processor/gossipHandlers.js";
|
|
20
20
|
import { SCHEDULER_LOOKAHEAD_FACTOR } from "../../../chain/prepareNextSlot.js";
|
|
21
21
|
import { ChainEvent } from "../../../chain/index.js";
|
|
22
|
-
import { computeSubnetForCommitteesAtSlot, getPubkeysForIndices } from "./utils.js";
|
|
22
|
+
import { computeSubnetForCommitteesAtSlot, getPubkeysForIndices, selectBlockProductionSource } from "./utils.js";
|
|
23
23
|
/**
|
|
24
24
|
* If the node is within this many epochs from the head, we declare it to be synced regardless of
|
|
25
25
|
* the network sync state.
|
|
@@ -118,6 +118,32 @@ export function getValidatorApi({ chain, config, logger, metrics, network, sync,
|
|
|
118
118
|
function currentEpochWithDisparity() {
|
|
119
119
|
return computeEpochAtSlot(getCurrentSlot(config, chain.genesisTime - MAX_API_CLOCK_DISPARITY_SEC));
|
|
120
120
|
}
|
|
121
|
+
function getBlockValueLogInfo(block, source) {
|
|
122
|
+
const executionValue = block.executionPayloadValue;
|
|
123
|
+
const consensusValue = block.consensusBlockValue;
|
|
124
|
+
const totalValue = executionValue + consensusValue;
|
|
125
|
+
if (source == null) {
|
|
126
|
+
return {
|
|
127
|
+
executionPayloadValue: prettyWeiToEth(executionValue),
|
|
128
|
+
consensusBlockValue: prettyWeiToEth(consensusValue),
|
|
129
|
+
blockTotalValue: prettyWeiToEth(totalValue),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
else if (source === ProducedBlockSource.builder) {
|
|
133
|
+
return {
|
|
134
|
+
builderExecutionPayloadValue: prettyWeiToEth(executionValue),
|
|
135
|
+
builderConsensusBlockValue: prettyWeiToEth(consensusValue),
|
|
136
|
+
builderBlockTotalValue: prettyWeiToEth(totalValue),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
return {
|
|
141
|
+
engineExecutionPayloadValue: prettyWeiToEth(executionValue),
|
|
142
|
+
engineConsensusBlockValue: prettyWeiToEth(consensusValue),
|
|
143
|
+
engineBlockTotalValue: prettyWeiToEth(totalValue),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
121
147
|
/**
|
|
122
148
|
* This function is called 1s before next epoch, usually at that time PrepareNextSlotScheduler finishes
|
|
123
149
|
* so we should have checkpoint state, otherwise wait for up to the slot 1 of epoch.
|
|
@@ -352,11 +378,24 @@ export function getValidatorApi({ chain, config, logger, metrics, network, sync,
|
|
|
352
378
|
const isBuilderEnabled = ForkSeq[fork] >= ForkSeq.bellatrix &&
|
|
353
379
|
chain.executionBuilder !== undefined &&
|
|
354
380
|
builderSelection !== routes.validator.BuilderSelection.ExecutionOnly;
|
|
381
|
+
// At any point either the builder or execution or both flows should be active.
|
|
382
|
+
//
|
|
383
|
+
// Ideally such a scenario should be prevented on startup, but proposerSettingsFile or keymanager
|
|
384
|
+
// configurations could cause a validator pubkey to have builder disabled with builder selection builder only
|
|
385
|
+
// (TODO: independently make sure such an options update is not successful for a validator pubkey)
|
|
386
|
+
//
|
|
387
|
+
// So if builder is disabled ignore builder selection of builder only if caused by user mistake
|
|
388
|
+
// https://github.com/ChainSafe/lodestar/issues/6338
|
|
389
|
+
const isEngineEnabled = !isBuilderEnabled || builderSelection !== routes.validator.BuilderSelection.BuilderOnly;
|
|
390
|
+
if (!isEngineEnabled && !isBuilderEnabled) {
|
|
391
|
+
throw Error(`Internal Error: Neither builder nor execution proposal flow activated isBuilderEnabled=${isBuilderEnabled} builderSelection=${builderSelection}`);
|
|
392
|
+
}
|
|
355
393
|
const loggerContext = {
|
|
356
394
|
fork,
|
|
357
395
|
builderSelection,
|
|
358
396
|
slot,
|
|
359
397
|
isBuilderEnabled,
|
|
398
|
+
isEngineEnabled,
|
|
360
399
|
strictFeeRecipientCheck,
|
|
361
400
|
// winston logger doesn't like bigint
|
|
362
401
|
builderBoostFactor: `${builderBoostFactor}`,
|
|
@@ -368,176 +407,123 @@ export function getValidatorApi({ chain, config, logger, metrics, network, sync,
|
|
|
368
407
|
graffiti: toGraffitiBuffer(graffiti || ""),
|
|
369
408
|
});
|
|
370
409
|
logger.debug("Produced common block body", loggerContext);
|
|
410
|
+
logger.verbose("Block production race (builder vs execution) starting", {
|
|
411
|
+
...loggerContext,
|
|
412
|
+
cutoffMs: BLOCK_PRODUCTION_RACE_CUTOFF_MS,
|
|
413
|
+
timeoutMs: BLOCK_PRODUCTION_RACE_TIMEOUT_MS,
|
|
414
|
+
});
|
|
415
|
+
// use abort controller to stop waiting for both block sources
|
|
416
|
+
const controller = new AbortController();
|
|
371
417
|
// Start calls for building execution and builder blocks
|
|
372
|
-
const
|
|
373
|
-
?
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
:
|
|
406
|
-
|
|
407
|
-
if (
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
}
|
|
433
|
-
else if (blindedBlockPromise !== null && fullBlockPromise === null) {
|
|
434
|
-
blindedBlock = await blindedBlockPromise;
|
|
435
|
-
fullBlock = null;
|
|
436
|
-
}
|
|
437
|
-
else if (blindedBlockPromise === null && fullBlockPromise !== null) {
|
|
438
|
-
blindedBlock = null;
|
|
439
|
-
fullBlock = await fullBlockPromise;
|
|
440
|
-
}
|
|
441
|
-
else {
|
|
442
|
-
throw Error(`Internal Error: Neither builder nor execution proposal flow activated isBuilderEnabled=${isBuilderEnabled} builderSelection=${builderSelection}`);
|
|
443
|
-
}
|
|
444
|
-
const builderPayloadValue = blindedBlock?.executionPayloadValue ?? BigInt(0);
|
|
445
|
-
const enginePayloadValue = fullBlock?.executionPayloadValue ?? BigInt(0);
|
|
446
|
-
const consensusBlockValueBuilder = blindedBlock?.consensusBlockValue ?? BigInt(0);
|
|
447
|
-
const consensusBlockValueEngine = fullBlock?.consensusBlockValue ?? BigInt(0);
|
|
448
|
-
const blockValueBuilder = builderPayloadValue + consensusBlockValueBuilder; // Total block value is in wei
|
|
449
|
-
const blockValueEngine = enginePayloadValue + consensusBlockValueEngine; // Total block value is in wei
|
|
450
|
-
let executionPayloadSource = null;
|
|
451
|
-
const shouldOverrideBuilder = fullBlock?.shouldOverrideBuilder ?? false;
|
|
452
|
-
// handle the builder override case separately
|
|
453
|
-
if (shouldOverrideBuilder === true) {
|
|
454
|
-
executionPayloadSource = ProducedBlockSource.engine;
|
|
455
|
-
logger.info("Selected engine block as censorship suspected in builder blocks", {
|
|
456
|
-
// winston logger doesn't like bigint
|
|
457
|
-
enginePayloadValue: `${enginePayloadValue}`,
|
|
458
|
-
consensusBlockValueEngine: `${consensusBlockValueEngine}`,
|
|
459
|
-
blockValueEngine: `${blockValueEngine}`,
|
|
460
|
-
shouldOverrideBuilder,
|
|
461
|
-
slot,
|
|
418
|
+
const builderPromise = isBuilderEnabled
|
|
419
|
+
? produceBuilderBlindedBlock(slot, randaoReveal, graffiti, {
|
|
420
|
+
feeRecipient,
|
|
421
|
+
// can't do fee recipient checks as builder bid doesn't return feeRecipient as of now
|
|
422
|
+
strictFeeRecipientCheck: false,
|
|
423
|
+
// skip checking and recomputing head in these individual produce calls
|
|
424
|
+
skipHeadChecksAndUpdate: true,
|
|
425
|
+
commonBlockBody,
|
|
426
|
+
})
|
|
427
|
+
: Promise.reject(new Error("Builder disabled"));
|
|
428
|
+
const enginePromise = isEngineEnabled
|
|
429
|
+
? produceEngineFullBlockOrContents(slot, randaoReveal, graffiti, {
|
|
430
|
+
feeRecipient,
|
|
431
|
+
strictFeeRecipientCheck,
|
|
432
|
+
// skip checking and recomputing head in these individual produce calls
|
|
433
|
+
skipHeadChecksAndUpdate: true,
|
|
434
|
+
commonBlockBody,
|
|
435
|
+
}).then((engineBlock) => {
|
|
436
|
+
// Once the engine returns a block, in the event of either:
|
|
437
|
+
// - suspected builder censorship
|
|
438
|
+
// - builder boost factor set to 0 or builder selection `executionalways`
|
|
439
|
+
// we don't need to wait for builder block as engine block will always be selected
|
|
440
|
+
if (engineBlock.shouldOverrideBuilder ||
|
|
441
|
+
builderBoostFactor === BigInt(0) ||
|
|
442
|
+
builderSelection === routes.validator.BuilderSelection.ExecutionAlways) {
|
|
443
|
+
controller.abort();
|
|
444
|
+
}
|
|
445
|
+
return engineBlock;
|
|
446
|
+
})
|
|
447
|
+
: Promise.reject(new Error("Engine disabled"));
|
|
448
|
+
const [builder, engine] = await resolveOrRacePromises([builderPromise, enginePromise], {
|
|
449
|
+
resolveTimeoutMs: BLOCK_PRODUCTION_RACE_CUTOFF_MS,
|
|
450
|
+
raceTimeoutMs: BLOCK_PRODUCTION_RACE_TIMEOUT_MS,
|
|
451
|
+
signal: controller.signal,
|
|
452
|
+
});
|
|
453
|
+
if (builder.status === "pending" && engine.status === "pending") {
|
|
454
|
+
throw Error("Builder and engine both failed to produce the block within timeout");
|
|
455
|
+
}
|
|
456
|
+
if (builder.status === "rejected" && engine.status === "rejected") {
|
|
457
|
+
throw Error("Builder and engine both failed to produce the block");
|
|
458
|
+
}
|
|
459
|
+
if (engine.status === "rejected" && isEngineEnabled) {
|
|
460
|
+
logger.warn("Engine failed to produce the block", {
|
|
461
|
+
...loggerContext,
|
|
462
|
+
durationMs: engine.durationMs,
|
|
463
|
+
}, engine.reason);
|
|
464
|
+
}
|
|
465
|
+
if (builder.status === "rejected" && isBuilderEnabled) {
|
|
466
|
+
logger.warn("Builder failed to produce the block", {
|
|
467
|
+
...loggerContext,
|
|
468
|
+
durationMs: builder.durationMs,
|
|
469
|
+
}, builder.reason);
|
|
470
|
+
}
|
|
471
|
+
// handle shouldOverrideBuilder separately
|
|
472
|
+
if (engine.status === "fulfilled" && engine.value.shouldOverrideBuilder) {
|
|
473
|
+
logger.info("Selected engine block: censorship suspected in builder blocks", {
|
|
474
|
+
...loggerContext,
|
|
475
|
+
durationMs: engine.durationMs,
|
|
476
|
+
shouldOverrideBuilder: engine.value.shouldOverrideBuilder,
|
|
477
|
+
...getBlockValueLogInfo(engine.value),
|
|
462
478
|
});
|
|
479
|
+
return { ...engine.value, executionPayloadBlinded: false, executionPayloadSource: ProducedBlockSource.engine };
|
|
463
480
|
}
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
builderBoostFactor !== MAX_BUILDER_BOOST_FACTOR &&
|
|
470
|
-
(builderBoostFactor === BigInt(0) ||
|
|
471
|
-
blockValueEngine >= (blockValueBuilder * builderBoostFactor) / BigInt(100))) {
|
|
472
|
-
executionPayloadSource = ProducedBlockSource.engine;
|
|
473
|
-
}
|
|
474
|
-
else {
|
|
475
|
-
executionPayloadSource = ProducedBlockSource.builder;
|
|
476
|
-
}
|
|
477
|
-
break;
|
|
478
|
-
}
|
|
479
|
-
case routes.validator.BuilderSelection.ExecutionOnly: {
|
|
480
|
-
executionPayloadSource = ProducedBlockSource.engine;
|
|
481
|
-
break;
|
|
482
|
-
}
|
|
483
|
-
// For everything else just select the builder
|
|
484
|
-
default: {
|
|
485
|
-
executionPayloadSource = ProducedBlockSource.builder;
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
logger.info(`Selected executionPayloadSource=${executionPayloadSource} block`, {
|
|
489
|
-
builderSelection,
|
|
490
|
-
// winston logger doesn't like bigint
|
|
491
|
-
builderBoostFactor: `${builderBoostFactor}`,
|
|
492
|
-
enginePayloadValue: `${enginePayloadValue}`,
|
|
493
|
-
builderPayloadValue: `${builderPayloadValue}`,
|
|
494
|
-
consensusBlockValueEngine: `${consensusBlockValueEngine}`,
|
|
495
|
-
consensusBlockValueBuilder: `${consensusBlockValueBuilder}`,
|
|
496
|
-
blockValueEngine: `${blockValueEngine}`,
|
|
497
|
-
blockValueBuilder: `${blockValueBuilder}`,
|
|
498
|
-
shouldOverrideBuilder,
|
|
499
|
-
slot,
|
|
481
|
+
if (builder.status === "fulfilled" && engine.status !== "fulfilled") {
|
|
482
|
+
logger.info("Selected builder block: no engine block produced", {
|
|
483
|
+
...loggerContext,
|
|
484
|
+
durationMs: builder.durationMs,
|
|
485
|
+
...getBlockValueLogInfo(builder.value),
|
|
500
486
|
});
|
|
487
|
+
return { ...builder.value, executionPayloadBlinded: true, executionPayloadSource: ProducedBlockSource.builder };
|
|
501
488
|
}
|
|
502
|
-
|
|
503
|
-
executionPayloadSource = ProducedBlockSource.engine;
|
|
489
|
+
if (engine.status === "fulfilled" && builder.status !== "fulfilled") {
|
|
504
490
|
logger.info("Selected engine block: no builder block produced", {
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
blockValueEngine: `${blockValueEngine}`,
|
|
509
|
-
shouldOverrideBuilder,
|
|
510
|
-
slot,
|
|
491
|
+
...loggerContext,
|
|
492
|
+
durationMs: engine.durationMs,
|
|
493
|
+
...getBlockValueLogInfo(engine.value),
|
|
511
494
|
});
|
|
495
|
+
return { ...engine.value, executionPayloadBlinded: false, executionPayloadSource: ProducedBlockSource.engine };
|
|
512
496
|
}
|
|
513
|
-
|
|
514
|
-
executionPayloadSource =
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
blockValueBuilder: `${blockValueBuilder}`,
|
|
520
|
-
shouldOverrideBuilder,
|
|
521
|
-
slot,
|
|
497
|
+
if (engine.status === "fulfilled" && builder.status === "fulfilled") {
|
|
498
|
+
const executionPayloadSource = selectBlockProductionSource({
|
|
499
|
+
builderBlockValue: builder.value.executionPayloadValue + builder.value.consensusBlockValue,
|
|
500
|
+
engineBlockValue: engine.value.executionPayloadValue + engine.value.consensusBlockValue,
|
|
501
|
+
builderBoostFactor,
|
|
502
|
+
builderSelection,
|
|
522
503
|
});
|
|
504
|
+
logger.info(`Selected ${executionPayloadSource} block`, {
|
|
505
|
+
...loggerContext,
|
|
506
|
+
engineDurationMs: engine.durationMs,
|
|
507
|
+
...getBlockValueLogInfo(engine.value, ProducedBlockSource.engine),
|
|
508
|
+
builderDurationMs: builder.durationMs,
|
|
509
|
+
...getBlockValueLogInfo(builder.value, ProducedBlockSource.builder),
|
|
510
|
+
});
|
|
511
|
+
if (executionPayloadSource === ProducedBlockSource.engine) {
|
|
512
|
+
return {
|
|
513
|
+
...engine.value,
|
|
514
|
+
executionPayloadBlinded: false,
|
|
515
|
+
executionPayloadSource,
|
|
516
|
+
};
|
|
517
|
+
}
|
|
518
|
+
else {
|
|
519
|
+
return {
|
|
520
|
+
...builder.value,
|
|
521
|
+
executionPayloadBlinded: true,
|
|
522
|
+
executionPayloadSource,
|
|
523
|
+
};
|
|
524
|
+
}
|
|
523
525
|
}
|
|
524
|
-
|
|
525
|
-
throw Error(`Failed to produce engine or builder block for slot=${slot}`);
|
|
526
|
-
}
|
|
527
|
-
if (executionPayloadSource === ProducedBlockSource.engine) {
|
|
528
|
-
return {
|
|
529
|
-
...fullBlock,
|
|
530
|
-
executionPayloadBlinded: false,
|
|
531
|
-
executionPayloadSource,
|
|
532
|
-
};
|
|
533
|
-
}
|
|
534
|
-
else {
|
|
535
|
-
return {
|
|
536
|
-
...blindedBlock,
|
|
537
|
-
executionPayloadBlinded: true,
|
|
538
|
-
executionPayloadSource,
|
|
539
|
-
};
|
|
540
|
-
}
|
|
526
|
+
throw Error("Unreachable error occurred during the builder and execution block production");
|
|
541
527
|
};
|
|
542
528
|
const produceBlock = async function produceBlock(slot, randaoReveal, graffiti) {
|
|
543
529
|
const producedData = await produceEngineFullBlockOrContents(slot, randaoReveal, graffiti);
|