@lodestar/beacon-node 1.39.1 → 1.40.0-dev.193b2e2047
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 +8 -18
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/state/utils.d.ts +2 -7
- package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
- package/lib/api/impl/beacon/state/utils.js +0 -12
- package/lib/api/impl/beacon/state/utils.js.map +1 -1
- package/lib/api/impl/config/constants.d.ts +3 -0
- package/lib/api/impl/config/constants.d.ts.map +1 -1
- package/lib/api/impl/config/constants.js +5 -1
- package/lib/api/impl/config/constants.js.map +1 -1
- package/lib/api/impl/debug/index.d.ts +1 -1
- package/lib/api/impl/debug/index.d.ts.map +1 -1
- package/lib/api/impl/debug/index.js +3 -6
- package/lib/api/impl/debug/index.js.map +1 -1
- package/lib/api/impl/lodestar/index.d.ts.map +1 -1
- package/lib/api/impl/lodestar/index.js +6 -3
- package/lib/api/impl/lodestar/index.js.map +1 -1
- package/lib/api/impl/proof/index.d.ts.map +1 -1
- package/lib/api/impl/proof/index.js +1 -2
- package/lib/api/impl/proof/index.js.map +1 -1
- package/lib/api/impl/validator/index.d.ts.map +1 -1
- package/lib/api/impl/validator/index.js +10 -11
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
- package/lib/chain/archiveStore/historicalState/getHistoricalState.js +5 -3
- package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.js +23 -14
- package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
- package/lib/chain/blocks/blockInput/blockInput.d.ts +2 -0
- package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
- package/lib/chain/blocks/blockInput/blockInput.js +6 -0
- package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
- package/lib/chain/blocks/importBlock.d.ts.map +1 -1
- package/lib/chain/blocks/importBlock.js +14 -9
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/index.d.ts.map +1 -1
- package/lib/chain/blocks/index.js +0 -14
- package/lib/chain/blocks/index.js.map +1 -1
- package/lib/chain/blocks/types.d.ts +0 -2
- package/lib/chain/blocks/types.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlock.js +9 -9
- package/lib/chain/blocks/verifyBlock.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksSignatures.d.ts +2 -2
- package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksSignatures.js +2 -2
- package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +1 -0
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.d.ts +1 -4
- package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js +20 -28
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/bls/multithread/index.d.ts +3 -1
- package/lib/chain/bls/multithread/index.d.ts.map +1 -1
- package/lib/chain/bls/multithread/index.js +5 -3
- package/lib/chain/bls/multithread/index.js.map +1 -1
- package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
- package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
- package/lib/chain/bls/multithread/jobItem.js +2 -2
- package/lib/chain/bls/multithread/jobItem.js.map +1 -1
- package/lib/chain/bls/singleThread.d.ts +4 -2
- package/lib/chain/bls/singleThread.d.ts.map +1 -1
- package/lib/chain/bls/singleThread.js +4 -2
- package/lib/chain/bls/singleThread.js.map +1 -1
- package/lib/chain/bls/utils.d.ts +2 -2
- package/lib/chain/bls/utils.d.ts.map +1 -1
- package/lib/chain/bls/utils.js +9 -6
- package/lib/chain/bls/utils.js.map +1 -1
- package/lib/chain/chain.d.ts +24 -6
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +196 -21
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/errors/attestationError.d.ts +14 -1
- package/lib/chain/errors/attestationError.d.ts.map +1 -1
- package/lib/chain/errors/attestationError.js +8 -0
- package/lib/chain/errors/attestationError.js.map +1 -1
- package/lib/chain/errors/executionPayloadBid.d.ts +48 -0
- package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -0
- package/lib/chain/errors/executionPayloadBid.js +15 -0
- package/lib/chain/errors/executionPayloadBid.js.map +1 -0
- package/lib/chain/errors/executionPayloadEnvelope.d.ts +48 -0
- package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -0
- package/lib/chain/errors/executionPayloadEnvelope.js +16 -0
- package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -0
- package/lib/chain/errors/index.d.ts +3 -0
- package/lib/chain/errors/index.d.ts.map +1 -1
- package/lib/chain/errors/index.js +3 -0
- package/lib/chain/errors/index.js.map +1 -1
- package/lib/chain/errors/payloadAttestation.d.ts +34 -0
- package/lib/chain/errors/payloadAttestation.d.ts.map +1 -0
- package/lib/chain/errors/payloadAttestation.js +13 -0
- package/lib/chain/errors/payloadAttestation.js.map +1 -0
- package/lib/chain/forkChoice/index.d.ts.map +1 -1
- package/lib/chain/forkChoice/index.js +18 -0
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/initState.d.ts +1 -1
- package/lib/chain/initState.d.ts.map +1 -1
- package/lib/chain/initState.js +5 -3
- package/lib/chain/initState.js.map +1 -1
- package/lib/chain/interface.d.ts +23 -5
- package/lib/chain/interface.d.ts.map +1 -1
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/lightClient/proofs.d.ts.map +1 -1
- package/lib/chain/lightClient/proofs.js +0 -2
- package/lib/chain/lightClient/proofs.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.d.ts +5 -9
- package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +12 -141
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/opPools/executionPayloadBidPool.d.ts +21 -0
- package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -0
- package/lib/chain/opPools/executionPayloadBidPool.js +57 -0
- package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -0
- package/lib/chain/opPools/index.d.ts +2 -0
- package/lib/chain/opPools/index.d.ts.map +1 -1
- package/lib/chain/opPools/index.js +2 -0
- package/lib/chain/opPools/index.js.map +1 -1
- package/lib/chain/opPools/opPool.js +5 -8
- package/lib/chain/opPools/opPool.js.map +1 -1
- package/lib/chain/opPools/payloadAttestationPool.d.ts +24 -0
- package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -0
- package/lib/chain/opPools/payloadAttestationPool.js +109 -0
- package/lib/chain/opPools/payloadAttestationPool.js.map +1 -0
- package/lib/chain/prepareNextSlot.d.ts.map +1 -1
- package/lib/chain/prepareNextSlot.js +9 -10
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -2
- package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +6 -4
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/regen/interface.d.ts +4 -13
- package/lib/chain/regen/interface.d.ts.map +1 -1
- package/lib/chain/regen/interface.js +1 -1
- package/lib/chain/regen/interface.js.map +1 -1
- package/lib/chain/regen/queued.d.ts +5 -9
- package/lib/chain/regen/queued.d.ts.map +1 -1
- package/lib/chain/regen/queued.js +16 -40
- package/lib/chain/regen/queued.js.map +1 -1
- package/lib/chain/regen/regen.d.ts +4 -8
- package/lib/chain/regen/regen.d.ts.map +1 -1
- package/lib/chain/regen/regen.js +16 -33
- package/lib/chain/regen/regen.js.map +1 -1
- package/lib/chain/seenCache/index.d.ts +3 -1
- package/lib/chain/seenCache/index.d.ts.map +1 -1
- package/lib/chain/seenCache/index.js +3 -1
- package/lib/chain/seenCache/index.js.map +1 -1
- package/lib/chain/seenCache/seenAttesters.d.ts +5 -0
- package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
- package/lib/chain/seenCache/seenAttesters.js +5 -0
- package/lib/chain/seenCache/seenAttesters.js.map +1 -1
- package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts +12 -0
- package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -0
- package/lib/chain/seenCache/seenExecutionPayloadBids.js +30 -0
- package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -0
- package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts +15 -0
- package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -0
- package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js +28 -0
- package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -0
- package/lib/chain/shufflingCache.d.ts +16 -11
- package/lib/chain/shufflingCache.d.ts.map +1 -1
- package/lib/chain/shufflingCache.js +47 -41
- package/lib/chain/shufflingCache.js.map +1 -1
- package/lib/chain/stateCache/blockStateCacheImpl.d.ts +1 -2
- package/lib/chain/stateCache/blockStateCacheImpl.d.ts.map +1 -1
- package/lib/chain/stateCache/blockStateCacheImpl.js +2 -2
- package/lib/chain/stateCache/blockStateCacheImpl.js.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts +1 -2
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.js +4 -4
- package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
- package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts +4 -5
- package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts.map +1 -1
- package/lib/chain/stateCache/inMemoryCheckpointsCache.js +9 -10
- package/lib/chain/stateCache/inMemoryCheckpointsCache.js.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +5 -6
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.js +17 -17
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/stateCache/types.d.ts +5 -6
- package/lib/chain/stateCache/types.d.ts.map +1 -1
- package/lib/chain/stateCache/types.js.map +1 -1
- package/lib/chain/validation/aggregateAndProof.js +35 -14
- package/lib/chain/validation/aggregateAndProof.js.map +1 -1
- package/lib/chain/validation/attestation.d.ts +2 -2
- package/lib/chain/validation/attestation.d.ts.map +1 -1
- package/lib/chain/validation/attestation.js +28 -9
- package/lib/chain/validation/attestation.js.map +1 -1
- package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
- package/lib/chain/validation/attesterSlashing.js +2 -2
- package/lib/chain/validation/attesterSlashing.js.map +1 -1
- package/lib/chain/validation/blobSidecar.d.ts.map +1 -1
- package/lib/chain/validation/blobSidecar.js +3 -3
- package/lib/chain/validation/blobSidecar.js.map +1 -1
- package/lib/chain/validation/block.d.ts.map +1 -1
- package/lib/chain/validation/block.js +7 -4
- package/lib/chain/validation/block.js.map +1 -1
- package/lib/chain/validation/blsToExecutionChange.d.ts.map +1 -1
- package/lib/chain/validation/blsToExecutionChange.js +9 -2
- package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.js +3 -3
- package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
- package/lib/chain/validation/executionPayloadBid.d.ts +5 -0
- package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -0
- package/lib/chain/validation/executionPayloadBid.js +104 -0
- package/lib/chain/validation/executionPayloadBid.js.map +1 -0
- package/lib/chain/validation/executionPayloadEnvelope.d.ts +5 -0
- package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -0
- package/lib/chain/validation/executionPayloadEnvelope.js +89 -0
- package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -0
- package/lib/chain/validation/payloadAttestationMessage.d.ts +9 -0
- package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -0
- package/lib/chain/validation/payloadAttestationMessage.js +72 -0
- package/lib/chain/validation/payloadAttestationMessage.js.map +1 -0
- package/lib/chain/validation/proposerSlashing.js +3 -2
- package/lib/chain/validation/proposerSlashing.js.map +1 -1
- package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +2 -3
- package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +1 -1
- package/lib/chain/validation/signatureSets/aggregateAndProof.js +8 -3
- package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
- package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +2 -2
- package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
- package/lib/chain/validation/signatureSets/contributionAndProof.js +3 -3
- package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
- package/lib/chain/validation/signatureSets/selectionProof.d.ts +2 -3
- package/lib/chain/validation/signatureSets/selectionProof.d.ts.map +1 -1
- package/lib/chain/validation/signatureSets/selectionProof.js +8 -3
- package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
- package/lib/chain/validation/signatureSets/syncCommittee.d.ts +2 -2
- package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
- package/lib/chain/validation/signatureSets/syncCommittee.js +3 -3
- package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
- package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +1 -2
- package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
- package/lib/chain/validation/signatureSets/syncCommitteeContribution.js +2 -2
- package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
- package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +2 -2
- package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
- package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +3 -3
- package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
- package/lib/chain/validation/syncCommittee.js +1 -1
- package/lib/chain/validation/syncCommittee.js.map +1 -1
- package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
- package/lib/chain/validation/syncCommitteeContributionAndProof.js +3 -5
- package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
- package/lib/chain/validation/voluntaryExit.js +1 -1
- package/lib/chain/validation/voluntaryExit.js.map +1 -1
- package/lib/chain/validatorMonitor.d.ts +2 -0
- package/lib/chain/validatorMonitor.d.ts.map +1 -1
- package/lib/chain/validatorMonitor.js +42 -3
- package/lib/chain/validatorMonitor.js.map +1 -1
- package/lib/db/repositories/checkpointState.d.ts +2 -6
- package/lib/db/repositories/checkpointState.d.ts.map +1 -1
- package/lib/db/repositories/checkpointState.js +3 -16
- package/lib/db/repositories/checkpointState.js.map +1 -1
- package/lib/db/repositories/stateArchive.d.ts +9 -9
- package/lib/db/repositories/stateArchive.d.ts.map +1 -1
- package/lib/db/repositories/stateArchive.js +6 -21
- package/lib/db/repositories/stateArchive.js.map +1 -1
- package/lib/execution/engine/mock.d.ts +9 -6
- package/lib/execution/engine/mock.d.ts.map +1 -1
- package/lib/execution/engine/mock.js +34 -7
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +28 -6
- package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
- package/lib/metrics/metrics/lodestar.js +67 -17
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/gossip/interface.d.ts +20 -2
- package/lib/network/gossip/interface.d.ts.map +1 -1
- package/lib/network/gossip/interface.js +3 -0
- package/lib/network/gossip/interface.js.map +1 -1
- package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
- package/lib/network/gossip/scoringParameters.js +38 -2
- package/lib/network/gossip/scoringParameters.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +77 -1
- package/lib/network/gossip/topic.d.ts.map +1 -1
- package/lib/network/gossip/topic.js +20 -0
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
- package/lib/network/processor/gossipHandlers.js +34 -3
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
- package/lib/network/processor/gossipQueues/index.js +16 -0
- package/lib/network/processor/gossipQueues/index.js.map +1 -1
- package/lib/network/processor/index.d.ts.map +1 -1
- package/lib/network/processor/index.js +3 -0
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js +2 -4
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts +1 -2
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.js +5 -26
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts +1 -2
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +5 -7
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +1 -2
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -5
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/index.js +2 -2
- package/lib/network/reqresp/handlers/index.js.map +1 -1
- package/lib/network/reqresp/utils/dataColumnResponseValidation.js +1 -1
- package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
- package/lib/node/nodejs.d.ts.map +1 -1
- package/lib/node/nodejs.js +17 -2
- package/lib/node/nodejs.js.map +1 -1
- package/lib/sync/backfill/backfill.js +2 -2
- package/lib/sync/backfill/backfill.js.map +1 -1
- package/lib/sync/backfill/verify.d.ts +1 -2
- package/lib/sync/backfill/verify.d.ts.map +1 -1
- package/lib/sync/backfill/verify.js +2 -2
- package/lib/sync/backfill/verify.js.map +1 -1
- package/lib/sync/range/chain.d.ts.map +1 -1
- package/lib/sync/range/chain.js +0 -1
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.d.ts.map +1 -1
- package/lib/sync/range/range.js +0 -3
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts.map +1 -1
- package/lib/sync/unknownBlock.js +0 -3
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/util/sszBytes.js +1 -1
- package/lib/util/sszBytes.js.map +1 -1
- package/package.json +15 -15
- package/src/api/impl/beacon/blocks/index.ts +8 -18
- package/src/api/impl/beacon/state/utils.ts +2 -22
- package/src/api/impl/config/constants.ts +8 -0
- package/src/api/impl/debug/index.ts +2 -6
- package/src/api/impl/lodestar/index.ts +7 -4
- package/src/api/impl/proof/index.ts +1 -2
- package/src/api/impl/validator/index.ts +13 -14
- package/src/chain/archiveStore/historicalState/getHistoricalState.ts +5 -3
- package/src/chain/archiveStore/utils/archiveBlocks.ts +25 -14
- package/src/chain/blocks/blockInput/blockInput.ts +8 -0
- package/src/chain/blocks/importBlock.ts +15 -9
- package/src/chain/blocks/index.ts +0 -19
- package/src/chain/blocks/types.ts +0 -2
- package/src/chain/blocks/verifyBlock.ts +9 -12
- package/src/chain/blocks/verifyBlocksSignatures.ts +4 -12
- package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +1 -0
- package/src/chain/blocks/writeBlockInputToDb.ts +24 -30
- package/src/chain/bls/multithread/index.ts +7 -4
- package/src/chain/bls/multithread/jobItem.ts +7 -3
- package/src/chain/bls/singleThread.ts +5 -3
- package/src/chain/bls/utils.ts +15 -7
- package/src/chain/chain.ts +225 -32
- package/src/chain/errors/attestationError.ts +11 -1
- package/src/chain/errors/executionPayloadBid.ts +35 -0
- package/src/chain/errors/executionPayloadEnvelope.ts +34 -0
- package/src/chain/errors/index.ts +3 -0
- package/src/chain/errors/payloadAttestation.ts +25 -0
- package/src/chain/forkChoice/index.ts +19 -0
- package/src/chain/initState.ts +5 -3
- package/src/chain/interface.ts +34 -3
- package/src/chain/lightClient/proofs.ts +0 -2
- package/src/chain/opPools/aggregatedAttestationPool.ts +19 -191
- package/src/chain/opPools/executionPayloadBidPool.ts +77 -0
- package/src/chain/opPools/index.ts +2 -0
- package/src/chain/opPools/opPool.ts +5 -7
- package/src/chain/opPools/payloadAttestationPool.ts +157 -0
- package/src/chain/prepareNextSlot.ts +8 -12
- package/src/chain/produceBlock/produceBlockBody.ts +13 -6
- package/src/chain/regen/interface.ts +3 -17
- package/src/chain/regen/queued.ts +17 -56
- package/src/chain/regen/regen.ts +16 -42
- package/src/chain/seenCache/index.ts +3 -1
- package/src/chain/seenCache/seenAttesters.ts +5 -0
- package/src/chain/seenCache/seenExecutionPayloadBids.ts +35 -0
- package/src/chain/seenCache/seenExecutionPayloadEnvelope.ts +34 -0
- package/src/chain/shufflingCache.ts +67 -50
- package/src/chain/stateCache/blockStateCacheImpl.ts +2 -3
- package/src/chain/stateCache/fifoBlockStateCache.ts +4 -5
- package/src/chain/stateCache/inMemoryCheckpointsCache.ts +9 -15
- package/src/chain/stateCache/persistentCheckpointsCache.ts +17 -25
- package/src/chain/stateCache/types.ts +5 -10
- package/src/chain/validation/aggregateAndProof.ts +36 -14
- package/src/chain/validation/attestation.ts +36 -19
- package/src/chain/validation/attesterSlashing.ts +9 -7
- package/src/chain/validation/blobSidecar.ts +2 -7
- package/src/chain/validation/block.ts +8 -4
- package/src/chain/validation/blsToExecutionChange.ts +9 -7
- package/src/chain/validation/dataColumnSidecar.ts +2 -7
- package/src/chain/validation/executionPayloadBid.ts +141 -0
- package/src/chain/validation/executionPayloadEnvelope.ts +122 -0
- package/src/chain/validation/payloadAttestationMessage.ts +109 -0
- package/src/chain/validation/proposerSlashing.ts +3 -7
- package/src/chain/validation/signatureSets/aggregateAndProof.ts +9 -14
- package/src/chain/validation/signatureSets/contributionAndProof.ts +2 -4
- package/src/chain/validation/signatureSets/selectionProof.ts +9 -9
- package/src/chain/validation/signatureSets/syncCommittee.ts +2 -4
- package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +2 -3
- package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +2 -4
- package/src/chain/validation/syncCommittee.ts +1 -1
- package/src/chain/validation/syncCommitteeContributionAndProof.ts +3 -5
- package/src/chain/validation/voluntaryExit.ts +1 -1
- package/src/chain/validatorMonitor.ts +52 -3
- package/src/db/repositories/checkpointState.ts +3 -19
- package/src/db/repositories/stateArchive.ts +13 -27
- package/src/execution/engine/mock.ts +40 -13
- package/src/index.ts +1 -1
- package/src/metrics/metrics/lodestar.ts +68 -17
- package/src/network/gossip/interface.ts +17 -0
- package/src/network/gossip/scoringParameters.ts +44 -2
- package/src/network/gossip/topic.ts +21 -0
- package/src/network/processor/gossipHandlers.ts +48 -3
- package/src/network/processor/gossipQueues/index.ts +16 -0
- package/src/network/processor/index.ts +3 -0
- package/src/network/reqresp/handlers/beaconBlocksByRange.ts +2 -4
- package/src/network/reqresp/handlers/beaconBlocksByRoot.ts +5 -32
- package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +5 -9
- package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +5 -2
- package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +1 -5
- package/src/network/reqresp/handlers/index.ts +2 -2
- package/src/network/reqresp/utils/dataColumnResponseValidation.ts +1 -1
- package/src/node/nodejs.ts +18 -3
- package/src/sync/backfill/backfill.ts +2 -2
- package/src/sync/backfill/verify.ts +2 -3
- package/src/sync/range/chain.ts +0 -1
- package/src/sync/range/range.ts +0 -3
- package/src/sync/unknownBlock.ts +0 -3
- package/src/util/sszBytes.ts +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { computeEpochAtSlot } from "@lodestar/state-transition";
|
|
2
2
|
import { toRootHex } from "@lodestar/utils";
|
|
3
3
|
import { JobItemQueue } from "../../util/queue/index.js";
|
|
4
|
-
import { toCheckpointHex } from "../stateCache/index.js";
|
|
5
4
|
import { RegenError, RegenErrorCode } from "./errors.js";
|
|
6
5
|
import { RegenCaller, RegenFnName, } from "./interface.js";
|
|
7
6
|
import { StateRegenerator } from "./regen.js";
|
|
@@ -47,17 +46,14 @@ export class QueuedStateRegenerator {
|
|
|
47
46
|
}
|
|
48
47
|
/**
|
|
49
48
|
* Get a state from block state cache.
|
|
50
|
-
* This is not for block processing so don't transfer cache
|
|
51
49
|
*/
|
|
52
50
|
getStateSync(stateRoot) {
|
|
53
|
-
return this.blockStateCache.get(stateRoot
|
|
51
|
+
return this.blockStateCache.get(stateRoot);
|
|
54
52
|
}
|
|
55
53
|
/**
|
|
56
54
|
* Get state for block processing.
|
|
57
|
-
* By default, do not transfer cache except for the block at clock slot
|
|
58
|
-
* which is usually the gossip block.
|
|
59
55
|
*/
|
|
60
|
-
getPreStateSync(block
|
|
56
|
+
getPreStateSync(block) {
|
|
61
57
|
const parentRoot = toRootHex(block.parentRoot);
|
|
62
58
|
const parentBlock = this.forkChoice.getBlockHex(parentRoot);
|
|
63
59
|
if (!parentBlock) {
|
|
@@ -70,7 +66,7 @@ export class QueuedStateRegenerator {
|
|
|
70
66
|
const blockEpoch = computeEpochAtSlot(block.slot);
|
|
71
67
|
// Check the checkpoint cache (if the pre-state is a checkpoint state)
|
|
72
68
|
if (parentEpoch < blockEpoch) {
|
|
73
|
-
const checkpointState = this.checkpointStateCache.getLatest(parentRoot, blockEpoch
|
|
69
|
+
const checkpointState = this.checkpointStateCache.getLatest(parentRoot, blockEpoch);
|
|
74
70
|
if (checkpointState && computeEpochAtSlot(checkpointState.slot) === blockEpoch) {
|
|
75
71
|
return checkpointState;
|
|
76
72
|
}
|
|
@@ -79,7 +75,7 @@ export class QueuedStateRegenerator {
|
|
|
79
75
|
// Otherwise the state transition may not be cached and wasted. Queue for regen since the
|
|
80
76
|
// work required will still be significant.
|
|
81
77
|
if (parentEpoch === blockEpoch) {
|
|
82
|
-
const state = this.blockStateCache.get(parentBlock.stateRoot
|
|
78
|
+
const state = this.blockStateCache.get(parentBlock.stateRoot);
|
|
83
79
|
if (state) {
|
|
84
80
|
return state;
|
|
85
81
|
}
|
|
@@ -90,18 +86,16 @@ export class QueuedStateRegenerator {
|
|
|
90
86
|
return this.checkpointStateCache.getStateOrBytes(cp);
|
|
91
87
|
}
|
|
92
88
|
/**
|
|
93
|
-
* Get checkpoint state from cache
|
|
89
|
+
* Get checkpoint state from cache
|
|
94
90
|
*/
|
|
95
91
|
getCheckpointStateSync(cp) {
|
|
96
|
-
return this.checkpointStateCache.get(cp
|
|
92
|
+
return this.checkpointStateCache.get(cp);
|
|
97
93
|
}
|
|
98
94
|
/**
|
|
99
|
-
* Get state closest to head
|
|
95
|
+
* Get state closest to head
|
|
100
96
|
*/
|
|
101
97
|
getClosestHeadState(head) {
|
|
102
|
-
|
|
103
|
-
return (this.checkpointStateCache.getLatest(head.blockRoot, Infinity, opts) ||
|
|
104
|
-
this.blockStateCache.get(head.stateRoot, opts));
|
|
98
|
+
return this.checkpointStateCache.getLatest(head.blockRoot, Infinity) || this.blockStateCache.get(head.stateRoot);
|
|
105
99
|
}
|
|
106
100
|
pruneOnCheckpoint(finalizedEpoch, justifiedEpoch, headStateRoot) {
|
|
107
101
|
this.checkpointStateCache.prune(finalizedEpoch, justifiedEpoch);
|
|
@@ -130,10 +124,7 @@ export class QueuedStateRegenerator {
|
|
|
130
124
|
maybeHeadSlot: maybeHeadState.slot,
|
|
131
125
|
maybeHeadStateRoot,
|
|
132
126
|
};
|
|
133
|
-
const headState = newHeadStateRoot === maybeHeadStateRoot
|
|
134
|
-
? maybeHeadState
|
|
135
|
-
: // maybeHeadState was already in block state cache so we don't transfer the cache
|
|
136
|
-
this.blockStateCache.get(newHeadStateRoot, { dontTransferCache: true });
|
|
127
|
+
const headState = newHeadStateRoot === maybeHeadStateRoot ? maybeHeadState : this.blockStateCache.get(newHeadStateRoot);
|
|
137
128
|
if (headState) {
|
|
138
129
|
this.blockStateCache.setHeadState(headState);
|
|
139
130
|
}
|
|
@@ -147,9 +138,7 @@ export class QueuedStateRegenerator {
|
|
|
147
138
|
this.blockStateCache.setHeadState(null);
|
|
148
139
|
// for the new FIFOBlockStateCache, it's important to reload state to regen head state here if needed
|
|
149
140
|
const allowDiskReload = true;
|
|
150
|
-
|
|
151
|
-
const cloneOpts = { dontTransferCache: false };
|
|
152
|
-
this.regen.getState(newHeadStateRoot, RegenCaller.processBlock, cloneOpts, allowDiskReload).then((headStateRegen) => this.blockStateCache.setHeadState(headStateRegen), (e) => this.logger.error("Error on head state regen", logCtx, e));
|
|
141
|
+
this.regen.getState(newHeadStateRoot, RegenCaller.processBlock, allowDiskReload).then((headStateRegen) => this.blockStateCache.setHeadState(headStateRegen), (e) => this.logger.error("Error on head state regen", logCtx, e));
|
|
153
142
|
}
|
|
154
143
|
}
|
|
155
144
|
updatePreComputedCheckpoint(rootHex, epoch) {
|
|
@@ -162,7 +151,7 @@ export class QueuedStateRegenerator {
|
|
|
162
151
|
async getPreState(block, opts, rCaller) {
|
|
163
152
|
this.metrics?.regenFnCallTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getPreState });
|
|
164
153
|
// First attempt to fetch the state from caches before queueing
|
|
165
|
-
const cachedState = this.getPreStateSync(block
|
|
154
|
+
const cachedState = this.getPreStateSync(block);
|
|
166
155
|
if (cachedState !== null) {
|
|
167
156
|
return cachedState;
|
|
168
157
|
}
|
|
@@ -170,38 +159,27 @@ export class QueuedStateRegenerator {
|
|
|
170
159
|
this.metrics?.regenFnQueuedTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getPreState });
|
|
171
160
|
return this.jobQueue.push({ key: "getPreState", args: [block, opts, rCaller] });
|
|
172
161
|
}
|
|
173
|
-
async getCheckpointState(cp, opts, rCaller) {
|
|
174
|
-
this.metrics?.regenFnCallTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getCheckpointState });
|
|
175
|
-
// First attempt to fetch the state from cache before queueing
|
|
176
|
-
const checkpointState = this.checkpointStateCache.get(toCheckpointHex(cp), opts);
|
|
177
|
-
if (checkpointState) {
|
|
178
|
-
return checkpointState;
|
|
179
|
-
}
|
|
180
|
-
// The state is not immediately available in the caches, enqueue the job
|
|
181
|
-
this.metrics?.regenFnQueuedTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getCheckpointState });
|
|
182
|
-
return this.jobQueue.push({ key: "getCheckpointState", args: [cp, opts, rCaller] });
|
|
183
|
-
}
|
|
184
162
|
/**
|
|
185
163
|
* Get state of provided `blockRoot` and dial forward to `slot`
|
|
186
164
|
* Use this api with care because we don't want the queue to be busy
|
|
187
165
|
* For the context, gossip block validation uses this api so we want it to be as fast as possible
|
|
188
166
|
* @returns
|
|
189
167
|
*/
|
|
190
|
-
async getBlockSlotState(
|
|
168
|
+
async getBlockSlotState(block, slot, opts, rCaller) {
|
|
191
169
|
this.metrics?.regenFnCallTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getBlockSlotState });
|
|
192
170
|
// The state is not immediately available in the caches, enqueue the job
|
|
193
|
-
return this.jobQueue.push({ key: "getBlockSlotState", args: [
|
|
171
|
+
return this.jobQueue.push({ key: "getBlockSlotState", args: [block, slot, opts, rCaller] });
|
|
194
172
|
}
|
|
195
|
-
async getState(stateRoot, rCaller
|
|
173
|
+
async getState(stateRoot, rCaller) {
|
|
196
174
|
this.metrics?.regenFnCallTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getState });
|
|
197
175
|
// First attempt to fetch the state from cache before queueing
|
|
198
|
-
const state = this.blockStateCache.get(stateRoot
|
|
176
|
+
const state = this.blockStateCache.get(stateRoot);
|
|
199
177
|
if (state) {
|
|
200
178
|
return state;
|
|
201
179
|
}
|
|
202
180
|
// The state is not immediately available in the cache, enqueue the job
|
|
203
181
|
this.metrics?.regenFnQueuedTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getState });
|
|
204
|
-
return this.jobQueue.push({ key: "getState", args: [stateRoot, rCaller
|
|
182
|
+
return this.jobQueue.push({ key: "getState", args: [stateRoot, rCaller] });
|
|
205
183
|
}
|
|
206
184
|
jobQueueProcessor = async (regenRequest) => {
|
|
207
185
|
const metricsLabels = {
|
|
@@ -214,8 +192,6 @@ export class QueuedStateRegenerator {
|
|
|
214
192
|
switch (regenRequest.key) {
|
|
215
193
|
case "getPreState":
|
|
216
194
|
return await this.regen.getPreState(...regenRequest.args);
|
|
217
|
-
case "getCheckpointState":
|
|
218
|
-
return await this.regen.getCheckpointState(...regenRequest.args);
|
|
219
195
|
case "getBlockSlotState":
|
|
220
196
|
return await this.regen.getBlockSlotState(...regenRequest.args);
|
|
221
197
|
case "getState":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queued.js","sourceRoot":"","sources":["../../../src/chain/regen/queued.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAEzF,OAAO,EAAS,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"queued.js","sourceRoot":"","sources":["../../../src/chain/regen/queued.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChainForkConfig } from "@lodestar/config";
|
|
2
|
-
import { IForkChoice } from "@lodestar/fork-choice";
|
|
2
|
+
import { IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
|
|
3
3
|
import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
|
|
4
|
-
import { BeaconBlock, RootHex, Slot
|
|
4
|
+
import { BeaconBlock, RootHex, Slot } from "@lodestar/types";
|
|
5
5
|
import { Logger } from "@lodestar/utils";
|
|
6
6
|
import { IBeaconDb } from "../../db/index.js";
|
|
7
7
|
import { Metrics } from "../../metrics/index.js";
|
|
@@ -37,21 +37,17 @@ export declare class StateRegenerator implements IStateRegeneratorInternal {
|
|
|
37
37
|
* - reload state if needed in this flow
|
|
38
38
|
*/
|
|
39
39
|
getPreState(block: BeaconBlock, opts: StateRegenerationOpts, regenCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
|
|
40
|
-
/**
|
|
41
|
-
* Get state after block `cp.root` dialed forward to first slot of `cp.epoch`
|
|
42
|
-
*/
|
|
43
|
-
getCheckpointState(cp: phase0.Checkpoint, opts: StateRegenerationOpts, regenCaller: RegenCaller, allowDiskReload?: boolean): Promise<CachedBeaconStateAllForks>;
|
|
44
40
|
/**
|
|
45
41
|
* Get state after block `blockRoot` dialed forward to `slot`
|
|
46
42
|
* - allowDiskReload should be used with care, as it will cause the state to be reloaded from disk
|
|
47
43
|
*/
|
|
48
|
-
getBlockSlotState(
|
|
44
|
+
getBlockSlotState(block: ProtoBlock, slot: Slot, opts: StateRegenerationOpts, regenCaller: RegenCaller, allowDiskReload?: boolean): Promise<CachedBeaconStateAllForks>;
|
|
49
45
|
/**
|
|
50
46
|
* Get state by exact root. If not in cache directly, requires finding the block that references the state from the
|
|
51
47
|
* forkchoice and replaying blocks to get to it.
|
|
52
48
|
* - allowDiskReload should be used with care, as it will cause the state to be reloaded from disk
|
|
53
49
|
*/
|
|
54
|
-
getState(stateRoot: RootHex, caller: RegenCaller,
|
|
50
|
+
getState(stateRoot: RootHex, caller: RegenCaller, allowDiskReload?: boolean): Promise<CachedBeaconStateAllForks>;
|
|
55
51
|
private findFirstStateBlock;
|
|
56
52
|
}
|
|
57
53
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regen.d.ts","sourceRoot":"","sources":["../../../src/chain/regen/regen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"regen.d.ts","sourceRoot":"","sources":["../../../src/chain/regen/regen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EACL,yBAAyB,EAQ1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,WAAW,EAAE,OAAO,EAAqB,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAC,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAG/C,OAAO,EAAa,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAC,eAAe,EAAE,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAC,yBAAyB,EAAE,WAAW,EAAE,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAE7F,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,SAAS,CAAC;IACd,UAAU,EAAE,WAAW,CAAC;IACxB,eAAe,EAAE,eAAe,CAAC;IACjC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,yBAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAElD;;;;;OAKG;IACG,WAAW,CACf,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,qBAAqB,EAC3B,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,yBAAyB,CAAC;IA0BrC;;;OAGG;IACG,iBAAiB,CACrB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,qBAAqB,EAC3B,WAAW,EAAE,WAAW,EACxB,eAAe,UAAQ,GACtB,OAAO,CAAC,yBAAyB,CAAC;IA6BrC;;;;OAIG;IACG,QAAQ,CACZ,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,WAAW,EAEnB,eAAe,UAAQ,GACtB,OAAO,CAAC,yBAAyB,CAAC;IAkJrC,OAAO,CAAC,mBAAmB;CAY5B;AA2BD;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACnD,OAAO,EAAE;IACP,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,EACD,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,yBAAyB,CAAC,CA6DpC"}
|
package/lib/chain/regen/regen.js
CHANGED
|
@@ -40,30 +40,16 @@ export class StateRegenerator {
|
|
|
40
40
|
// We may have the checkpoint state with parent root inside the checkpoint state cache
|
|
41
41
|
// through gossip validation.
|
|
42
42
|
if (parentEpoch < blockEpoch) {
|
|
43
|
-
return this.
|
|
43
|
+
return this.getBlockSlotState(parentBlock, block.slot, opts, regenCaller, allowDiskReload);
|
|
44
44
|
}
|
|
45
45
|
// Otherwise, get the state normally.
|
|
46
|
-
return this.getState(parentBlock.stateRoot, regenCaller,
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Get state after block `cp.root` dialed forward to first slot of `cp.epoch`
|
|
50
|
-
*/
|
|
51
|
-
async getCheckpointState(cp, opts, regenCaller, allowDiskReload = false) {
|
|
52
|
-
const checkpointStartSlot = computeStartSlotAtEpoch(cp.epoch);
|
|
53
|
-
return this.getBlockSlotState(toRootHex(cp.root), checkpointStartSlot, opts, regenCaller, allowDiskReload);
|
|
46
|
+
return this.getState(parentBlock.stateRoot, regenCaller, allowDiskReload);
|
|
54
47
|
}
|
|
55
48
|
/**
|
|
56
49
|
* Get state after block `blockRoot` dialed forward to `slot`
|
|
57
50
|
* - allowDiskReload should be used with care, as it will cause the state to be reloaded from disk
|
|
58
51
|
*/
|
|
59
|
-
async getBlockSlotState(
|
|
60
|
-
const block = this.modules.forkChoice.getBlockHex(blockRoot);
|
|
61
|
-
if (!block) {
|
|
62
|
-
throw new RegenError({
|
|
63
|
-
code: RegenErrorCode.BLOCK_NOT_IN_FORKCHOICE,
|
|
64
|
-
blockRoot,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
52
|
+
async getBlockSlotState(block, slot, opts, regenCaller, allowDiskReload = false) {
|
|
67
53
|
if (slot < block.slot) {
|
|
68
54
|
throw new RegenError({
|
|
69
55
|
code: RegenErrorCode.SLOT_BEFORE_BLOCK_SLOT,
|
|
@@ -71,11 +57,12 @@ export class StateRegenerator {
|
|
|
71
57
|
blockSlot: block.slot,
|
|
72
58
|
});
|
|
73
59
|
}
|
|
60
|
+
const { blockRoot } = block;
|
|
74
61
|
const { checkpointStateCache } = this.modules;
|
|
75
62
|
const epoch = computeEpochAtSlot(slot);
|
|
76
63
|
const latestCheckpointStateCtx = allowDiskReload
|
|
77
|
-
? await checkpointStateCache.getOrReloadLatest(blockRoot, epoch
|
|
78
|
-
: checkpointStateCache.getLatest(blockRoot, epoch
|
|
64
|
+
? await checkpointStateCache.getOrReloadLatest(blockRoot, epoch)
|
|
65
|
+
: checkpointStateCache.getLatest(blockRoot, epoch);
|
|
79
66
|
// If a checkpoint state exists with the given checkpoint root, it either is in requested epoch
|
|
80
67
|
// or needs to have empty slots processed until the requested epoch
|
|
81
68
|
if (latestCheckpointStateCtx) {
|
|
@@ -84,7 +71,7 @@ export class StateRegenerator {
|
|
|
84
71
|
// Otherwise, use the fork choice to get the stateRoot from block at the checkpoint root
|
|
85
72
|
// regenerate that state,
|
|
86
73
|
// then process empty slots until the requested epoch
|
|
87
|
-
const blockStateCtx = await this.getState(block.stateRoot, regenCaller,
|
|
74
|
+
const blockStateCtx = await this.getState(block.stateRoot, regenCaller, allowDiskReload);
|
|
88
75
|
return processSlotsByCheckpoint(this.modules, blockStateCtx, slot, regenCaller, opts);
|
|
89
76
|
}
|
|
90
77
|
/**
|
|
@@ -92,20 +79,14 @@ export class StateRegenerator {
|
|
|
92
79
|
* forkchoice and replaying blocks to get to it.
|
|
93
80
|
* - allowDiskReload should be used with care, as it will cause the state to be reloaded from disk
|
|
94
81
|
*/
|
|
95
|
-
async getState(stateRoot, caller,
|
|
82
|
+
async getState(stateRoot, caller,
|
|
96
83
|
// internal option, don't want to expose to external caller
|
|
97
84
|
allowDiskReload = false) {
|
|
98
85
|
// Trivial case, state at stateRoot is already cached
|
|
99
|
-
const cachedStateCtx = this.modules.blockStateCache.get(stateRoot
|
|
86
|
+
const cachedStateCtx = this.modules.blockStateCache.get(stateRoot);
|
|
100
87
|
if (cachedStateCtx) {
|
|
101
88
|
return cachedStateCtx;
|
|
102
89
|
}
|
|
103
|
-
// in block gossip validation (getPreState() call), dontTransferCache is specified as true because we only want to transfer cache in verifyBlocksStateTransitionOnly()
|
|
104
|
-
// but here we want to process blocks as fast as possible so force to transfer cache in this case
|
|
105
|
-
if (opts && allowDiskReload) {
|
|
106
|
-
// if there is no `opts` specified, it already means "false"
|
|
107
|
-
opts.dontTransferCache = false;
|
|
108
|
-
}
|
|
109
90
|
// Otherwise we have to use the fork choice to traverse backwards, block by block,
|
|
110
91
|
// searching the state caches
|
|
111
92
|
// then replay blocks forward to the desired stateRoot
|
|
@@ -118,7 +99,7 @@ export class StateRegenerator {
|
|
|
118
99
|
const getSeedStateTimer = this.modules.metrics?.regenGetState.getSeedState.startTimer({ caller });
|
|
119
100
|
// iterateAncestorBlocks only returns ancestor blocks, not the block itself
|
|
120
101
|
for (const b of this.modules.forkChoice.iterateAncestorBlocks(block.blockRoot)) {
|
|
121
|
-
state = this.modules.blockStateCache.get(b.stateRoot
|
|
102
|
+
state = this.modules.blockStateCache.get(b.stateRoot);
|
|
122
103
|
if (state) {
|
|
123
104
|
break;
|
|
124
105
|
}
|
|
@@ -127,8 +108,8 @@ export class StateRegenerator {
|
|
|
127
108
|
continue;
|
|
128
109
|
const epoch = computeEpochAtSlot(lastBlockToReplay.slot - 1);
|
|
129
110
|
state = allowDiskReload
|
|
130
|
-
? await checkpointStateCache.getOrReloadLatest(b.blockRoot, epoch
|
|
131
|
-
: checkpointStateCache.getLatest(b.blockRoot, epoch
|
|
111
|
+
? await checkpointStateCache.getOrReloadLatest(b.blockRoot, epoch)
|
|
112
|
+
: checkpointStateCache.getLatest(b.blockRoot, epoch);
|
|
132
113
|
if (state) {
|
|
133
114
|
break;
|
|
134
115
|
}
|
|
@@ -185,6 +166,7 @@ export class StateRegenerator {
|
|
|
185
166
|
try {
|
|
186
167
|
// Only advances state trusting block's signture and hashes.
|
|
187
168
|
// We are only running the state transition to get a specific state's data.
|
|
169
|
+
// stateTransition() does the clone() inside, transfer cache to make the regen faster
|
|
188
170
|
state = stateTransition(state, block, {
|
|
189
171
|
// Replay previously imported blocks, assume valid and available
|
|
190
172
|
executionPayloadStatus: ExecutionPayloadStatus.valid,
|
|
@@ -192,6 +174,7 @@ export class StateRegenerator {
|
|
|
192
174
|
verifyStateRoot: false,
|
|
193
175
|
verifyProposer: false,
|
|
194
176
|
verifySignatures: false,
|
|
177
|
+
dontTransferCache: false,
|
|
195
178
|
}, this.modules);
|
|
196
179
|
const hashTreeRootTimer = this.modules.metrics?.stateHashTreeRootTime.startTimer({
|
|
197
180
|
source: StateHashTreeRootSource.regenState,
|
|
@@ -277,8 +260,8 @@ export async function processSlotsToNearestCheckpoint(modules, preState, slot, r
|
|
|
277
260
|
const checkpointState = postState;
|
|
278
261
|
const cp = getCheckpointFromState(checkpointState);
|
|
279
262
|
checkpointStateCache.add(cp, checkpointState);
|
|
280
|
-
// consumers should not mutate
|
|
281
|
-
emitter?.emit(ChainEvent.checkpoint, cp, checkpointState
|
|
263
|
+
// consumers should not mutate state ever
|
|
264
|
+
emitter?.emit(ChainEvent.checkpoint, cp, checkpointState);
|
|
282
265
|
if (count >= 1) {
|
|
283
266
|
// in normal condition, we only process 1 epoch so never reach this
|
|
284
267
|
// in that case, we want to prune state at the last 1/3 slot of slot 0 of the next epoch after importing the 1st block of epoch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regen.js","sourceRoot":"","sources":["../../../src/chain/regen/regen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAEL,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAS,OAAO,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG3D,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAC,UAAU,EAAoB,MAAM,eAAe,CAAC;AAG5D,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,aAAa,CAAC;AAevD;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,OAAqB;QAArB,YAAO,GAAP,OAAO,CAAc;IAAG,CAAC;IAEtD;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CACf,KAAkB,EAClB,IAA2B,EAC3B,WAAwB;QAExB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,UAAU,CAAC;gBACnB,IAAI,EAAE,cAAc,CAAC,uBAAuB;gBAC5C,SAAS,EAAE,KAAK,CAAC,UAAU;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,IAAI,CAAC;QAE7B,kDAAkD;QAClD,mDAAmD;QACnD,wDAAwD;QACxD,sFAAsF;QACtF,6BAA6B;QAC7B,IAAI,WAAW,GAAG,UAAU,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"regen.js","sourceRoot":"","sources":["../../../src/chain/regen/regen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
export { SeenAggregators, SeenAttesters } from "./seenAttesters.js";
|
|
1
|
+
export { SeenAggregators, SeenAttesters, SeenPayloadAttesters } from "./seenAttesters.js";
|
|
2
2
|
export { SeenBlockProposers } from "./seenBlockProposers.js";
|
|
3
3
|
export { SeenSyncCommitteeMessages } from "./seenCommittee.js";
|
|
4
4
|
export { SeenContributionAndProof } from "./seenCommitteeContribution.js";
|
|
5
|
+
export { SeenExecutionPayloadBids } from "./seenExecutionPayloadBids.js";
|
|
6
|
+
export { SeenExecutionPayloadEnvelopes } from "./seenExecutionPayloadEnvelope.js";
|
|
5
7
|
export { SeenBlockInput } from "./seenGossipBlockInput.js";
|
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chain/seenCache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chain/seenCache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,yBAAyB,EAAC,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAC,wBAAwB,EAAC,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAC,6BAA6B,EAAC,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
export { SeenAggregators, SeenAttesters } from "./seenAttesters.js";
|
|
1
|
+
export { SeenAggregators, SeenAttesters, SeenPayloadAttesters } from "./seenAttesters.js";
|
|
2
2
|
export { SeenBlockProposers } from "./seenBlockProposers.js";
|
|
3
3
|
export { SeenSyncCommitteeMessages } from "./seenCommittee.js";
|
|
4
4
|
export { SeenContributionAndProof } from "./seenCommitteeContribution.js";
|
|
5
|
+
export { SeenExecutionPayloadBids } from "./seenExecutionPayloadBids.js";
|
|
6
|
+
export { SeenExecutionPayloadEnvelopes } from "./seenExecutionPayloadEnvelope.js";
|
|
5
7
|
export { SeenBlockInput } from "./seenGossipBlockInput.js";
|
|
6
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/seenCache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/seenCache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAC,kBAAkB,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAC,yBAAyB,EAAC,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAC,wBAAwB,EAAC,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAC,6BAA6B,EAAC,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC"}
|
|
@@ -15,4 +15,9 @@ export declare class SeenAttesters {
|
|
|
15
15
|
*/
|
|
16
16
|
export declare class SeenAggregators extends SeenAttesters {
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Keeps a cache to filter payload attestations from the same attesters in the same epoch
|
|
20
|
+
*/
|
|
21
|
+
export declare class SeenPayloadAttesters extends SeenAttesters {
|
|
22
|
+
}
|
|
18
23
|
//# sourceMappingURL=seenAttesters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seenAttesters.d.ts","sourceRoot":"","sources":["../../../src/chain/seenCache/seenAttesters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAwBvC;;GAEG;AACH,qBAAa,aAAa;IACxB,SAAS,CAAC,QAAQ,CAAC,uBAAuB,8BAA2E;IACrH,SAAS,CAAC,sBAAsB,EAAE,KAAK,CAAK;IAE5C,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO;IAIpE,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI;IAQ7D,KAAK,CAAC,YAAY,EAAE,KAAK,GAAG,IAAI;CAQjC;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa;CAAG"}
|
|
1
|
+
{"version":3,"file":"seenAttesters.d.ts","sourceRoot":"","sources":["../../../src/chain/seenCache/seenAttesters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAwBvC;;GAEG;AACH,qBAAa,aAAa;IACxB,SAAS,CAAC,QAAQ,CAAC,uBAAuB,8BAA2E;IACrH,SAAS,CAAC,sBAAsB,EAAE,KAAK,CAAK;IAE5C,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO;IAIpE,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI;IAQ7D,KAAK,CAAC,YAAY,EAAE,KAAK,GAAG,IAAI;CAQjC;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa;CAAG;AAErD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,aAAa;CAAG"}
|
|
@@ -49,4 +49,9 @@ export class SeenAttesters {
|
|
|
49
49
|
*/
|
|
50
50
|
export class SeenAggregators extends SeenAttesters {
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Keeps a cache to filter payload attestations from the same attesters in the same epoch
|
|
54
|
+
*/
|
|
55
|
+
export class SeenPayloadAttesters extends SeenAttesters {
|
|
56
|
+
}
|
|
52
57
|
//# sourceMappingURL=seenAttesters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seenAttesters.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenAttesters.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,oEAAoE;AACpE,8EAA8E;AAC9E,kBAAkB;AAClB,EAAE;AACF,aAAa;AACb,0GAA0G;AAC1G,EAAE;AACF,cAAc;AACd,4CAA4C;AAC5C,4GAA4G;AAC5G,EAAE;AACF,qGAAqG;AACrG,yGAAyG;AACzG,uCAAuC;AACvC,EAAE;AACF,+GAA+G;AAC/G,gFAAgF;AAChF,EAAE;AACF,gHAAgH;AAChH,wFAAwF;AACxF,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B;;GAEG;AACH,MAAM,OAAO,aAAa;IACL,uBAAuB,GAAG,IAAI,MAAM,CAA6B,GAAG,EAAE,CAAC,IAAI,GAAG,EAAkB,CAAC,CAAC;IAC3G,sBAAsB,GAAU,CAAC,CAAC;IAE5C,OAAO,CAAC,WAAkB,EAAE,cAA8B;QACxD,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACrF,CAAC;IAED,GAAG,CAAC,WAAkB,EAAE,cAA8B;QACpD,IAAI,WAAW,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9C,MAAM,KAAK,CAAC,eAAe,WAAW,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,YAAmB;QACvB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC/E,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,EAAE,CAAC;YACxD,IAAI,KAAK,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACxC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,aAAa;CAAG"}
|
|
1
|
+
{"version":3,"file":"seenAttesters.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenAttesters.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,oEAAoE;AACpE,8EAA8E;AAC9E,kBAAkB;AAClB,EAAE;AACF,aAAa;AACb,0GAA0G;AAC1G,EAAE;AACF,cAAc;AACd,4CAA4C;AAC5C,4GAA4G;AAC5G,EAAE;AACF,qGAAqG;AACrG,yGAAyG;AACzG,uCAAuC;AACvC,EAAE;AACF,+GAA+G;AAC/G,gFAAgF;AAChF,EAAE;AACF,gHAAgH;AAChH,wFAAwF;AACxF,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B;;GAEG;AACH,MAAM,OAAO,aAAa;IACL,uBAAuB,GAAG,IAAI,MAAM,CAA6B,GAAG,EAAE,CAAC,IAAI,GAAG,EAAkB,CAAC,CAAC;IAC3G,sBAAsB,GAAU,CAAC,CAAC;IAE5C,OAAO,CAAC,WAAkB,EAAE,cAA8B;QACxD,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACrF,CAAC;IAED,GAAG,CAAC,WAAkB,EAAE,cAA8B;QACpD,IAAI,WAAW,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9C,MAAM,KAAK,CAAC,eAAe,WAAW,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,YAAmB;QACvB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC/E,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,EAAE,CAAC;YACxD,IAAI,KAAK,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACxC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,aAAa;CAAG;AAErD;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,aAAa;CAAG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BuilderIndex, Slot } from "@lodestar/types";
|
|
2
|
+
/**
|
|
3
|
+
* Tracks execution payload bids we've already seen per (slot, builder).
|
|
4
|
+
*/
|
|
5
|
+
export declare class SeenExecutionPayloadBids {
|
|
6
|
+
private readonly builderIndexesBySlot;
|
|
7
|
+
private lowestPermissibleSlot;
|
|
8
|
+
isKnown(slot: Slot, builderIndex: BuilderIndex): boolean;
|
|
9
|
+
add(slot: Slot, builderIndex: BuilderIndex): void;
|
|
10
|
+
prune(currentSlot: Slot): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=seenExecutionPayloadBids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seenExecutionPayloadBids.d.ts","sourceRoot":"","sources":["../../../src/chain/seenCache/seenExecutionPayloadBids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAQnD;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsE;IAC3G,OAAO,CAAC,qBAAqB,CAAW;IAExC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO;IAIxD,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI;IAOjD,KAAK,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI;CAQ/B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { MapDef } from "@lodestar/utils";
|
|
2
|
+
/**
|
|
3
|
+
* TODO GLOAS: Revisit this value and add rational for choosing it
|
|
4
|
+
*/
|
|
5
|
+
const SLOTS_RETAINED = 2;
|
|
6
|
+
/**
|
|
7
|
+
* Tracks execution payload bids we've already seen per (slot, builder).
|
|
8
|
+
*/
|
|
9
|
+
export class SeenExecutionPayloadBids {
|
|
10
|
+
builderIndexesBySlot = new MapDef(() => new Set());
|
|
11
|
+
lowestPermissibleSlot = 0;
|
|
12
|
+
isKnown(slot, builderIndex) {
|
|
13
|
+
return this.builderIndexesBySlot.get(slot)?.has(builderIndex) === true;
|
|
14
|
+
}
|
|
15
|
+
add(slot, builderIndex) {
|
|
16
|
+
if (slot < this.lowestPermissibleSlot) {
|
|
17
|
+
throw Error(`slot ${slot} < lowestPermissibleSlot ${this.lowestPermissibleSlot}`);
|
|
18
|
+
}
|
|
19
|
+
this.builderIndexesBySlot.getOrDefault(slot).add(builderIndex);
|
|
20
|
+
}
|
|
21
|
+
prune(currentSlot) {
|
|
22
|
+
this.lowestPermissibleSlot = Math.max(currentSlot - SLOTS_RETAINED, 0);
|
|
23
|
+
for (const slot of this.builderIndexesBySlot.keys()) {
|
|
24
|
+
if (slot < this.lowestPermissibleSlot) {
|
|
25
|
+
this.builderIndexesBySlot.delete(slot);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=seenExecutionPayloadBids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seenExecutionPayloadBids.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenExecutionPayloadBids.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC;;GAEG;AACH,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAClB,oBAAoB,GAAG,IAAI,MAAM,CAA0B,GAAG,EAAE,CAAC,IAAI,GAAG,EAAgB,CAAC,CAAC;IACnG,qBAAqB,GAAS,CAAC,CAAC;IAExC,OAAO,CAAC,IAAU,EAAE,YAA0B;QAC5C,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACzE,CAAC;IAED,GAAG,CAAC,IAAU,EAAE,YAA0B;QACxC,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACtC,MAAM,KAAK,CAAC,QAAQ,IAAI,4BAA4B,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,WAAiB;QACrB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,cAAc,EAAE,CAAC,CAAC,CAAC;QACvE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC;YACpD,IAAI,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACtC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RootHex, Slot } from "@lodestar/types";
|
|
2
|
+
/**
|
|
3
|
+
* Cache to prevent processing multiple execution payload envelopes for the same block root.
|
|
4
|
+
* Only one builder qualifies to submit an execution payload for a given slot.
|
|
5
|
+
* We only keep track of envelopes of unfinalized slots.
|
|
6
|
+
* [IGNORE] The node has not seen another valid `SignedExecutionPayloadEnvelope` for this block root.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SeenExecutionPayloadEnvelopes {
|
|
9
|
+
private readonly slotByBlockRoot;
|
|
10
|
+
private finalizedSlot;
|
|
11
|
+
isKnown(blockRoot: RootHex): boolean;
|
|
12
|
+
add(blockRoot: RootHex, slot: Slot): void;
|
|
13
|
+
prune(finalizedSlot: Slot): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=seenExecutionPayloadEnvelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seenExecutionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../../src/chain/seenCache/seenExecutionPayloadEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;;;;GAKG;AACH,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAC5D,OAAO,CAAC,aAAa,CAAW;IAEhC,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO;IAIpC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAQzC,KAAK,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI;CASjC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache to prevent processing multiple execution payload envelopes for the same block root.
|
|
3
|
+
* Only one builder qualifies to submit an execution payload for a given slot.
|
|
4
|
+
* We only keep track of envelopes of unfinalized slots.
|
|
5
|
+
* [IGNORE] The node has not seen another valid `SignedExecutionPayloadEnvelope` for this block root.
|
|
6
|
+
*/
|
|
7
|
+
export class SeenExecutionPayloadEnvelopes {
|
|
8
|
+
slotByBlockRoot = new Map();
|
|
9
|
+
finalizedSlot = 0;
|
|
10
|
+
isKnown(blockRoot) {
|
|
11
|
+
return this.slotByBlockRoot.has(blockRoot);
|
|
12
|
+
}
|
|
13
|
+
add(blockRoot, slot) {
|
|
14
|
+
if (slot < this.finalizedSlot) {
|
|
15
|
+
throw Error(`slot ${slot} < finalizedSlot ${this.finalizedSlot}`);
|
|
16
|
+
}
|
|
17
|
+
this.slotByBlockRoot.set(blockRoot, slot);
|
|
18
|
+
}
|
|
19
|
+
prune(finalizedSlot) {
|
|
20
|
+
this.finalizedSlot = finalizedSlot;
|
|
21
|
+
for (const [blockRoot, slot] of this.slotByBlockRoot.entries()) {
|
|
22
|
+
if (slot < finalizedSlot) {
|
|
23
|
+
this.slotByBlockRoot.delete(blockRoot);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=seenExecutionPayloadEnvelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seenExecutionPayloadEnvelope.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenExecutionPayloadEnvelope.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,6BAA6B;IACvB,eAAe,GAAG,IAAI,GAAG,EAAiB,CAAC;IACpD,aAAa,GAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,SAAkB;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,GAAG,CAAC,SAAkB,EAAE,IAAU;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9B,MAAM,KAAK,CAAC,QAAQ,IAAI,oBAAoB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,aAAmB;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/D,IAAI,IAAI,GAAG,aAAa,EAAE,CAAC;gBACzB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|