@lodestar/beacon-node 1.41.0 → 1.42.0-dev.4118b5b440
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 +35 -16
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/state/utils.d.ts +2 -2
- package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
- package/lib/api/impl/beacon/state/utils.js.map +1 -1
- package/lib/api/impl/validator/index.d.ts.map +1 -1
- package/lib/api/impl/validator/index.js +6 -2
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.d.ts +0 -1
- package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
- package/lib/chain/archiveStore/archiveStore.js +0 -9
- package/lib/chain/archiveStore/archiveStore.js.map +1 -1
- package/lib/chain/archiveStore/interface.d.ts +4 -4
- package/lib/chain/archiveStore/interface.d.ts.map +1 -1
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +4 -4
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +4 -1
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.js +38 -0
- package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
- package/lib/chain/blocks/blockInput/types.d.ts +4 -3
- package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
- package/lib/chain/blocks/blockInput/types.js +1 -0
- package/lib/chain/blocks/blockInput/types.js.map +1 -1
- package/lib/chain/blocks/importBlock.d.ts.map +1 -1
- package/lib/chain/blocks/importBlock.js +29 -9
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/importExecutionPayload.d.ts +48 -0
- package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -0
- package/lib/chain/blocks/importExecutionPayload.js +159 -0
- package/lib/chain/blocks/importExecutionPayload.js.map +1 -0
- package/lib/chain/blocks/payloadEnvelopeInput/index.d.ts +3 -0
- package/lib/chain/blocks/payloadEnvelopeInput/index.d.ts.map +1 -0
- package/lib/chain/blocks/payloadEnvelopeInput/index.js +3 -0
- package/lib/chain/blocks/payloadEnvelopeInput/index.js.map +1 -0
- package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +80 -0
- package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -0
- package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +248 -0
- package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -0
- package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +29 -0
- package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -0
- package/lib/chain/blocks/payloadEnvelopeInput/types.js +11 -0
- package/lib/chain/blocks/payloadEnvelopeInput/types.js.map +1 -0
- package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +15 -0
- package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -0
- package/lib/chain/blocks/payloadEnvelopeProcessor.js +46 -0
- package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -0
- package/lib/chain/blocks/types.d.ts +7 -0
- package/lib/chain/blocks/types.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksSignatures.js +1 -1
- package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
- package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts +12 -0
- package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts.map +1 -0
- package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js +40 -0
- package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js.map +1 -0
- package/lib/chain/chain.d.ts +10 -5
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +44 -10
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/errors/executionPayloadEnvelope.d.ts +12 -2
- package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
- package/lib/chain/errors/executionPayloadEnvelope.js +3 -1
- package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
- package/lib/chain/forkChoice/index.d.ts.map +1 -1
- package/lib/chain/forkChoice/index.js +0 -10
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/interface.d.ts +8 -5
- package/lib/chain/interface.d.ts.map +1 -1
- package/lib/chain/opPools/utils.js +1 -1
- package/lib/chain/opPools/utils.js.map +1 -1
- package/lib/chain/prepareNextSlot.d.ts.map +1 -1
- package/lib/chain/prepareNextSlot.js +6 -2
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.js +6 -1
- package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/regen/errors.d.ts +11 -1
- package/lib/chain/regen/errors.d.ts.map +1 -1
- package/lib/chain/regen/errors.js +2 -0
- package/lib/chain/regen/errors.js.map +1 -1
- package/lib/chain/regen/interface.d.ts +14 -6
- package/lib/chain/regen/interface.d.ts.map +1 -1
- package/lib/chain/regen/interface.js +2 -0
- package/lib/chain/regen/interface.js.map +1 -1
- package/lib/chain/regen/queued.d.ts +11 -6
- package/lib/chain/regen/queued.d.ts.map +1 -1
- package/lib/chain/regen/queued.js +40 -8
- package/lib/chain/regen/queued.js.map +1 -1
- package/lib/chain/regen/regen.d.ts +5 -0
- package/lib/chain/regen/regen.d.ts.map +1 -1
- package/lib/chain/regen/regen.js +33 -6
- package/lib/chain/regen/regen.js.map +1 -1
- package/lib/chain/seenCache/index.d.ts +1 -1
- package/lib/chain/seenCache/index.d.ts.map +1 -1
- package/lib/chain/seenCache/index.js +1 -1
- package/lib/chain/seenCache/index.js.map +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.js +2 -2
- package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +38 -0
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -0
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +76 -0
- package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -0
- package/lib/chain/stateCache/datastore/db.d.ts +4 -5
- package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
- package/lib/chain/stateCache/datastore/db.js +32 -10
- package/lib/chain/stateCache/datastore/db.js.map +1 -1
- package/lib/chain/stateCache/datastore/file.d.ts +1 -1
- package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
- package/lib/chain/stateCache/datastore/file.js +5 -5
- package/lib/chain/stateCache/datastore/file.js.map +1 -1
- package/lib/chain/stateCache/datastore/types.d.ts +1 -1
- package/lib/chain/stateCache/datastore/types.d.ts.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts +7 -4
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.js +8 -3
- package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +33 -14
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.js +217 -119
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/stateCache/types.d.ts +15 -8
- package/lib/chain/stateCache/types.d.ts.map +1 -1
- package/lib/chain/stateCache/types.js.map +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.js +30 -19
- package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
- package/lib/chain/validation/lightClientFinalityUpdate.js +1 -1
- package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
- package/lib/chain/validation/lightClientOptimisticUpdate.js +1 -1
- package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
- package/lib/chain/validation/syncCommittee.d.ts +2 -2
- package/lib/chain/validation/syncCommittee.d.ts.map +1 -1
- package/lib/chain/validation/syncCommittee.js +12 -11
- package/lib/chain/validation/syncCommittee.js.map +1 -1
- package/lib/chain/validation/voluntaryExit.d.ts.map +1 -1
- package/lib/chain/validation/voluntaryExit.js +2 -2
- package/lib/chain/validation/voluntaryExit.js.map +1 -1
- package/lib/chain/validatorMonitor.d.ts +2 -1
- package/lib/chain/validatorMonitor.d.ts.map +1 -1
- package/lib/chain/validatorMonitor.js +4 -1
- package/lib/chain/validatorMonitor.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +2 -2
- package/lib/metrics/metrics/lodestar.d.ts +40 -4
- package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
- package/lib/metrics/metrics/lodestar.js +93 -15
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/gossip/encoding.d.ts.map +1 -1
- package/lib/network/gossip/encoding.js +15 -0
- package/lib/network/gossip/encoding.js.map +1 -1
- package/lib/network/interface.d.ts +1 -1
- package/lib/network/interface.d.ts.map +1 -1
- package/lib/network/network.d.ts +1 -1
- package/lib/network/network.d.ts.map +1 -1
- package/lib/network/network.js +4 -4
- package/lib/network/network.js.map +1 -1
- package/lib/network/processor/extractSlotRootFns.d.ts +1 -1
- package/lib/network/processor/extractSlotRootFns.d.ts.map +1 -1
- package/lib/network/processor/extractSlotRootFns.js +15 -5
- package/lib/network/processor/extractSlotRootFns.js.map +1 -1
- package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
- package/lib/network/processor/gossipHandlers.js +39 -9
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/index.d.ts +12 -7
- package/lib/network/processor/index.d.ts.map +1 -1
- package/lib/network/processor/index.js +99 -78
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.d.ts +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.js +1 -1
- package/lib/sync/backfill/backfill.d.ts +1 -1
- package/lib/sync/backfill/backfill.js +1 -1
- package/lib/sync/constants.d.ts +1 -1
- package/lib/sync/constants.js +1 -1
- package/lib/sync/unknownBlock.d.ts +3 -9
- package/lib/sync/unknownBlock.d.ts.map +1 -1
- package/lib/sync/unknownBlock.js +8 -41
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/util/sszBytes.d.ts +4 -1
- package/lib/util/sszBytes.d.ts.map +1 -1
- package/lib/util/sszBytes.js +69 -12
- package/lib/util/sszBytes.js.map +1 -1
- package/package.json +15 -15
- package/src/api/impl/beacon/blocks/index.ts +36 -17
- package/src/api/impl/beacon/state/utils.ts +2 -2
- package/src/api/impl/validator/index.ts +8 -4
- package/src/chain/archiveStore/archiveStore.ts +0 -10
- package/src/chain/archiveStore/interface.ts +4 -4
- package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +8 -5
- package/src/chain/archiveStore/utils/archiveBlocks.ts +59 -1
- package/src/chain/blocks/blockInput/types.ts +4 -3
- package/src/chain/blocks/importBlock.ts +47 -8
- package/src/chain/blocks/importExecutionPayload.ts +241 -0
- package/src/chain/blocks/payloadEnvelopeInput/index.ts +2 -0
- package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +336 -0
- package/src/chain/blocks/payloadEnvelopeInput/types.ts +33 -0
- package/src/chain/blocks/payloadEnvelopeProcessor.ts +61 -0
- package/src/chain/blocks/types.ts +8 -0
- package/src/chain/blocks/verifyBlocksSignatures.ts +1 -1
- package/src/chain/blocks/writePayloadEnvelopeInputToDb.ts +55 -0
- package/src/chain/chain.ts +60 -15
- package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
- package/src/chain/forkChoice/index.ts +0 -10
- package/src/chain/interface.ts +8 -5
- package/src/chain/opPools/utils.ts +1 -1
- package/src/chain/prepareNextSlot.ts +6 -2
- package/src/chain/produceBlock/computeNewStateRoot.ts +6 -1
- package/src/chain/produceBlock/produceBlockBody.ts +1 -1
- package/src/chain/regen/errors.ts +6 -1
- package/src/chain/regen/interface.ts +14 -6
- package/src/chain/regen/queued.ts +48 -12
- package/src/chain/regen/regen.ts +37 -7
- package/src/chain/seenCache/index.ts +1 -1
- package/src/chain/seenCache/seenGossipBlockInput.ts +2 -2
- package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +106 -0
- package/src/chain/stateCache/datastore/db.ts +33 -10
- package/src/chain/stateCache/datastore/file.ts +6 -5
- package/src/chain/stateCache/datastore/types.ts +3 -2
- package/src/chain/stateCache/fifoBlockStateCache.ts +10 -4
- package/src/chain/stateCache/persistentCheckpointsCache.ts +248 -139
- package/src/chain/stateCache/types.ts +18 -8
- package/src/chain/validation/executionPayloadEnvelope.ts +38 -25
- package/src/chain/validation/lightClientFinalityUpdate.ts +1 -1
- package/src/chain/validation/lightClientOptimisticUpdate.ts +1 -1
- package/src/chain/validation/syncCommittee.ts +15 -14
- package/src/chain/validation/voluntaryExit.ts +2 -1
- package/src/chain/validatorMonitor.ts +11 -1
- package/src/execution/engine/interface.ts +2 -2
- package/src/metrics/metrics/lodestar.ts +100 -19
- package/src/network/gossip/encoding.ts +16 -0
- package/src/network/interface.ts +1 -1
- package/src/network/network.ts +4 -4
- package/src/network/processor/extractSlotRootFns.ts +19 -6
- package/src/network/processor/gossipHandlers.ts +45 -8
- package/src/network/processor/index.ts +110 -89
- package/src/network/reqresp/ReqRespBeaconNode.ts +1 -1
- package/src/sync/backfill/backfill.ts +1 -1
- package/src/sync/constants.ts +1 -1
- package/src/sync/unknownBlock.ts +10 -50
- package/src/util/sszBytes.ts +90 -10
- package/lib/chain/archiveStore/utils/archivePayloads.d.ts +0 -7
- package/lib/chain/archiveStore/utils/archivePayloads.d.ts.map +0 -1
- package/lib/chain/archiveStore/utils/archivePayloads.js +0 -10
- package/lib/chain/archiveStore/utils/archivePayloads.js.map +0 -1
- package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts +0 -15
- package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +0 -1
- package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js +0 -28
- package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +0 -1
- package/src/chain/archiveStore/utils/archivePayloads.ts +0 -15
- package/src/chain/seenCache/seenExecutionPayloadEnvelope.ts +0 -34
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { JobItemQueue } from "../../util/queue/index.js";
|
|
2
|
+
import { importExecutionPayload } from "./importExecutionPayload.js";
|
|
3
|
+
// TODO GLOAS: Set to be equal to DEFAULT_MAX_PENDING_UNFINALIZED_PAYLOAD_ENVELOPE_WRITES for now
|
|
4
|
+
const QUEUE_MAX_LENGTH = 16;
|
|
5
|
+
var PayloadEnvelopeImportStatus;
|
|
6
|
+
(function (PayloadEnvelopeImportStatus) {
|
|
7
|
+
PayloadEnvelopeImportStatus["queued"] = "queued";
|
|
8
|
+
PayloadEnvelopeImportStatus["importing"] = "importing";
|
|
9
|
+
PayloadEnvelopeImportStatus["imported"] = "imported";
|
|
10
|
+
})(PayloadEnvelopeImportStatus || (PayloadEnvelopeImportStatus = {}));
|
|
11
|
+
/**
|
|
12
|
+
* PayloadEnvelopeProcessor processes payload envelope jobs in a queued fashion, one after the other.
|
|
13
|
+
*/
|
|
14
|
+
export class PayloadEnvelopeProcessor {
|
|
15
|
+
jobQueue;
|
|
16
|
+
importStatus = new WeakMap();
|
|
17
|
+
constructor(chain, metrics, signal) {
|
|
18
|
+
this.jobQueue = new JobItemQueue((payloadInput, opts) => {
|
|
19
|
+
this.importStatus.set(payloadInput, PayloadEnvelopeImportStatus.importing);
|
|
20
|
+
return importExecutionPayload.call(chain, payloadInput, opts);
|
|
21
|
+
}, { maxLength: QUEUE_MAX_LENGTH, noYieldIfOneItem: true, signal }, metrics?.payloadEnvelopeProcessorQueue ?? undefined);
|
|
22
|
+
}
|
|
23
|
+
async processPayloadEnvelopeJob(payloadInput, opts = {}) {
|
|
24
|
+
if (!payloadInput.isComplete()) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (this.importStatus.get(payloadInput) !== undefined) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
await this.jobQueue.waitForSpace();
|
|
31
|
+
// Re-check after await, as another call may have queued this payload.
|
|
32
|
+
if (this.importStatus.get(payloadInput) !== undefined) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this.importStatus.set(payloadInput, PayloadEnvelopeImportStatus.queued);
|
|
36
|
+
try {
|
|
37
|
+
await this.jobQueue.push(payloadInput, opts);
|
|
38
|
+
this.importStatus.set(payloadInput, PayloadEnvelopeImportStatus.imported);
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
this.importStatus.delete(payloadInput);
|
|
42
|
+
throw e;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=payloadEnvelopeProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payloadEnvelopeProcessor.js","sourceRoot":"","sources":["../../../src/chain/blocks/payloadEnvelopeProcessor.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAGvD,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AAGnE,iGAAiG;AACjG,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,IAAK,2BAIJ;AAJD,WAAK,2BAA2B;IAC9B,gDAAiB,CAAA;IACjB,sDAAuB,CAAA;IACvB,oDAAqB,CAAA;AAAC,CACxB,EAJK,2BAA2B,KAA3B,2BAA2B,QAI/B;AAED;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAC1B,QAAQ,CAAgE;IAChE,YAAY,GAAG,IAAI,OAAO,EAAqD,CAAC;IAEjG,YAAY,KAAkB,EAAE,OAAuB,EAAE,MAAmB,EAAE;QAC5E,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAC9B,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;YAC3E,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAAA,CAC/D,EACD,EAAC,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAC,EAC7D,OAAO,EAAE,6BAA6B,IAAI,SAAS,CACpD,CAAC;IAAA,CACH;IAED,KAAK,CAAC,yBAAyB,CAAC,YAAkC,EAAE,IAAI,GAAsB,EAAE,EAAiB;QAC/G,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAEnC,sEAAsE;QACtE,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,2BAA2B,CAAC,MAAM,CAAC,CAAC;QAExE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvC,MAAM,CAAC,CAAC;QACV,CAAC;IAAA,CACF;CACF"}
|
|
@@ -28,6 +28,13 @@ export declare enum BlobSidecarValidation {
|
|
|
28
28
|
*/
|
|
29
29
|
Full = 1
|
|
30
30
|
}
|
|
31
|
+
export type ImportPayloadOpts = {
|
|
32
|
+
/**
|
|
33
|
+
* Set to true if envelope signature was already verified (e.g., during gossip/API validation).
|
|
34
|
+
* When false/undefined, signature will be verified during import.
|
|
35
|
+
*/
|
|
36
|
+
validSignature?: boolean;
|
|
37
|
+
};
|
|
31
38
|
export type ImportBlockOpts = {
|
|
32
39
|
/**
|
|
33
40
|
* TEMP: Review if this is safe, Lighthouse always imports attestations even in finalized sync.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAC,yBAAyB,EAAE,sBAAsB,EAAqB,MAAM,4BAA4B,CAAC;AACjH,OAAO,KAAK,EAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAElD,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,UAAU,gBAAgB;CAC3B;AAED,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC;IACnC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,CAMrG;AAED,oBAAY,oBAAoB;IAC9B,IAAI,IAAA;IACJ,KAAK,IAAA;CACN;AAED,oBAAY,qBAAqB;IAC/B,gFAAgF;IAChF,UAAU,IAAA;IACV;;;;OAIG;IACH,IAAI,IAAA;CACL;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,yBAAyB,CAAC;IACrC,eAAe,EAAE,IAAI,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,eAAe,EAAE,yBAAyB,CAAC;IAC3C,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C;;OAEG;IACH,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAC,yBAAyB,EAAC,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAC,yBAAyB,EAAE,sBAAsB,EAAqB,MAAM,4BAA4B,CAAC;AACjH,OAAO,KAAK,EAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAElD,oBAAY,iBAAiB;IAC3B,KAAK,UAAU;IACf,IAAI,SAAS;IACb,UAAU,gBAAgB;CAC3B;AAED,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC;IACnC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;CACpC,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,CAMrG;AAED,oBAAY,oBAAoB;IAC9B,IAAI,IAAA;IACJ,KAAK,IAAA;CACN;AAED,oBAAY,qBAAqB;IAC/B,gFAAgF;IAChF,UAAU,IAAA;IACV;;;;OAIG;IACH,IAAI,IAAA;CACL;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,yBAAyB,CAAC;IACrC,eAAe,EAAE,IAAI,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,eAAe,EAAE,yBAAyB,CAAC;IAC3C,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C;;OAEG;IACH,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,6BAA6B;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC"}
|
|
@@ -23,7 +23,7 @@ export async function verifyBlocksSignatures(config, bls, logger, metrics, preSt
|
|
|
23
23
|
Promise.resolve(true)
|
|
24
24
|
: //
|
|
25
25
|
// Verify signatures per block to track which block is invalid
|
|
26
|
-
bls.verifySignatureSets(getBlockSignatureSets(config, currentSyncCommitteeIndexed, block, indexedAttestationsByBlock[i], {
|
|
26
|
+
bls.verifySignatureSets(getBlockSignatureSets(config, currentSyncCommitteeIndexed, preState0, block, indexedAttestationsByBlock[i], {
|
|
27
27
|
skipProposerSignature: opts.validProposerSignature,
|
|
28
28
|
}));
|
|
29
29
|
// getBlockSignatureSets() takes 45ms in benchmarks for 2022Q2 mainnet blocks (100 sigs). When syncing a 32 blocks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyBlocksSignatures.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksSignatures.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAI5F,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAGnE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAoB,EACpB,GAAiB,EACjB,MAAc,EACd,OAAuB,EACvB,SAAoC,EACpC,MAA2B,EAC3B,0BAAkD,EAClD,IAAqB,EACoB;IACzC,MAAM,eAAe,GAAuB,EAAE,CAAC;IAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1F,MAAM,2BAA2B,GAAG,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAEnF,iHAAiH;IACjH,qFAAqF;IACrF,+GAA+G;IAC/G,uDAAuD;IACvD,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,wGAAwG;QACxG,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe;YACvC,CAAC,CAAC,kCAAkC;gBAClC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YACvB,CAAC,CAAC,EAAE;gBACF,8DAA8D;gBAC9D,GAAG,CAAC,mBAAmB,CACrB,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"verifyBlocksSignatures.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksSignatures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BeaconChain } from "../chain.js";
|
|
2
|
+
import { PayloadEnvelopeInput } from "../seenCache/seenPayloadEnvelopeInput.js";
|
|
3
|
+
/**
|
|
4
|
+
* Persists payload envelope data to DB. This operation must be eventually completed if a payload is imported.
|
|
5
|
+
*
|
|
6
|
+
* TODO GLOAS: Persist envelope metadata (stateRoot, executionRequests, builderIndex, etc.) without the full
|
|
7
|
+
* execution payload body — only keep the blockHash reference. The EL already stores the payload.
|
|
8
|
+
* See https://github.com/ChainSafe/lodestar/issues/5671
|
|
9
|
+
*/
|
|
10
|
+
export declare function writePayloadEnvelopeInputToDb(this: BeaconChain, payloadInput: PayloadEnvelopeInput): Promise<void>;
|
|
11
|
+
export declare function persistPayloadEnvelopeInput(this: BeaconChain, payloadInput: PayloadEnvelopeInput): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=writePayloadEnvelopeInputToDb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writePayloadEnvelopeInputToDb.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/writePayloadEnvelopeInputToDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,oBAAoB,EAAC,MAAM,0CAA0C,CAAC;AAG9E;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { writeDataColumnsToDb } from "./writeBlockInputToDb.js";
|
|
2
|
+
/**
|
|
3
|
+
* Persists payload envelope data to DB. This operation must be eventually completed if a payload is imported.
|
|
4
|
+
*
|
|
5
|
+
* TODO GLOAS: Persist envelope metadata (stateRoot, executionRequests, builderIndex, etc.) without the full
|
|
6
|
+
* execution payload body — only keep the blockHash reference. The EL already stores the payload.
|
|
7
|
+
* See https://github.com/ChainSafe/lodestar/issues/5671
|
|
8
|
+
*/
|
|
9
|
+
export async function writePayloadEnvelopeInputToDb(payloadInput) {
|
|
10
|
+
const envelope = payloadInput.getPayloadEnvelope();
|
|
11
|
+
const blockRootHex = payloadInput.blockRootHex;
|
|
12
|
+
const envelopeBytes = this.serializedCache.get(envelope);
|
|
13
|
+
const envelopePromise = envelopeBytes
|
|
14
|
+
? this.db.executionPayloadEnvelope.putBinary(this.db.executionPayloadEnvelope.getId(envelope), envelopeBytes)
|
|
15
|
+
: this.db.executionPayloadEnvelope.add(envelope);
|
|
16
|
+
// Write envelope and data columns in parallel (reuses shared column writing logic)
|
|
17
|
+
await Promise.all([envelopePromise, writeDataColumnsToDb.call(this, payloadInput)]);
|
|
18
|
+
this.logger.debug("Persisted payload envelope to db", {
|
|
19
|
+
slot: payloadInput.slot,
|
|
20
|
+
root: blockRootHex,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export async function persistPayloadEnvelopeInput(payloadInput) {
|
|
24
|
+
await writePayloadEnvelopeInputToDb
|
|
25
|
+
.call(this, payloadInput)
|
|
26
|
+
.catch((e) => {
|
|
27
|
+
this.logger.error("Error persisting payload envelope in hot db", {
|
|
28
|
+
slot: payloadInput.slot,
|
|
29
|
+
root: payloadInput.blockRootHex,
|
|
30
|
+
}, e);
|
|
31
|
+
})
|
|
32
|
+
.finally(() => {
|
|
33
|
+
this.seenPayloadEnvelopeInputCache.prune(payloadInput.blockRootHex);
|
|
34
|
+
this.logger.debug("Pruned payload envelope input", {
|
|
35
|
+
slot: payloadInput.slot,
|
|
36
|
+
root: payloadInput.blockRootHex,
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=writePayloadEnvelopeInputToDb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writePayloadEnvelopeInputToDb.js","sourceRoot":"","sources":["../../../src/chain/blocks/writePayloadEnvelopeInputToDb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAEjD,YAAkC,EACnB;IACf,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;IAE/C,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;QAC7G,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEnD,mFAAmF;IACnF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;QACpD,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,IAAI,EAAE,YAAY;KACnB,CAAC,CAAC;AAAA,CACJ;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAE/C,YAAkC,EACnB;IACf,MAAM,6BAA6B;SAChC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;SACxB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6CAA6C,EAC7C;YACE,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,YAAY;SAChC,EACD,CAAC,CACF,CAAC;IAAA,CACH,CAAC;SACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;YACjD,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,YAAY;SAChC,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;AAAA,CACN"}
|
package/lib/chain/chain.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PrivateKey } from "@libp2p/interface";
|
|
2
2
|
import { CompositeTypeAny, TreeView, Type } from "@chainsafe/ssz";
|
|
3
3
|
import { BeaconConfig } from "@lodestar/config";
|
|
4
|
-
import {
|
|
4
|
+
import { CheckpointWithPayloadStatus, IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
|
|
5
5
|
import { BeaconStateAllForks, CachedBeaconStateAllForks, EpochShuffling, PubkeyCache } from "@lodestar/state-transition";
|
|
6
6
|
import { BeaconBlock, BlindedBeaconBlock, DataColumnSidecars, Epoch, Root, RootHex, SignedBeaconBlock, Slot, Status, UintNum64, ValidatorIndex, Wei, deneb, phase0, rewards } from "@lodestar/types";
|
|
7
7
|
import { Logger } from "@lodestar/utils";
|
|
@@ -19,6 +19,8 @@ import { CheckpointBalancesCache } from "./balancesCache.js";
|
|
|
19
19
|
import { BeaconProposerCache } from "./beaconProposerCache.js";
|
|
20
20
|
import { IBlockInput } from "./blocks/blockInput/index.js";
|
|
21
21
|
import { BlockProcessor, ImportBlockOpts } from "./blocks/index.js";
|
|
22
|
+
import { PayloadEnvelopeProcessor } from "./blocks/payloadEnvelopeProcessor.js";
|
|
23
|
+
import { ImportPayloadOpts } from "./blocks/types.js";
|
|
22
24
|
import { IBlsVerifier } from "./bls/index.js";
|
|
23
25
|
import { ColumnReconstructionTracker } from "./ColumnReconstructionTracker.js";
|
|
24
26
|
import { ChainEventEmitter } from "./emitter.js";
|
|
@@ -32,7 +34,7 @@ import { AssembledBlockType, BlockType, ProduceResult } from "./produceBlock/ind
|
|
|
32
34
|
import { BlockAttributes } from "./produceBlock/produceBlockBody.js";
|
|
33
35
|
import { QueuedStateRegenerator, RegenCaller } from "./regen/index.js";
|
|
34
36
|
import { ReprocessController } from "./reprocess.js";
|
|
35
|
-
import { SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids,
|
|
37
|
+
import { PayloadEnvelopeInput, SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenSyncCommitteeMessages } from "./seenCache/index.js";
|
|
36
38
|
import { SeenAggregatedAttestations } from "./seenCache/seenAggregateAndProof.js";
|
|
37
39
|
import { SeenAttestationDatas } from "./seenCache/seenAttestationData.js";
|
|
38
40
|
import { SeenBlockAttesters } from "./seenCache/seenBlockAttesters.js";
|
|
@@ -60,6 +62,7 @@ export declare class BeaconChain implements IBeaconChain {
|
|
|
60
62
|
readonly reprocessController: ReprocessController;
|
|
61
63
|
readonly archiveStore: ArchiveStore;
|
|
62
64
|
readonly unfinalizedBlockWrites: JobItemQueue<[IBlockInput], void>;
|
|
65
|
+
readonly unfinalizedPayloadEnvelopeWrites: JobItemQueue<[PayloadEnvelopeInput], void>;
|
|
63
66
|
readonly attestationPool: AttestationPool;
|
|
64
67
|
readonly aggregatedAttestationPool: AggregatedAttestationPool;
|
|
65
68
|
readonly syncCommitteeMessagePool: SyncCommitteeMessagePool;
|
|
@@ -71,13 +74,13 @@ export declare class BeaconChain implements IBeaconChain {
|
|
|
71
74
|
readonly seenAggregators: SeenAggregators;
|
|
72
75
|
readonly seenPayloadAttesters: SeenPayloadAttesters;
|
|
73
76
|
readonly seenAggregatedAttestations: SeenAggregatedAttestations;
|
|
74
|
-
readonly seenExecutionPayloadEnvelopes: SeenExecutionPayloadEnvelopes;
|
|
75
77
|
readonly seenExecutionPayloadBids: SeenExecutionPayloadBids;
|
|
76
78
|
readonly seenBlockProposers: SeenBlockProposers;
|
|
77
79
|
readonly seenSyncCommitteeMessages: SeenSyncCommitteeMessages;
|
|
78
80
|
readonly seenContributionAndProof: SeenContributionAndProof;
|
|
79
81
|
readonly seenAttestationDatas: SeenAttestationDatas;
|
|
80
82
|
readonly seenBlockInputCache: SeenBlockInput;
|
|
83
|
+
readonly seenPayloadEnvelopeInputCache: SeenPayloadEnvelopeInput;
|
|
81
84
|
readonly seenBlockAttesters: SeenBlockAttesters;
|
|
82
85
|
readonly pubkeyCache: PubkeyCache;
|
|
83
86
|
readonly beaconProposerCache: BeaconProposerCache;
|
|
@@ -95,6 +98,7 @@ export declare class BeaconChain implements IBeaconChain {
|
|
|
95
98
|
readonly columnReconstructionTracker: ColumnReconstructionTracker;
|
|
96
99
|
readonly opts: IChainOptions;
|
|
97
100
|
protected readonly blockProcessor: BlockProcessor;
|
|
101
|
+
protected readonly payloadEnvelopeProcessor: PayloadEnvelopeProcessor;
|
|
98
102
|
protected readonly db: IBeaconDb;
|
|
99
103
|
private readonly cpStateDatastore?;
|
|
100
104
|
private abortController;
|
|
@@ -149,12 +153,12 @@ export declare class BeaconChain implements IBeaconChain {
|
|
|
149
153
|
finalized: boolean;
|
|
150
154
|
} | null>;
|
|
151
155
|
getPersistedCheckpointState(checkpoint?: phase0.Checkpoint): Promise<Uint8Array | null>;
|
|
152
|
-
getStateByCheckpoint(checkpoint:
|
|
156
|
+
getStateByCheckpoint(checkpoint: CheckpointWithPayloadStatus): {
|
|
153
157
|
state: BeaconStateAllForks;
|
|
154
158
|
executionOptimistic: boolean;
|
|
155
159
|
finalized: boolean;
|
|
156
160
|
} | null;
|
|
157
|
-
getStateOrBytesByCheckpoint(checkpoint:
|
|
161
|
+
getStateOrBytesByCheckpoint(checkpoint: CheckpointWithPayloadStatus): Promise<{
|
|
158
162
|
state: CachedBeaconStateAllForks | Uint8Array;
|
|
159
163
|
executionOptimistic: boolean;
|
|
160
164
|
finalized: boolean;
|
|
@@ -205,6 +209,7 @@ export declare class BeaconChain implements IBeaconChain {
|
|
|
205
209
|
}>;
|
|
206
210
|
processBlock(block: IBlockInput, opts?: ImportBlockOpts): Promise<void>;
|
|
207
211
|
processChainSegment(blocks: IBlockInput[], opts?: ImportBlockOpts): Promise<void>;
|
|
212
|
+
processExecutionPayload(payloadInput: PayloadEnvelopeInput, opts?: ImportPayloadOpts): Promise<void>;
|
|
208
213
|
getStatus(): Status;
|
|
209
214
|
recomputeForkChoiceHead(caller: ForkchoiceCaller): ProtoBlock;
|
|
210
215
|
predictProposerHead(slot: Slot): ProtoBlock;
|
package/lib/chain/chain.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
|
package/lib/chain/chain.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { UpdateHeadOpt, } from "@lodestar/fork-choice";
|
|
2
|
+
import { PayloadStatus, UpdateHeadOpt, getCheckpointPayloadStatus, } from "@lodestar/fork-choice";
|
|
3
3
|
import { BUILDER_INDEX_SELF_BUILD, EFFECTIVE_BALANCE_INCREMENT, GENESIS_SLOT, SLOTS_PER_EPOCH, isForkPostElectra, isForkPostGloas, } from "@lodestar/params";
|
|
4
4
|
import { computeAnchorCheckpoint, computeAttestationsRewards, computeBlockRewards, computeEndSlotAtEpoch, computeEpochAtSlot, computeStartSlotAtEpoch, computeSyncCommitteeRewards, getEffectiveBalanceIncrementsZeroInactive, getEffectiveBalancesFromStateBytes, processSlots, } from "@lodestar/state-transition";
|
|
5
5
|
import { isBlindedBeaconBlock, ssz, sszTypesFor, } from "@lodestar/types";
|
|
@@ -22,7 +22,9 @@ import { CheckpointBalancesCache } from "./balancesCache.js";
|
|
|
22
22
|
import { BeaconProposerCache } from "./beaconProposerCache.js";
|
|
23
23
|
import { isBlockInputBlobs, isBlockInputColumns } from "./blocks/blockInput/index.js";
|
|
24
24
|
import { BlockProcessor } from "./blocks/index.js";
|
|
25
|
+
import { PayloadEnvelopeProcessor } from "./blocks/payloadEnvelopeProcessor.js";
|
|
25
26
|
import { persistBlockInput } from "./blocks/writeBlockInputToDb.js";
|
|
27
|
+
import { persistPayloadEnvelopeInput } from "./blocks/writePayloadEnvelopeInputToDb.js";
|
|
26
28
|
import { BlsMultiThreadWorkerPool, BlsSingleThreadVerifier } from "./bls/index.js";
|
|
27
29
|
import { ColumnReconstructionTracker } from "./ColumnReconstructionTracker.js";
|
|
28
30
|
import { ChainEvent, ChainEventEmitter } from "./emitter.js";
|
|
@@ -37,7 +39,7 @@ import { BlockType } from "./produceBlock/index.js";
|
|
|
37
39
|
import { produceBlockBody, produceCommonBlockBody } from "./produceBlock/produceBlockBody.js";
|
|
38
40
|
import { QueuedStateRegenerator, RegenCaller } from "./regen/index.js";
|
|
39
41
|
import { ReprocessController } from "./reprocess.js";
|
|
40
|
-
import { SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids,
|
|
42
|
+
import { SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenSyncCommitteeMessages, } from "./seenCache/index.js";
|
|
41
43
|
import { SeenAggregatedAttestations } from "./seenCache/seenAggregateAndProof.js";
|
|
42
44
|
import { SeenAttestationDatas } from "./seenCache/seenAttestationData.js";
|
|
43
45
|
import { SeenBlockAttesters } from "./seenCache/seenBlockAttesters.js";
|
|
@@ -46,7 +48,7 @@ import { ShufflingCache } from "./shufflingCache.js";
|
|
|
46
48
|
import { DbCPStateDatastore, checkpointToDatastoreKey } from "./stateCache/datastore/db.js";
|
|
47
49
|
import { FileCPStateDatastore } from "./stateCache/datastore/file.js";
|
|
48
50
|
import { FIFOBlockStateCache } from "./stateCache/fifoBlockStateCache.js";
|
|
49
|
-
import { PersistentCheckpointStateCache } from "./stateCache/persistentCheckpointsCache.js";
|
|
51
|
+
import { PersistentCheckpointStateCache, fcCheckpointToHexPayload } from "./stateCache/persistentCheckpointsCache.js";
|
|
50
52
|
/**
|
|
51
53
|
* The maximum number of cached produced results to keep in memory.
|
|
52
54
|
*
|
|
@@ -62,6 +64,12 @@ const DEFAULT_MAX_CACHED_PRODUCED_RESULTS = 4;
|
|
|
62
64
|
* write can hold significant memory. Keep moderate to avoid OOM during sync.
|
|
63
65
|
*/
|
|
64
66
|
const DEFAULT_MAX_PENDING_UNFINALIZED_BLOCK_WRITES = 16;
|
|
67
|
+
/**
|
|
68
|
+
* The maximum number of pending unfinalized payload envelope writes to the database before backpressure is applied.
|
|
69
|
+
* Payload envelope write queue entries hold references to payload inputs (including columns),
|
|
70
|
+
* keeping them in memory. Keep moderate to avoid OOM during sync.
|
|
71
|
+
*/
|
|
72
|
+
const DEFAULT_MAX_PENDING_UNFINALIZED_PAYLOAD_ENVELOPE_WRITES = 16;
|
|
65
73
|
export class BeaconChain {
|
|
66
74
|
genesisTime;
|
|
67
75
|
genesisValidatorsRoot;
|
|
@@ -84,6 +92,7 @@ export class BeaconChain {
|
|
|
84
92
|
reprocessController;
|
|
85
93
|
archiveStore;
|
|
86
94
|
unfinalizedBlockWrites;
|
|
95
|
+
unfinalizedPayloadEnvelopeWrites;
|
|
87
96
|
// Ops pool
|
|
88
97
|
attestationPool;
|
|
89
98
|
aggregatedAttestationPool;
|
|
@@ -97,13 +106,13 @@ export class BeaconChain {
|
|
|
97
106
|
seenAggregators = new SeenAggregators();
|
|
98
107
|
seenPayloadAttesters = new SeenPayloadAttesters();
|
|
99
108
|
seenAggregatedAttestations;
|
|
100
|
-
seenExecutionPayloadEnvelopes = new SeenExecutionPayloadEnvelopes();
|
|
101
109
|
seenExecutionPayloadBids = new SeenExecutionPayloadBids();
|
|
102
110
|
seenBlockProposers = new SeenBlockProposers();
|
|
103
111
|
seenSyncCommitteeMessages = new SeenSyncCommitteeMessages();
|
|
104
112
|
seenContributionAndProof;
|
|
105
113
|
seenAttestationDatas;
|
|
106
114
|
seenBlockInputCache;
|
|
115
|
+
seenPayloadEnvelopeInputCache;
|
|
107
116
|
// Seen cache for liveness checks
|
|
108
117
|
seenBlockAttesters = new SeenBlockAttesters();
|
|
109
118
|
// Global state caches
|
|
@@ -123,6 +132,7 @@ export class BeaconChain {
|
|
|
123
132
|
columnReconstructionTracker;
|
|
124
133
|
opts;
|
|
125
134
|
blockProcessor;
|
|
135
|
+
payloadEnvelopeProcessor;
|
|
126
136
|
db;
|
|
127
137
|
// this is only available if nHistoricalStates is enabled
|
|
128
138
|
cpStateDatastore;
|
|
@@ -193,6 +203,13 @@ export class BeaconChain {
|
|
|
193
203
|
metrics,
|
|
194
204
|
logger,
|
|
195
205
|
});
|
|
206
|
+
this.seenPayloadEnvelopeInputCache = new SeenPayloadEnvelopeInput({
|
|
207
|
+
chainEvents: emitter,
|
|
208
|
+
signal,
|
|
209
|
+
serializedCache: this.serializedCache,
|
|
210
|
+
metrics,
|
|
211
|
+
logger,
|
|
212
|
+
});
|
|
196
213
|
this._earliestAvailableSlot = anchorState.slot;
|
|
197
214
|
this.shufflingCache = new ShufflingCache(metrics, logger, this.opts, [
|
|
198
215
|
{
|
|
@@ -226,7 +243,8 @@ export class BeaconChain {
|
|
|
226
243
|
const { checkpoint } = computeAnchorCheckpoint(config, anchorState);
|
|
227
244
|
blockStateCache.add(anchorState);
|
|
228
245
|
blockStateCache.setHeadState(anchorState);
|
|
229
|
-
|
|
246
|
+
const payloadPresent = getCheckpointPayloadStatus(anchorState, checkpoint.epoch) === PayloadStatus.FULL;
|
|
247
|
+
checkpointStateCache.add(checkpoint, anchorState, payloadPresent);
|
|
230
248
|
const forkChoice = initializeForkChoice(config, emitter, clock.currentSlot, anchorState, isAnchorStateFinalized, opts, this.justifiedBalancesGetter.bind(this), metrics, logger);
|
|
231
249
|
const regen = new QueuedStateRegenerator({
|
|
232
250
|
config,
|
|
@@ -246,6 +264,7 @@ export class BeaconChain {
|
|
|
246
264
|
}
|
|
247
265
|
this.reprocessController = new ReprocessController(this.metrics);
|
|
248
266
|
this.blockProcessor = new BlockProcessor(this, metrics, opts, signal);
|
|
267
|
+
this.payloadEnvelopeProcessor = new PayloadEnvelopeProcessor(this, metrics, signal);
|
|
249
268
|
this.forkChoice = forkChoice;
|
|
250
269
|
this.clock = clock;
|
|
251
270
|
this.regen = regen;
|
|
@@ -269,6 +288,10 @@ export class BeaconChain {
|
|
|
269
288
|
maxLength: DEFAULT_MAX_PENDING_UNFINALIZED_BLOCK_WRITES,
|
|
270
289
|
signal,
|
|
271
290
|
}, metrics?.unfinalizedBlockWritesQueue);
|
|
291
|
+
this.unfinalizedPayloadEnvelopeWrites = new JobItemQueue(persistPayloadEnvelopeInput.bind(this), {
|
|
292
|
+
maxLength: DEFAULT_MAX_PENDING_UNFINALIZED_PAYLOAD_ENVELOPE_WRITES,
|
|
293
|
+
signal,
|
|
294
|
+
}, metrics?.unfinalizedPayloadEnvelopeWritesQueue);
|
|
272
295
|
// always run PrepareNextSlotScheduler except for fork_choice spec tests
|
|
273
296
|
if (!opts?.disablePrepareNextSlot) {
|
|
274
297
|
new PrepareNextSlotScheduler(this, this.config, metrics, this.logger, signal);
|
|
@@ -294,6 +317,7 @@ export class BeaconChain {
|
|
|
294
317
|
// we can abort any ongoing unfinalized block writes.
|
|
295
318
|
// TODO: persist fork choice to disk and allow unfinalized block writes to complete.
|
|
296
319
|
this.unfinalizedBlockWrites.dropAllJobs();
|
|
320
|
+
this.unfinalizedPayloadEnvelopeWrites.dropAllJobs();
|
|
297
321
|
this.abortController.abort();
|
|
298
322
|
}
|
|
299
323
|
seenBlock(blockRoot) {
|
|
@@ -431,12 +455,15 @@ export class BeaconChain {
|
|
|
431
455
|
// return the last safe checkpoint state by default
|
|
432
456
|
return this.cpStateDatastore.readLatestSafe();
|
|
433
457
|
}
|
|
434
|
-
|
|
458
|
+
// TODO GLOAS: Need to revisit the design of this api. Currently we just retrieve FULL state of the checkpoint for backwards compatibility.
|
|
459
|
+
// because pre-gloas we always store FULL checkpoint state.
|
|
460
|
+
const persistedKey = checkpointToDatastoreKey(checkpoint, true);
|
|
435
461
|
return this.cpStateDatastore.read(persistedKey);
|
|
436
462
|
}
|
|
437
463
|
getStateByCheckpoint(checkpoint) {
|
|
438
464
|
// finalized or justified checkpoint states maynot be available with PersistentCheckpointStateCache, use getCheckpointStateOrBytes() api to get Uint8Array
|
|
439
|
-
const
|
|
465
|
+
const checkpointHexPayload = fcCheckpointToHexPayload(checkpoint);
|
|
466
|
+
const cachedStateCtx = this.regen.getCheckpointStateSync(checkpointHexPayload);
|
|
440
467
|
if (cachedStateCtx) {
|
|
441
468
|
const block = this.forkChoice.getBlockDefaultStatus(cachedStateCtx.latestBlockHeader.hashTreeRoot());
|
|
442
469
|
const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
|
|
@@ -449,7 +476,8 @@ export class BeaconChain {
|
|
|
449
476
|
return null;
|
|
450
477
|
}
|
|
451
478
|
async getStateOrBytesByCheckpoint(checkpoint) {
|
|
452
|
-
const
|
|
479
|
+
const checkpointHexPayload = fcCheckpointToHexPayload(checkpoint);
|
|
480
|
+
const cachedStateCtx = await this.regen.getCheckpointStateOrBytes(checkpointHexPayload);
|
|
453
481
|
if (cachedStateCtx) {
|
|
454
482
|
const block = this.forkChoice.getBlockDefaultStatus(checkpoint.root);
|
|
455
483
|
const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
|
|
@@ -702,6 +730,9 @@ export class BeaconChain {
|
|
|
702
730
|
async processChainSegment(blocks, opts) {
|
|
703
731
|
return this.blockProcessor.processBlocksJob(blocks, opts);
|
|
704
732
|
}
|
|
733
|
+
async processExecutionPayload(payloadInput, opts) {
|
|
734
|
+
return this.payloadEnvelopeProcessor.processPayloadEnvelopeJob(payloadInput, opts);
|
|
735
|
+
}
|
|
705
736
|
getStatus() {
|
|
706
737
|
const head = this.forkChoice.getHead();
|
|
707
738
|
const finalizedCheckpoint = this.forkChoice.getFinalizedCheckpoint();
|
|
@@ -893,7 +924,8 @@ export class BeaconChain {
|
|
|
893
924
|
* @param blockState state that declares justified checkpoint `checkpoint`
|
|
894
925
|
*/
|
|
895
926
|
closestJustifiedBalancesStateToCheckpoint(checkpoint, blockState) {
|
|
896
|
-
const
|
|
927
|
+
const checkpointHexPayload = fcCheckpointToHexPayload(checkpoint);
|
|
928
|
+
const state = this.regen.getCheckpointStateSync(checkpointHexPayload);
|
|
897
929
|
if (state) {
|
|
898
930
|
return { state, stateId: "checkpoint_state", shouldWarn: false };
|
|
899
931
|
}
|
|
@@ -994,6 +1026,9 @@ export class BeaconChain {
|
|
|
994
1026
|
}
|
|
995
1027
|
onClockEpoch(epoch) {
|
|
996
1028
|
this.metrics?.clockEpoch.set(epoch);
|
|
1029
|
+
if (epoch === this.config.GLOAS_FORK_EPOCH) {
|
|
1030
|
+
this.regen.upgradeForGloas(epoch);
|
|
1031
|
+
}
|
|
997
1032
|
this.seenAttesters.prune(epoch);
|
|
998
1033
|
this.seenAggregators.prune(epoch);
|
|
999
1034
|
this.seenPayloadAttesters.prune(epoch);
|
|
@@ -1018,7 +1053,6 @@ export class BeaconChain {
|
|
|
1018
1053
|
this.logger.verbose("Fork choice finalized", { epoch: cp.epoch, root: cp.rootHex });
|
|
1019
1054
|
const finalizedSlot = computeStartSlotAtEpoch(cp.epoch);
|
|
1020
1055
|
this.seenBlockProposers.prune(finalizedSlot);
|
|
1021
|
-
this.seenExecutionPayloadEnvelopes.prune(finalizedSlot);
|
|
1022
1056
|
// Update validator custody to account for effective balance changes
|
|
1023
1057
|
await this.updateValidatorsCustodyRequirement(cp);
|
|
1024
1058
|
// TODO: Improve using regen here
|