@lodestar/beacon-node 1.35.0-dev.8689cc3545 → 1.35.0-dev.8b45b1e978
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/db/buckets.d.ts +4 -4
- package/lib/db/buckets.js +4 -4
- package/lib/db/buckets.js.map +1 -1
- package/lib/db/repositories/blobSidecars.js +1 -1
- package/lib/db/repositories/blobSidecars.js.map +1 -1
- package/lib/db/repositories/blobSidecarsArchive.js +1 -1
- package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
- package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
- package/lib/db/repositories/dataColumnSidecar.js +1 -1
- package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
- package/lib/db/repositories/dataColumnSidecarArchive.js +1 -1
- package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
- package/lib/network/network.js +4 -2
- package/lib/network/network.js.map +1 -1
- package/lib/util/blobs.js +3 -5
- package/lib/util/blobs.js.map +1 -1
- package/package.json +20 -18
- package/lib/api/impl/api.d.ts.map +0 -1
- package/lib/api/impl/beacon/blocks/index.d.ts.map +0 -1
- package/lib/api/impl/beacon/blocks/utils.d.ts.map +0 -1
- package/lib/api/impl/beacon/index.d.ts.map +0 -1
- package/lib/api/impl/beacon/pool/index.d.ts.map +0 -1
- package/lib/api/impl/beacon/rewards/index.d.ts.map +0 -1
- package/lib/api/impl/beacon/state/index.d.ts.map +0 -1
- package/lib/api/impl/beacon/state/utils.d.ts.map +0 -1
- package/lib/api/impl/config/constants.d.ts.map +0 -1
- package/lib/api/impl/config/index.d.ts.map +0 -1
- package/lib/api/impl/debug/index.d.ts.map +0 -1
- package/lib/api/impl/errors.d.ts.map +0 -1
- package/lib/api/impl/events/index.d.ts.map +0 -1
- package/lib/api/impl/index.d.ts.map +0 -1
- package/lib/api/impl/lightclient/index.d.ts.map +0 -1
- package/lib/api/impl/lodestar/index.d.ts.map +0 -1
- package/lib/api/impl/node/index.d.ts.map +0 -1
- package/lib/api/impl/node/utils.d.ts.map +0 -1
- package/lib/api/impl/proof/index.d.ts.map +0 -1
- package/lib/api/impl/types.d.ts.map +0 -1
- package/lib/api/impl/utils.d.ts.map +0 -1
- package/lib/api/impl/validator/index.d.ts.map +0 -1
- package/lib/api/impl/validator/utils.d.ts.map +0 -1
- package/lib/api/index.d.ts.map +0 -1
- package/lib/api/options.d.ts.map +0 -1
- package/lib/api/rest/activeSockets.d.ts.map +0 -1
- package/lib/api/rest/base.d.ts.map +0 -1
- package/lib/api/rest/index.d.ts.map +0 -1
- package/lib/api/rest/swaggerUI.d.ts.map +0 -1
- package/lib/bun-wrappers/prometheus-gc-stats.d.ts.map +0 -1
- package/lib/chain/ColumnReconstructionTracker.d.ts.map +0 -1
- package/lib/chain/GetBlobsTracker.d.ts.map +0 -1
- package/lib/chain/archiveStore/archiveStore.d.ts.map +0 -1
- package/lib/chain/archiveStore/constants.d.ts.map +0 -1
- package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +0 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +0 -1
- package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +0 -1
- package/lib/chain/archiveStore/historicalState/types.d.ts.map +0 -1
- package/lib/chain/archiveStore/historicalState/worker.d.ts.map +0 -1
- package/lib/chain/archiveStore/index.d.ts.map +0 -1
- package/lib/chain/archiveStore/interface.d.ts.map +0 -1
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +0 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +0 -1
- package/lib/chain/archiveStore/utils/pruneHistory.d.ts.map +0 -1
- package/lib/chain/archiveStore/utils/updateBackfillRange.d.ts.map +0 -1
- package/lib/chain/balancesCache.d.ts.map +0 -1
- package/lib/chain/beaconProposerCache.d.ts.map +0 -1
- package/lib/chain/blocks/blockInput/blockInput.d.ts.map +0 -1
- package/lib/chain/blocks/blockInput/errors.d.ts.map +0 -1
- package/lib/chain/blocks/blockInput/index.d.ts.map +0 -1
- package/lib/chain/blocks/blockInput/types.d.ts.map +0 -1
- package/lib/chain/blocks/blockInput/utils.d.ts.map +0 -1
- package/lib/chain/blocks/importBlock.d.ts.map +0 -1
- package/lib/chain/blocks/index.d.ts.map +0 -1
- package/lib/chain/blocks/types.d.ts.map +0 -1
- package/lib/chain/blocks/utils/blowfishBanner.d.ts.map +0 -1
- package/lib/chain/blocks/utils/chainSegment.d.ts.map +0 -1
- package/lib/chain/blocks/utils/checkpoint.d.ts.map +0 -1
- package/lib/chain/blocks/utils/giraffeBanner.d.ts.map +0 -1
- package/lib/chain/blocks/utils/ownBanner.d.ts.map +0 -1
- package/lib/chain/blocks/utils/pandaMergeTransitionBanner.d.ts.map +0 -1
- package/lib/chain/blocks/utils/zebraBanner.d.ts.map +0 -1
- package/lib/chain/blocks/verifyBlock.d.ts.map +0 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +0 -1
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +0 -1
- package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +0 -1
- package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +0 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +0 -1
- package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +0 -1
- package/lib/chain/bls/index.d.ts.map +0 -1
- package/lib/chain/bls/interface.d.ts.map +0 -1
- package/lib/chain/bls/maybeBatch.d.ts.map +0 -1
- package/lib/chain/bls/multithread/index.d.ts.map +0 -1
- package/lib/chain/bls/multithread/jobItem.d.ts.map +0 -1
- package/lib/chain/bls/multithread/poolSize.d.ts.map +0 -1
- package/lib/chain/bls/multithread/types.d.ts.map +0 -1
- package/lib/chain/bls/multithread/utils.d.ts.map +0 -1
- package/lib/chain/bls/multithread/worker.d.ts.map +0 -1
- package/lib/chain/bls/singleThread.d.ts.map +0 -1
- package/lib/chain/bls/utils.d.ts.map +0 -1
- package/lib/chain/chain.d.ts.map +0 -1
- package/lib/chain/emitter.d.ts.map +0 -1
- package/lib/chain/errors/attestationError.d.ts.map +0 -1
- package/lib/chain/errors/attesterSlashingError.d.ts.map +0 -1
- package/lib/chain/errors/blobSidecarError.d.ts.map +0 -1
- package/lib/chain/errors/blockError.d.ts.map +0 -1
- package/lib/chain/errors/blsToExecutionChangeError.d.ts.map +0 -1
- package/lib/chain/errors/dataColumnSidecarError.d.ts.map +0 -1
- package/lib/chain/errors/gossipValidation.d.ts.map +0 -1
- package/lib/chain/errors/index.d.ts.map +0 -1
- package/lib/chain/errors/lightClientError.d.ts.map +0 -1
- package/lib/chain/errors/proposerSlashingError.d.ts.map +0 -1
- package/lib/chain/errors/syncCommitteeError.d.ts.map +0 -1
- package/lib/chain/errors/voluntaryExitError.d.ts.map +0 -1
- package/lib/chain/forkChoice/index.d.ts.map +0 -1
- package/lib/chain/genesis/genesis.d.ts.map +0 -1
- package/lib/chain/genesis/interface.d.ts.map +0 -1
- package/lib/chain/index.d.ts.map +0 -1
- package/lib/chain/initState.d.ts.map +0 -1
- package/lib/chain/interface.d.ts.map +0 -1
- package/lib/chain/lightClient/index.d.ts.map +0 -1
- package/lib/chain/lightClient/proofs.d.ts.map +0 -1
- package/lib/chain/lightClient/types.d.ts.map +0 -1
- package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +0 -1
- package/lib/chain/opPools/attestationPool.d.ts.map +0 -1
- package/lib/chain/opPools/index.d.ts.map +0 -1
- package/lib/chain/opPools/opPool.d.ts.map +0 -1
- package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +0 -1
- package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +0 -1
- package/lib/chain/opPools/types.d.ts.map +0 -1
- package/lib/chain/opPools/utils.d.ts.map +0 -1
- package/lib/chain/options.d.ts.map +0 -1
- package/lib/chain/prepareNextSlot.d.ts.map +0 -1
- package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +0 -1
- package/lib/chain/produceBlock/index.d.ts.map +0 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts.map +0 -1
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts.map +0 -1
- package/lib/chain/regen/errors.d.ts.map +0 -1
- package/lib/chain/regen/index.d.ts.map +0 -1
- package/lib/chain/regen/interface.d.ts.map +0 -1
- package/lib/chain/regen/queued.d.ts.map +0 -1
- package/lib/chain/regen/regen.d.ts.map +0 -1
- package/lib/chain/reprocess.d.ts.map +0 -1
- package/lib/chain/rewards/attestationsRewards.d.ts.map +0 -1
- package/lib/chain/rewards/blockRewards.d.ts.map +0 -1
- package/lib/chain/rewards/syncCommitteeRewards.d.ts.map +0 -1
- package/lib/chain/seenCache/index.d.ts.map +0 -1
- package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +0 -1
- package/lib/chain/seenCache/seenAttestationData.d.ts.map +0 -1
- package/lib/chain/seenCache/seenAttesters.d.ts.map +0 -1
- package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +0 -1
- package/lib/chain/seenCache/seenBlockProposers.d.ts.map +0 -1
- package/lib/chain/seenCache/seenCommittee.d.ts.map +0 -1
- package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +0 -1
- package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +0 -1
- package/lib/chain/serializeState.d.ts.map +0 -1
- package/lib/chain/shufflingCache.d.ts.map +0 -1
- package/lib/chain/stateCache/blockStateCacheImpl.d.ts.map +0 -1
- package/lib/chain/stateCache/datastore/db.d.ts.map +0 -1
- package/lib/chain/stateCache/datastore/file.d.ts.map +0 -1
- package/lib/chain/stateCache/datastore/index.d.ts.map +0 -1
- package/lib/chain/stateCache/datastore/types.d.ts.map +0 -1
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +0 -1
- package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts.map +0 -1
- package/lib/chain/stateCache/index.d.ts.map +0 -1
- package/lib/chain/stateCache/mapMetrics.d.ts.map +0 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +0 -1
- package/lib/chain/stateCache/types.d.ts.map +0 -1
- package/lib/chain/validation/aggregateAndProof.d.ts.map +0 -1
- package/lib/chain/validation/attestation.d.ts.map +0 -1
- package/lib/chain/validation/attesterSlashing.d.ts.map +0 -1
- package/lib/chain/validation/blobSidecar.d.ts.map +0 -1
- package/lib/chain/validation/block.d.ts.map +0 -1
- package/lib/chain/validation/blsToExecutionChange.d.ts.map +0 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts.map +0 -1
- package/lib/chain/validation/index.d.ts.map +0 -1
- package/lib/chain/validation/lightClientFinalityUpdate.d.ts.map +0 -1
- package/lib/chain/validation/lightClientOptimisticUpdate.d.ts.map +0 -1
- package/lib/chain/validation/proposerSlashing.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/index.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/selectionProof.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +0 -1
- package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +0 -1
- package/lib/chain/validation/syncCommittee.d.ts.map +0 -1
- package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +0 -1
- package/lib/chain/validation/voluntaryExit.d.ts.map +0 -1
- package/lib/chain/validatorMonitor.d.ts.map +0 -1
- package/lib/constants/constants.d.ts.map +0 -1
- package/lib/constants/index.d.ts.map +0 -1
- package/lib/constants/network.d.ts.map +0 -1
- package/lib/db/beacon.d.ts.map +0 -1
- package/lib/db/buckets.d.ts.map +0 -1
- package/lib/db/index.d.ts.map +0 -1
- package/lib/db/interface.d.ts.map +0 -1
- package/lib/db/options.d.ts.map +0 -1
- package/lib/db/repositories/attesterSlashing.d.ts.map +0 -1
- package/lib/db/repositories/backfilledRanges.d.ts.map +0 -1
- package/lib/db/repositories/blobSidecars.d.ts.map +0 -1
- package/lib/db/repositories/blobSidecarsArchive.d.ts.map +0 -1
- package/lib/db/repositories/block.d.ts.map +0 -1
- package/lib/db/repositories/blockArchive.d.ts.map +0 -1
- package/lib/db/repositories/blockArchiveIndex.d.ts.map +0 -1
- package/lib/db/repositories/blsToExecutionChange.d.ts.map +0 -1
- package/lib/db/repositories/checkpointState.d.ts.map +0 -1
- package/lib/db/repositories/dataColumnSidecar.d.ts.map +0 -1
- package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +0 -1
- package/lib/db/repositories/depositDataRoot.d.ts.map +0 -1
- package/lib/db/repositories/depositEvent.d.ts.map +0 -1
- package/lib/db/repositories/eth1Data.d.ts.map +0 -1
- package/lib/db/repositories/index.d.ts.map +0 -1
- package/lib/db/repositories/lightclientBestUpdate.d.ts.map +0 -1
- package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +0 -1
- package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +0 -1
- package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +0 -1
- package/lib/db/repositories/proposerSlashing.d.ts.map +0 -1
- package/lib/db/repositories/stateArchive.d.ts.map +0 -1
- package/lib/db/repositories/stateArchiveIndex.d.ts.map +0 -1
- package/lib/db/repositories/voluntaryExit.d.ts.map +0 -1
- package/lib/db/single/index.d.ts.map +0 -1
- package/lib/db/single/preGenesisState.d.ts.map +0 -1
- package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts.map +0 -1
- package/lib/eth1/errors.d.ts.map +0 -1
- package/lib/eth1/eth1DataCache.d.ts.map +0 -1
- package/lib/eth1/eth1DepositDataTracker.d.ts.map +0 -1
- package/lib/eth1/eth1DepositsCache.d.ts.map +0 -1
- package/lib/eth1/eth1MergeBlockTracker.d.ts.map +0 -1
- package/lib/eth1/index.d.ts.map +0 -1
- package/lib/eth1/interface.d.ts.map +0 -1
- package/lib/eth1/options.d.ts.map +0 -1
- package/lib/eth1/provider/eth1Provider.d.ts.map +0 -1
- package/lib/eth1/provider/jsonRpcHttpClient.d.ts.map +0 -1
- package/lib/eth1/provider/jwt.d.ts.map +0 -1
- package/lib/eth1/provider/utils.d.ts.map +0 -1
- package/lib/eth1/stream.d.ts.map +0 -1
- package/lib/eth1/utils/depositContract.d.ts.map +0 -1
- package/lib/eth1/utils/deposits.d.ts.map +0 -1
- package/lib/eth1/utils/eth1Data.d.ts.map +0 -1
- package/lib/eth1/utils/eth1DepositEvent.d.ts.map +0 -1
- package/lib/eth1/utils/eth1Vote.d.ts.map +0 -1
- package/lib/eth1/utils/groupDepositEventsByBlock.d.ts.map +0 -1
- package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.d.ts.map +0 -1
- package/lib/execution/builder/cache.d.ts.map +0 -1
- package/lib/execution/builder/http.d.ts.map +0 -1
- package/lib/execution/builder/index.d.ts.map +0 -1
- package/lib/execution/builder/interface.d.ts.map +0 -1
- package/lib/execution/builder/utils.d.ts.map +0 -1
- package/lib/execution/engine/disabled.d.ts.map +0 -1
- package/lib/execution/engine/http.d.ts.map +0 -1
- package/lib/execution/engine/index.d.ts.map +0 -1
- package/lib/execution/engine/interface.d.ts.map +0 -1
- package/lib/execution/engine/mock.d.ts.map +0 -1
- package/lib/execution/engine/payloadIdCache.d.ts.map +0 -1
- package/lib/execution/engine/types.d.ts.map +0 -1
- package/lib/execution/engine/utils.d.ts.map +0 -1
- package/lib/execution/index.d.ts.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/metrics/index.d.ts.map +0 -1
- package/lib/metrics/metrics/beacon.d.ts.map +0 -1
- package/lib/metrics/metrics/lodestar.d.ts.map +0 -1
- package/lib/metrics/metrics.d.ts.map +0 -1
- package/lib/metrics/nodeJsMetrics.d.ts.map +0 -1
- package/lib/metrics/options.d.ts.map +0 -1
- package/lib/metrics/server/http.d.ts.map +0 -1
- package/lib/metrics/server/index.d.ts.map +0 -1
- package/lib/metrics/utils/avgMinMax.d.ts.map +0 -1
- package/lib/metrics/utils/gauge.d.ts.map +0 -1
- package/lib/metrics/utils/registryMetricCreator.d.ts.map +0 -1
- package/lib/monitoring/clientStats.d.ts.map +0 -1
- package/lib/monitoring/index.d.ts.map +0 -1
- package/lib/monitoring/options.d.ts.map +0 -1
- package/lib/monitoring/properties.d.ts.map +0 -1
- package/lib/monitoring/service.d.ts.map +0 -1
- package/lib/monitoring/system.d.ts.map +0 -1
- package/lib/monitoring/types.d.ts.map +0 -1
- package/lib/network/core/events.d.ts.map +0 -1
- package/lib/network/core/index.d.ts.map +0 -1
- package/lib/network/core/metrics.d.ts.map +0 -1
- package/lib/network/core/networkCore.d.ts.map +0 -1
- package/lib/network/core/networkCoreWorker.d.ts.map +0 -1
- package/lib/network/core/networkCoreWorkerHandler.d.ts.map +0 -1
- package/lib/network/core/types.d.ts.map +0 -1
- package/lib/network/discv5/index.d.ts.map +0 -1
- package/lib/network/discv5/types.d.ts.map +0 -1
- package/lib/network/discv5/utils.d.ts.map +0 -1
- package/lib/network/discv5/worker.d.ts.map +0 -1
- package/lib/network/events.d.ts.map +0 -1
- package/lib/network/forks.d.ts.map +0 -1
- package/lib/network/gossip/constants.d.ts.map +0 -1
- package/lib/network/gossip/encoding.d.ts.map +0 -1
- package/lib/network/gossip/errors.d.ts.map +0 -1
- package/lib/network/gossip/gossipsub.d.ts.map +0 -1
- package/lib/network/gossip/index.d.ts.map +0 -1
- package/lib/network/gossip/interface.d.ts.map +0 -1
- package/lib/network/gossip/metrics.d.ts.map +0 -1
- package/lib/network/gossip/scoringParameters.d.ts.map +0 -1
- package/lib/network/gossip/topic.d.ts.map +0 -1
- package/lib/network/index.d.ts.map +0 -1
- package/lib/network/interface.d.ts.map +0 -1
- package/lib/network/libp2p/error.d.ts.map +0 -1
- package/lib/network/libp2p/index.d.ts.map +0 -1
- package/lib/network/metadata.d.ts.map +0 -1
- package/lib/network/network.d.ts.map +0 -1
- package/lib/network/networkConfig.d.ts.map +0 -1
- package/lib/network/options.d.ts.map +0 -1
- package/lib/network/peers/client.d.ts.map +0 -1
- package/lib/network/peers/datastore.d.ts.map +0 -1
- package/lib/network/peers/discover.d.ts.map +0 -1
- package/lib/network/peers/index.d.ts.map +0 -1
- package/lib/network/peers/peerManager.d.ts.map +0 -1
- package/lib/network/peers/peersData.d.ts.map +0 -1
- package/lib/network/peers/score/constants.d.ts.map +0 -1
- package/lib/network/peers/score/index.d.ts.map +0 -1
- package/lib/network/peers/score/interface.d.ts.map +0 -1
- package/lib/network/peers/score/score.d.ts.map +0 -1
- package/lib/network/peers/score/store.d.ts.map +0 -1
- package/lib/network/peers/score/utils.d.ts.map +0 -1
- package/lib/network/peers/utils/assertPeerRelevance.d.ts.map +0 -1
- package/lib/network/peers/utils/enrSubnetsDeserialize.d.ts.map +0 -1
- package/lib/network/peers/utils/getConnectedPeerIds.d.ts.map +0 -1
- package/lib/network/peers/utils/index.d.ts.map +0 -1
- package/lib/network/peers/utils/prioritizePeers.d.ts.map +0 -1
- package/lib/network/peers/utils/subnetMap.d.ts.map +0 -1
- package/lib/network/processor/aggregatorTracker.d.ts.map +0 -1
- package/lib/network/processor/extractSlotRootFns.d.ts.map +0 -1
- package/lib/network/processor/gossipHandlers.d.ts.map +0 -1
- package/lib/network/processor/gossipQueues/index.d.ts.map +0 -1
- package/lib/network/processor/gossipQueues/indexed.d.ts.map +0 -1
- package/lib/network/processor/gossipQueues/linear.d.ts.map +0 -1
- package/lib/network/processor/gossipQueues/types.d.ts.map +0 -1
- package/lib/network/processor/gossipValidatorFn.d.ts.map +0 -1
- package/lib/network/processor/index.d.ts.map +0 -1
- package/lib/network/processor/types.d.ts.map +0 -1
- package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/index.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/lightClientBootstrap.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/lightClientFinalityUpdate.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.d.ts.map +0 -1
- package/lib/network/reqresp/handlers/lightClientUpdatesByRange.d.ts.map +0 -1
- package/lib/network/reqresp/index.d.ts.map +0 -1
- package/lib/network/reqresp/interface.d.ts.map +0 -1
- package/lib/network/reqresp/protocols.d.ts.map +0 -1
- package/lib/network/reqresp/rateLimit.d.ts.map +0 -1
- package/lib/network/reqresp/score.d.ts.map +0 -1
- package/lib/network/reqresp/types.d.ts.map +0 -1
- package/lib/network/reqresp/utils/collect.d.ts.map +0 -1
- package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts.map +0 -1
- package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +0 -1
- package/lib/network/statusCache.d.ts.map +0 -1
- package/lib/network/subnets/attnetsService.d.ts.map +0 -1
- package/lib/network/subnets/index.d.ts.map +0 -1
- package/lib/network/subnets/interface.d.ts.map +0 -1
- package/lib/network/subnets/syncnetsService.d.ts.map +0 -1
- package/lib/network/subnets/util.d.ts.map +0 -1
- package/lib/network/util.d.ts.map +0 -1
- package/lib/node/index.d.ts.map +0 -1
- package/lib/node/nodejs.d.ts.map +0 -1
- package/lib/node/notifier.d.ts.map +0 -1
- package/lib/node/options.d.ts.map +0 -1
- package/lib/node/utils/interop/deposits.d.ts.map +0 -1
- package/lib/node/utils/interop/state.d.ts.map +0 -1
- package/lib/node/utils/lightclient.d.ts.map +0 -1
- package/lib/node/utils/state.d.ts.map +0 -1
- package/lib/sync/backfill/backfill.d.ts.map +0 -1
- package/lib/sync/backfill/errors.d.ts.map +0 -1
- package/lib/sync/backfill/index.d.ts.map +0 -1
- package/lib/sync/backfill/verify.d.ts.map +0 -1
- package/lib/sync/constants.d.ts.map +0 -1
- package/lib/sync/index.d.ts.map +0 -1
- package/lib/sync/interface.d.ts.map +0 -1
- package/lib/sync/options.d.ts.map +0 -1
- package/lib/sync/range/batch.d.ts.map +0 -1
- package/lib/sync/range/chain.d.ts.map +0 -1
- package/lib/sync/range/range.d.ts.map +0 -1
- package/lib/sync/range/utils/batches.d.ts.map +0 -1
- package/lib/sync/range/utils/chainTarget.d.ts.map +0 -1
- package/lib/sync/range/utils/hashBlocks.d.ts.map +0 -1
- package/lib/sync/range/utils/index.d.ts.map +0 -1
- package/lib/sync/range/utils/peerBalancer.d.ts.map +0 -1
- package/lib/sync/range/utils/updateChains.d.ts.map +0 -1
- package/lib/sync/sync.d.ts.map +0 -1
- package/lib/sync/types.d.ts.map +0 -1
- package/lib/sync/unknownBlock.d.ts.map +0 -1
- package/lib/sync/utils/downloadByRange.d.ts.map +0 -1
- package/lib/sync/utils/downloadByRoot.d.ts.map +0 -1
- package/lib/sync/utils/pendingBlocksTree.d.ts.map +0 -1
- package/lib/sync/utils/remoteSyncType.d.ts.map +0 -1
- package/lib/util/address.d.ts.map +0 -1
- package/lib/util/array.d.ts.map +0 -1
- package/lib/util/asyncIterableToEvents.d.ts.map +0 -1
- package/lib/util/binarySearch.d.ts.map +0 -1
- package/lib/util/bitArray.d.ts.map +0 -1
- package/lib/util/blobs.d.ts.map +0 -1
- package/lib/util/bufferPool.d.ts.map +0 -1
- package/lib/util/bytes.d.ts.map +0 -1
- package/lib/util/chunkify.d.ts.map +0 -1
- package/lib/util/clock.d.ts.map +0 -1
- package/lib/util/dataColumns.d.ts.map +0 -1
- package/lib/util/dependentRoot.d.ts.map +0 -1
- package/lib/util/enum.d.ts.map +0 -1
- package/lib/util/error.d.ts.map +0 -1
- package/lib/util/eventLoop.d.ts.map +0 -1
- package/lib/util/execution.d.ts.map +0 -1
- package/lib/util/file.d.ts.map +0 -1
- package/lib/util/forkChoice.d.ts.map +0 -1
- package/lib/util/forkName.d.ts.map +0 -1
- package/lib/util/graffiti.d.ts.map +0 -1
- package/lib/util/hex.d.ts.map +0 -1
- package/lib/util/index.d.ts.map +0 -1
- package/lib/util/ip.d.ts.map +0 -1
- package/lib/util/itTrigger.d.ts.map +0 -1
- package/lib/util/kzg.d.ts.map +0 -1
- package/lib/util/map.d.ts.map +0 -1
- package/lib/util/metadata.d.ts.map +0 -1
- package/lib/util/multifork.d.ts.map +0 -1
- package/lib/util/numpy.d.ts.map +0 -1
- package/lib/util/peerId.d.ts.map +0 -1
- package/lib/util/profile.d.ts.map +0 -1
- package/lib/util/promises.d.ts.map +0 -1
- package/lib/util/queue/errors.d.ts.map +0 -1
- package/lib/util/queue/fnQueue.d.ts.map +0 -1
- package/lib/util/queue/index.d.ts.map +0 -1
- package/lib/util/queue/itemQueue.d.ts.map +0 -1
- package/lib/util/queue/options.d.ts.map +0 -1
- package/lib/util/serializedCache.d.ts.map +0 -1
- package/lib/util/set.d.ts.map +0 -1
- package/lib/util/shuffle.d.ts.map +0 -1
- package/lib/util/sortBy.d.ts.map +0 -1
- package/lib/util/sszBytes.d.ts.map +0 -1
- package/lib/util/strictEvents.d.ts.map +0 -1
- package/lib/util/time.d.ts.map +0 -1
- package/lib/util/timeSeries.d.ts.map +0 -1
- package/lib/util/types.d.ts.map +0 -1
- package/lib/util/workerEvents.d.ts.map +0 -1
- package/lib/util/wrapError.d.ts.map +0 -1
- package/src/api/impl/api.ts +0 -26
- package/src/api/impl/beacon/blocks/index.ts +0 -744
- package/src/api/impl/beacon/blocks/utils.ts +0 -75
- package/src/api/impl/beacon/index.ts +0 -35
- package/src/api/impl/beacon/pool/index.ts +0 -314
- package/src/api/impl/beacon/rewards/index.ts +0 -30
- package/src/api/impl/beacon/state/index.ts +0 -406
- package/src/api/impl/beacon/state/utils.ts +0 -189
- package/src/api/impl/config/constants.ts +0 -127
- package/src/api/impl/config/index.ts +0 -59
- package/src/api/impl/debug/index.ts +0 -131
- package/src/api/impl/errors.ts +0 -50
- package/src/api/impl/events/index.ts +0 -33
- package/src/api/impl/index.ts +0 -6
- package/src/api/impl/lightclient/index.ts +0 -64
- package/src/api/impl/lodestar/index.ts +0 -257
- package/src/api/impl/node/index.ts +0 -88
- package/src/api/impl/node/utils.ts +0 -51
- package/src/api/impl/proof/index.ts +0 -60
- package/src/api/impl/types.ts +0 -17
- package/src/api/impl/utils.ts +0 -25
- package/src/api/impl/validator/index.ts +0 -1538
- package/src/api/impl/validator/utils.ts +0 -85
- package/src/api/index.ts +0 -2
- package/src/api/options.ts +0 -16
- package/src/api/rest/activeSockets.ts +0 -109
- package/src/api/rest/base.ts +0 -216
- package/src/api/rest/index.ts +0 -63
- package/src/api/rest/swaggerUI.ts +0 -80
- package/src/bun-wrappers/prometheus-gc-stats.ts +0 -7
- package/src/chain/ColumnReconstructionTracker.ts +0 -90
- package/src/chain/GetBlobsTracker.ts +0 -115
- package/src/chain/archiveStore/archiveStore.ts +0 -222
- package/src/chain/archiveStore/constants.ts +0 -5
- package/src/chain/archiveStore/historicalState/getHistoricalState.ts +0 -116
- package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +0 -68
- package/src/chain/archiveStore/historicalState/metrics.ts +0 -214
- package/src/chain/archiveStore/historicalState/types.ts +0 -41
- package/src/chain/archiveStore/historicalState/worker.ts +0 -77
- package/src/chain/archiveStore/index.ts +0 -3
- package/src/chain/archiveStore/interface.ts +0 -75
- package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +0 -138
- package/src/chain/archiveStore/utils/archiveBlocks.ts +0 -437
- package/src/chain/archiveStore/utils/pruneHistory.ts +0 -56
- package/src/chain/archiveStore/utils/updateBackfillRange.ts +0 -50
- package/src/chain/balancesCache.ts +0 -52
- package/src/chain/beaconProposerCache.ts +0 -43
- package/src/chain/blocks/blockInput/blockInput.ts +0 -851
- package/src/chain/blocks/blockInput/errors.ts +0 -48
- package/src/chain/blocks/blockInput/index.ts +0 -4
- package/src/chain/blocks/blockInput/types.ts +0 -145
- package/src/chain/blocks/blockInput/utils.ts +0 -21
- package/src/chain/blocks/importBlock.ts +0 -603
- package/src/chain/blocks/index.ts +0 -179
- package/src/chain/blocks/types.ts +0 -101
- package/src/chain/blocks/utils/blowfishBanner.ts +0 -28
- package/src/chain/blocks/utils/chainSegment.ts +0 -29
- package/src/chain/blocks/utils/checkpoint.ts +0 -25
- package/src/chain/blocks/utils/giraffeBanner.ts +0 -30
- package/src/chain/blocks/utils/ownBanner.ts +0 -20
- package/src/chain/blocks/utils/pandaMergeTransitionBanner.ts +0 -43
- package/src/chain/blocks/utils/zebraBanner.ts +0 -45
- package/src/chain/blocks/verifyBlock.ts +0 -242
- package/src/chain/blocks/verifyBlocksDataAvailability.ts +0 -34
- package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +0 -438
- package/src/chain/blocks/verifyBlocksSanityChecks.ts +0 -129
- package/src/chain/blocks/verifyBlocksSignatures.ts +0 -105
- package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +0 -114
- package/src/chain/blocks/writeBlockInputToDb.ts +0 -128
- package/src/chain/bls/index.ts +0 -4
- package/src/chain/bls/interface.ts +0 -68
- package/src/chain/bls/maybeBatch.ts +0 -45
- package/src/chain/bls/multithread/index.ts +0 -582
- package/src/chain/bls/multithread/jobItem.ts +0 -119
- package/src/chain/bls/multithread/poolSize.ts +0 -16
- package/src/chain/bls/multithread/types.ts +0 -38
- package/src/chain/bls/multithread/utils.ts +0 -19
- package/src/chain/bls/multithread/worker.ts +0 -114
- package/src/chain/bls/singleThread.ts +0 -87
- package/src/chain/bls/utils.ts +0 -30
- package/src/chain/chain.ts +0 -1365
- package/src/chain/emitter.ts +0 -113
- package/src/chain/errors/attestationError.ts +0 -194
- package/src/chain/errors/attesterSlashingError.ts +0 -11
- package/src/chain/errors/blobSidecarError.ts +0 -60
- package/src/chain/errors/blockError.ts +0 -166
- package/src/chain/errors/blsToExecutionChangeError.ts +0 -13
- package/src/chain/errors/dataColumnSidecarError.ts +0 -80
- package/src/chain/errors/gossipValidation.ts +0 -20
- package/src/chain/errors/index.ts +0 -10
- package/src/chain/errors/lightClientError.ts +0 -30
- package/src/chain/errors/proposerSlashingError.ts +0 -11
- package/src/chain/errors/syncCommitteeError.ts +0 -36
- package/src/chain/errors/voluntaryExitError.ts +0 -13
- package/src/chain/forkChoice/index.ts +0 -112
- package/src/chain/genesis/genesis.ts +0 -190
- package/src/chain/genesis/interface.ts +0 -14
- package/src/chain/index.ts +0 -6
- package/src/chain/initState.ts +0 -221
- package/src/chain/interface.ts +0 -280
- package/src/chain/lightClient/index.ts +0 -764
- package/src/chain/lightClient/proofs.ts +0 -85
- package/src/chain/lightClient/types.ts +0 -33
- package/src/chain/opPools/aggregatedAttestationPool.ts +0 -1063
- package/src/chain/opPools/attestationPool.ts +0 -283
- package/src/chain/opPools/index.ts +0 -5
- package/src/chain/opPools/opPool.ts +0 -462
- package/src/chain/opPools/syncCommitteeMessagePool.ts +0 -167
- package/src/chain/opPools/syncContributionAndProofPool.ts +0 -240
- package/src/chain/opPools/types.ts +0 -35
- package/src/chain/opPools/utils.ts +0 -65
- package/src/chain/options.ts +0 -138
- package/src/chain/prepareNextSlot.ts +0 -277
- package/src/chain/produceBlock/computeNewStateRoot.ts +0 -55
- package/src/chain/produceBlock/index.ts +0 -2
- package/src/chain/produceBlock/produceBlockBody.ts +0 -797
- package/src/chain/produceBlock/validateBlobsAndKzgCommitments.ts +0 -54
- package/src/chain/regen/errors.ts +0 -30
- package/src/chain/regen/index.ts +0 -4
- package/src/chain/regen/interface.ts +0 -93
- package/src/chain/regen/queued.ts +0 -317
- package/src/chain/regen/regen.ts +0 -424
- package/src/chain/reprocess.ts +0 -161
- package/src/chain/rewards/attestationsRewards.ts +0 -196
- package/src/chain/rewards/blockRewards.ts +0 -150
- package/src/chain/rewards/syncCommitteeRewards.ts +0 -58
- package/src/chain/seenCache/index.ts +0 -5
- package/src/chain/seenCache/seenAggregateAndProof.ts +0 -120
- package/src/chain/seenCache/seenAttestationData.ts +0 -145
- package/src/chain/seenCache/seenAttesters.ts +0 -58
- package/src/chain/seenCache/seenBlockAttesters.ts +0 -18
- package/src/chain/seenCache/seenBlockProposers.ts +0 -48
- package/src/chain/seenCache/seenCommittee.ts +0 -43
- package/src/chain/seenCache/seenCommitteeContribution.ts +0 -104
- package/src/chain/seenCache/seenGossipBlockInput.ts +0 -373
- package/src/chain/serializeState.ts +0 -32
- package/src/chain/shufflingCache.ts +0 -238
- package/src/chain/stateCache/blockStateCacheImpl.ts +0 -150
- package/src/chain/stateCache/datastore/db.ts +0 -36
- package/src/chain/stateCache/datastore/file.ts +0 -53
- package/src/chain/stateCache/datastore/index.ts +0 -2
- package/src/chain/stateCache/datastore/types.ts +0 -13
- package/src/chain/stateCache/fifoBlockStateCache.ts +0 -208
- package/src/chain/stateCache/inMemoryCheckpointsCache.ts +0 -198
- package/src/chain/stateCache/index.ts +0 -3
- package/src/chain/stateCache/mapMetrics.ts +0 -52
- package/src/chain/stateCache/persistentCheckpointsCache.ts +0 -835
- package/src/chain/stateCache/types.ts +0 -86
- package/src/chain/validation/aggregateAndProof.ts +0 -258
- package/src/chain/validation/attestation.ts +0 -885
- package/src/chain/validation/attesterSlashing.ts +0 -61
- package/src/chain/validation/blobSidecar.ts +0 -301
- package/src/chain/validation/block.ts +0 -188
- package/src/chain/validation/blsToExecutionChange.ts +0 -61
- package/src/chain/validation/dataColumnSidecar.ts +0 -381
- package/src/chain/validation/index.ts +0 -9
- package/src/chain/validation/lightClientFinalityUpdate.ts +0 -45
- package/src/chain/validation/lightClientOptimisticUpdate.ts +0 -67
- package/src/chain/validation/proposerSlashing.ts +0 -54
- package/src/chain/validation/signatureSets/aggregateAndProof.ts +0 -38
- package/src/chain/validation/signatureSets/contributionAndProof.ts +0 -27
- package/src/chain/validation/signatureSets/index.ts +0 -6
- package/src/chain/validation/signatureSets/selectionProof.ts +0 -27
- package/src/chain/validation/signatureSets/syncCommittee.ts +0 -22
- package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +0 -18
- package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +0 -27
- package/src/chain/validation/syncCommittee.ts +0 -165
- package/src/chain/validation/syncCommitteeContributionAndProof.ts +0 -122
- package/src/chain/validation/voluntaryExit.ts +0 -58
- package/src/chain/validatorMonitor.ts +0 -1299
- package/src/constants/constants.ts +0 -15
- package/src/constants/index.ts +0 -2
- package/src/constants/network.ts +0 -52
- package/src/db/beacon.ts +0 -113
- package/src/db/buckets.ts +0 -80
- package/src/db/index.ts +0 -2
- package/src/db/interface.ts +0 -76
- package/src/db/options.ts +0 -7
- package/src/db/repositories/attesterSlashing.ts +0 -38
- package/src/db/repositories/backfilledRanges.ts +0 -29
- package/src/db/repositories/blobSidecars.ts +0 -37
- package/src/db/repositories/blobSidecarsArchive.ts +0 -28
- package/src/db/repositories/block.ts +0 -33
- package/src/db/repositories/blockArchive.ts +0 -170
- package/src/db/repositories/blockArchiveIndex.ts +0 -45
- package/src/db/repositories/blsToExecutionChange.ts +0 -16
- package/src/db/repositories/checkpointState.ts +0 -31
- package/src/db/repositories/dataColumnSidecar.ts +0 -49
- package/src/db/repositories/dataColumnSidecarArchive.ts +0 -56
- package/src/db/repositories/depositDataRoot.ts +0 -80
- package/src/db/repositories/depositEvent.ts +0 -32
- package/src/db/repositories/eth1Data.ts +0 -33
- package/src/db/repositories/index.ts +0 -20
- package/src/db/repositories/lightclientBestUpdate.ts +0 -41
- package/src/db/repositories/lightclientCheckpointHeader.ts +0 -32
- package/src/db/repositories/lightclientSyncCommittee.ts +0 -16
- package/src/db/repositories/lightclientSyncCommitteeWitness.ts +0 -77
- package/src/db/repositories/proposerSlashing.ts +0 -15
- package/src/db/repositories/stateArchive.ts +0 -69
- package/src/db/repositories/stateArchiveIndex.ts +0 -18
- package/src/db/repositories/voluntaryExit.ts +0 -15
- package/src/db/single/index.ts +0 -2
- package/src/db/single/preGenesisState.ts +0 -37
- package/src/db/single/preGenesisStateLastProcessedBlock.ts +0 -34
- package/src/eth1/errors.ts +0 -40
- package/src/eth1/eth1DataCache.ts +0 -26
- package/src/eth1/eth1DepositDataTracker.ts +0 -410
- package/src/eth1/eth1DepositsCache.ts +0 -141
- package/src/eth1/eth1MergeBlockTracker.ts +0 -328
- package/src/eth1/index.ts +0 -157
- package/src/eth1/interface.ts +0 -131
- package/src/eth1/options.ts +0 -28
- package/src/eth1/provider/eth1Provider.ts +0 -229
- package/src/eth1/provider/jsonRpcHttpClient.ts +0 -390
- package/src/eth1/provider/jwt.ts +0 -36
- package/src/eth1/provider/utils.ts +0 -136
- package/src/eth1/stream.ts +0 -75
- package/src/eth1/utils/depositContract.ts +0 -37
- package/src/eth1/utils/deposits.ts +0 -70
- package/src/eth1/utils/eth1Data.ts +0 -100
- package/src/eth1/utils/eth1DepositEvent.ts +0 -12
- package/src/eth1/utils/eth1Vote.ts +0 -142
- package/src/eth1/utils/groupDepositEventsByBlock.ts +0 -19
- package/src/eth1/utils/optimizeNextBlockDiffForGenesis.ts +0 -18
- package/src/execution/builder/cache.ts +0 -39
- package/src/execution/builder/http.ts +0 -229
- package/src/execution/builder/index.ts +0 -27
- package/src/execution/builder/interface.ts +0 -49
- package/src/execution/builder/utils.ts +0 -19
- package/src/execution/engine/disabled.ts +0 -35
- package/src/execution/engine/http.ts +0 -644
- package/src/execution/engine/index.ts +0 -63
- package/src/execution/engine/interface.ts +0 -199
- package/src/execution/engine/mock.ts +0 -493
- package/src/execution/engine/payloadIdCache.ts +0 -54
- package/src/execution/engine/types.ts +0 -640
- package/src/execution/engine/utils.ts +0 -136
- package/src/execution/index.ts +0 -4
- package/src/index.ts +0 -20
- package/src/metrics/index.ts +0 -4
- package/src/metrics/metrics/beacon.ts +0 -390
- package/src/metrics/metrics/lodestar.ts +0 -1870
- package/src/metrics/metrics.ts +0 -43
- package/src/metrics/nodeJsMetrics.ts +0 -19
- package/src/metrics/options.ts +0 -22
- package/src/metrics/server/http.ts +0 -114
- package/src/metrics/server/index.ts +0 -1
- package/src/metrics/utils/avgMinMax.ts +0 -87
- package/src/metrics/utils/gauge.ts +0 -22
- package/src/metrics/utils/registryMetricCreator.ts +0 -41
- package/src/monitoring/clientStats.ts +0 -297
- package/src/monitoring/index.ts +0 -2
- package/src/monitoring/options.ts +0 -19
- package/src/monitoring/properties.ts +0 -152
- package/src/monitoring/service.ts +0 -235
- package/src/monitoring/system.ts +0 -146
- package/src/monitoring/types.ts +0 -21
- package/src/network/core/events.ts +0 -59
- package/src/network/core/index.ts +0 -3
- package/src/network/core/metrics.ts +0 -304
- package/src/network/core/networkCore.ts +0 -599
- package/src/network/core/networkCoreWorker.ts +0 -176
- package/src/network/core/networkCoreWorkerHandler.ts +0 -284
- package/src/network/core/types.ts +0 -119
- package/src/network/discv5/index.ts +0 -132
- package/src/network/discv5/types.ts +0 -74
- package/src/network/discv5/utils.ts +0 -50
- package/src/network/discv5/worker.ts +0 -137
- package/src/network/events.ts +0 -51
- package/src/network/forks.ts +0 -94
- package/src/network/gossip/constants.ts +0 -15
- package/src/network/gossip/encoding.ts +0 -111
- package/src/network/gossip/errors.ts +0 -7
- package/src/network/gossip/gossipsub.ts +0 -384
- package/src/network/gossip/index.ts +0 -4
- package/src/network/gossip/interface.ts +0 -215
- package/src/network/gossip/metrics.ts +0 -71
- package/src/network/gossip/scoringParameters.ts +0 -333
- package/src/network/gossip/topic.ts +0 -332
- package/src/network/index.ts +0 -8
- package/src/network/interface.ts +0 -134
- package/src/network/libp2p/error.ts +0 -55
- package/src/network/libp2p/index.ts +0 -153
- package/src/network/metadata.ts +0 -162
- package/src/network/network.ts +0 -767
- package/src/network/networkConfig.ts +0 -12
- package/src/network/options.ts +0 -70
- package/src/network/peers/client.ts +0 -29
- package/src/network/peers/datastore.ts +0 -188
- package/src/network/peers/discover.ts +0 -647
- package/src/network/peers/index.ts +0 -2
- package/src/network/peers/peerManager.ts +0 -899
- package/src/network/peers/peersData.ts +0 -65
- package/src/network/peers/score/constants.ts +0 -34
- package/src/network/peers/score/index.ts +0 -4
- package/src/network/peers/score/interface.ts +0 -74
- package/src/network/peers/score/score.ts +0 -200
- package/src/network/peers/score/store.ts +0 -95
- package/src/network/peers/score/utils.ts +0 -37
- package/src/network/peers/utils/assertPeerRelevance.ts +0 -99
- package/src/network/peers/utils/enrSubnetsDeserialize.ts +0 -27
- package/src/network/peers/utils/getConnectedPeerIds.ts +0 -33
- package/src/network/peers/utils/index.ts +0 -4
- package/src/network/peers/utils/prioritizePeers.ts +0 -627
- package/src/network/peers/utils/subnetMap.ts +0 -88
- package/src/network/processor/aggregatorTracker.ts +0 -38
- package/src/network/processor/extractSlotRootFns.ts +0 -64
- package/src/network/processor/gossipHandlers.ts +0 -951
- package/src/network/processor/gossipQueues/index.ts +0 -114
- package/src/network/processor/gossipQueues/indexed.ts +0 -219
- package/src/network/processor/gossipQueues/linear.ts +0 -162
- package/src/network/processor/gossipQueues/types.ts +0 -57
- package/src/network/processor/gossipValidatorFn.ts +0 -142
- package/src/network/processor/index.ts +0 -497
- package/src/network/processor/types.ts +0 -27
- package/src/network/reqresp/ReqRespBeaconNode.ts +0 -373
- package/src/network/reqresp/handlers/beaconBlocksByRange.ts +0 -101
- package/src/network/reqresp/handlers/beaconBlocksByRoot.ts +0 -49
- package/src/network/reqresp/handlers/blobSidecarsByRange.ts +0 -114
- package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +0 -62
- package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +0 -144
- package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +0 -88
- package/src/network/reqresp/handlers/index.ts +0 -78
- package/src/network/reqresp/handlers/lightClientBootstrap.ts +0 -31
- package/src/network/reqresp/handlers/lightClientFinalityUpdate.ts +0 -21
- package/src/network/reqresp/handlers/lightClientOptimisticUpdate.ts +0 -21
- package/src/network/reqresp/handlers/lightClientUpdatesByRange.ts +0 -39
- package/src/network/reqresp/index.ts +0 -2
- package/src/network/reqresp/interface.ts +0 -45
- package/src/network/reqresp/protocols.ts +0 -146
- package/src/network/reqresp/rateLimit.ts +0 -112
- package/src/network/reqresp/score.ts +0 -70
- package/src/network/reqresp/types.ts +0 -174
- package/src/network/reqresp/utils/collect.ts +0 -84
- package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +0 -57
- package/src/network/reqresp/utils/dataColumnResponseValidation.ts +0 -99
- package/src/network/statusCache.ts +0 -17
- package/src/network/subnets/attnetsService.ts +0 -385
- package/src/network/subnets/index.ts +0 -2
- package/src/network/subnets/interface.ts +0 -66
- package/src/network/subnets/syncnetsService.ts +0 -147
- package/src/network/subnets/util.ts +0 -63
- package/src/network/util.ts +0 -29
- package/src/node/index.ts +0 -2
- package/src/node/nodejs.ts +0 -349
- package/src/node/notifier.ts +0 -206
- package/src/node/options.ts +0 -51
- package/src/node/utils/interop/deposits.ts +0 -53
- package/src/node/utils/interop/state.ts +0 -59
- package/src/node/utils/lightclient.ts +0 -7
- package/src/node/utils/state.ts +0 -37
- package/src/sync/backfill/backfill.ts +0 -893
- package/src/sync/backfill/errors.ts +0 -23
- package/src/sync/backfill/index.ts +0 -1
- package/src/sync/backfill/verify.ts +0 -58
- package/src/sync/constants.ts +0 -71
- package/src/sync/index.ts +0 -2
- package/src/sync/interface.ts +0 -55
- package/src/sync/options.ts +0 -45
- package/src/sync/range/batch.ts +0 -455
- package/src/sync/range/chain.ts +0 -715
- package/src/sync/range/range.ts +0 -354
- package/src/sync/range/utils/batches.ts +0 -119
- package/src/sync/range/utils/chainTarget.ts +0 -62
- package/src/sync/range/utils/hashBlocks.ts +0 -27
- package/src/sync/range/utils/index.ts +0 -5
- package/src/sync/range/utils/peerBalancer.ts +0 -184
- package/src/sync/range/utils/updateChains.ts +0 -66
- package/src/sync/sync.ts +0 -290
- package/src/sync/types.ts +0 -59
- package/src/sync/unknownBlock.ts +0 -862
- package/src/sync/utils/downloadByRange.ts +0 -808
- package/src/sync/utils/downloadByRoot.ts +0 -560
- package/src/sync/utils/pendingBlocksTree.ts +0 -97
- package/src/sync/utils/remoteSyncType.ts +0 -144
- package/src/util/address.ts +0 -3
- package/src/util/array.ts +0 -311
- package/src/util/asyncIterableToEvents.ts +0 -164
- package/src/util/binarySearch.ts +0 -48
- package/src/util/bitArray.ts +0 -84
- package/src/util/blobs.ts +0 -210
- package/src/util/bufferPool.ts +0 -95
- package/src/util/bytes.ts +0 -11
- package/src/util/chunkify.ts +0 -27
- package/src/util/clock.ts +0 -204
- package/src/util/dataColumns.ts +0 -415
- package/src/util/dependentRoot.ts +0 -47
- package/src/util/enum.ts +0 -17
- package/src/util/error.ts +0 -56
- package/src/util/eventLoop.ts +0 -22
- package/src/util/execution.ts +0 -223
- package/src/util/file.ts +0 -52
- package/src/util/forkChoice.ts +0 -5
- package/src/util/forkName.ts +0 -20
- package/src/util/graffiti.ts +0 -39
- package/src/util/hex.ts +0 -9
- package/src/util/index.ts +0 -2
- package/src/util/ip.ts +0 -6
- package/src/util/itTrigger.ts +0 -49
- package/src/util/kzg.ts +0 -3
- package/src/util/map.ts +0 -77
- package/src/util/metadata.ts +0 -22
- package/src/util/multifork.ts +0 -69
- package/src/util/numpy.ts +0 -8
- package/src/util/peerId.ts +0 -16
- package/src/util/profile.ts +0 -54
- package/src/util/promises.ts +0 -14
- package/src/util/queue/errors.ts +0 -14
- package/src/util/queue/fnQueue.ts +0 -16
- package/src/util/queue/index.ts +0 -4
- package/src/util/queue/itemQueue.ts +0 -128
- package/src/util/queue/options.ts +0 -37
- package/src/util/serializedCache.ts +0 -20
- package/src/util/set.ts +0 -62
- package/src/util/shuffle.ts +0 -21
- package/src/util/sortBy.ts +0 -19
- package/src/util/sszBytes.ts +0 -481
- package/src/util/strictEvents.ts +0 -8
- package/src/util/time.ts +0 -13
- package/src/util/timeSeries.ts +0 -118
- package/src/util/types.ts +0 -31
- package/src/util/workerEvents.ts +0 -142
- package/src/util/wrapError.ts +0 -27
|
@@ -1,603 +0,0 @@
|
|
|
1
|
-
import {BitArray} from "@chainsafe/ssz";
|
|
2
|
-
import {routes} from "@lodestar/api";
|
|
3
|
-
import {
|
|
4
|
-
AncestorStatus,
|
|
5
|
-
EpochDifference,
|
|
6
|
-
ForkChoiceError,
|
|
7
|
-
ForkChoiceErrorCode,
|
|
8
|
-
NotReorgedReason,
|
|
9
|
-
} from "@lodestar/fork-choice";
|
|
10
|
-
import {
|
|
11
|
-
ForkPostAltair,
|
|
12
|
-
ForkPostElectra,
|
|
13
|
-
ForkSeq,
|
|
14
|
-
INTERVALS_PER_SLOT,
|
|
15
|
-
MAX_SEED_LOOKAHEAD,
|
|
16
|
-
SLOTS_PER_EPOCH,
|
|
17
|
-
} from "@lodestar/params";
|
|
18
|
-
import {
|
|
19
|
-
CachedBeaconStateAltair,
|
|
20
|
-
EpochCache,
|
|
21
|
-
RootCache,
|
|
22
|
-
computeEpochAtSlot,
|
|
23
|
-
computeStartSlotAtEpoch,
|
|
24
|
-
isExecutionStateType,
|
|
25
|
-
isStartSlotOfEpoch,
|
|
26
|
-
isStateValidatorsNodesPopulated,
|
|
27
|
-
} from "@lodestar/state-transition";
|
|
28
|
-
import {Attestation, BeaconBlock, altair, capella, electra, phase0, ssz} from "@lodestar/types";
|
|
29
|
-
import {isErrorAborted, toRootHex} from "@lodestar/utils";
|
|
30
|
-
import {ZERO_HASH_HEX} from "../../constants/index.js";
|
|
31
|
-
import {callInNextEventLoop} from "../../util/eventLoop.js";
|
|
32
|
-
import {isOptimisticBlock} from "../../util/forkChoice.js";
|
|
33
|
-
import {isQueueErrorAborted} from "../../util/queue/index.js";
|
|
34
|
-
import type {BeaconChain} from "../chain.js";
|
|
35
|
-
import {ChainEvent, ReorgEventData} from "../emitter.js";
|
|
36
|
-
import {ForkchoiceCaller} from "../forkChoice/index.js";
|
|
37
|
-
import {REPROCESS_MIN_TIME_TO_NEXT_SLOT_SEC} from "../reprocess.js";
|
|
38
|
-
import {toCheckpointHex} from "../stateCache/index.js";
|
|
39
|
-
import {isBlockInputBlobs, isBlockInputColumns} from "./blockInput/blockInput.js";
|
|
40
|
-
import {AttestationImportOpt, FullyVerifiedBlock, ImportBlockOpts} from "./types.js";
|
|
41
|
-
import {getCheckpointFromState} from "./utils/checkpoint.js";
|
|
42
|
-
import {writeBlockInputToDb} from "./writeBlockInputToDb.js";
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Fork-choice allows to import attestations from current (0) or past (1) epoch.
|
|
46
|
-
*/
|
|
47
|
-
const FORK_CHOICE_ATT_EPOCH_LIMIT = 1;
|
|
48
|
-
/**
|
|
49
|
-
* Emit eventstream events for block contents events only for blocks that are recent enough to clock
|
|
50
|
-
*/
|
|
51
|
-
const EVENTSTREAM_EMIT_RECENT_BLOCK_SLOTS = 64;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Imports a fully verified block into the chain state. Produces multiple permanent side-effects.
|
|
55
|
-
*
|
|
56
|
-
* ImportBlock order of operations must guarantee that BeaconNode does not end in an unknown state:
|
|
57
|
-
*
|
|
58
|
-
* 1. Persist block to hot DB (pre-emptively)
|
|
59
|
-
* - Done before importing block to fork-choice to guarantee that blocks in the fork-choice *always* are persisted
|
|
60
|
-
* in the DB. Otherwise the beacon node may end up in an unrecoverable state. If a block is persisted in the hot
|
|
61
|
-
* db but is unknown by the fork-choice, then it will just use some extra disk space. On restart is will be
|
|
62
|
-
* pruned regardless.
|
|
63
|
-
* - Note that doing a disk write first introduces a small delay before setting the head. An improvement where disk
|
|
64
|
-
* write happens latter requires the ability to roll back a fork-choice head change if disk write fails
|
|
65
|
-
*
|
|
66
|
-
* 2. Import block to fork-choice
|
|
67
|
-
* 3. Import attestations to fork-choice
|
|
68
|
-
* 4. Import attester slashings to fork-choice
|
|
69
|
-
* 5. Compute head. If new head, immediately stateCache.setHeadState()
|
|
70
|
-
* 6. Queue notifyForkchoiceUpdate to engine api
|
|
71
|
-
* 7. Add post state to stateCache
|
|
72
|
-
*/
|
|
73
|
-
export async function importBlock(
|
|
74
|
-
this: BeaconChain,
|
|
75
|
-
fullyVerifiedBlock: FullyVerifiedBlock,
|
|
76
|
-
opts: ImportBlockOpts
|
|
77
|
-
): Promise<void> {
|
|
78
|
-
const {blockInput, postState, parentBlockSlot, executionStatus, dataAvailabilityStatus} = fullyVerifiedBlock;
|
|
79
|
-
const block = blockInput.getBlock();
|
|
80
|
-
const source = blockInput.getBlockSource();
|
|
81
|
-
const {slot: blockSlot} = block.message;
|
|
82
|
-
const blockRoot = this.config.getForkTypes(blockSlot).BeaconBlock.hashTreeRoot(block.message);
|
|
83
|
-
const blockRootHex = toRootHex(blockRoot);
|
|
84
|
-
const currentSlot = this.forkChoice.getTime();
|
|
85
|
-
const currentEpoch = computeEpochAtSlot(currentSlot);
|
|
86
|
-
const blockEpoch = computeEpochAtSlot(blockSlot);
|
|
87
|
-
const prevFinalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
|
|
88
|
-
const blockDelaySec = (fullyVerifiedBlock.seenTimestampSec - postState.genesisTime) % this.config.SECONDS_PER_SLOT;
|
|
89
|
-
const recvToValLatency = Date.now() / 1000 - (opts.seenTimestampSec ?? Date.now() / 1000);
|
|
90
|
-
const fork = this.config.getForkSeq(blockSlot);
|
|
91
|
-
|
|
92
|
-
// this is just a type assertion since blockinput with dataPromise type will not end up here
|
|
93
|
-
if (!blockInput.hasAllData) {
|
|
94
|
-
throw Error("Unavailable block can not be imported in forkchoice");
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// 1. Persist block to hot DB (pre-emptively)
|
|
98
|
-
// If eagerPersistBlock = true we do that in verifyBlocksInEpoch to batch all I/O operations to save block time to head
|
|
99
|
-
if (!opts.eagerPersistBlock) {
|
|
100
|
-
await writeBlockInputToDb.call(this, [blockInput]);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// 2. Import block to fork choice
|
|
104
|
-
|
|
105
|
-
// Should compute checkpoint balances before forkchoice.onBlock
|
|
106
|
-
this.checkpointBalancesCache.processState(blockRootHex, postState);
|
|
107
|
-
const blockSummary = this.forkChoice.onBlock(
|
|
108
|
-
block.message,
|
|
109
|
-
postState,
|
|
110
|
-
blockDelaySec,
|
|
111
|
-
currentSlot,
|
|
112
|
-
executionStatus,
|
|
113
|
-
dataAvailabilityStatus
|
|
114
|
-
);
|
|
115
|
-
|
|
116
|
-
// This adds the state necessary to process the next block
|
|
117
|
-
// Some block event handlers require state being in state cache so need to do this before emitting EventType.block
|
|
118
|
-
this.regen.processState(blockRootHex, postState);
|
|
119
|
-
|
|
120
|
-
this.metrics?.importBlock.bySource.inc({source: source.source});
|
|
121
|
-
this.logger.verbose("Added block to forkchoice and state cache", {slot: blockSlot, root: blockRootHex});
|
|
122
|
-
|
|
123
|
-
// 3. Import attestations to fork choice
|
|
124
|
-
//
|
|
125
|
-
// - For each attestation
|
|
126
|
-
// - Get indexed attestation
|
|
127
|
-
// - Register attestation with fork-choice
|
|
128
|
-
// - Register attestation with validator monitor (only after sync)
|
|
129
|
-
// Only process attestations of blocks with relevant attestations for the fork-choice:
|
|
130
|
-
// If current epoch is N, and block is epoch X, block may include attestations for epoch X or X - 1.
|
|
131
|
-
// The latest block that is useful is at epoch N - 1 which may include attestations for epoch N - 1 or N - 2.
|
|
132
|
-
if (
|
|
133
|
-
opts.importAttestations === AttestationImportOpt.Force ||
|
|
134
|
-
(opts.importAttestations !== AttestationImportOpt.Skip && blockEpoch >= currentEpoch - FORK_CHOICE_ATT_EPOCH_LIMIT)
|
|
135
|
-
) {
|
|
136
|
-
const attestations = block.message.body.attestations;
|
|
137
|
-
const rootCache = new RootCache(postState);
|
|
138
|
-
const invalidAttestationErrorsByCode = new Map<string, {error: Error; count: number}>();
|
|
139
|
-
|
|
140
|
-
const addAttestation = fork >= ForkSeq.electra ? addAttestationPostElectra : addAttestationPreElectra;
|
|
141
|
-
|
|
142
|
-
for (const attestation of attestations) {
|
|
143
|
-
try {
|
|
144
|
-
// TODO Electra: figure out how to reuse the attesting indices computed from state transition
|
|
145
|
-
const indexedAttestation = postState.epochCtx.getIndexedAttestation(fork, attestation);
|
|
146
|
-
const {target, beaconBlockRoot} = attestation.data;
|
|
147
|
-
|
|
148
|
-
const attDataRoot = toRootHex(ssz.phase0.AttestationData.hashTreeRoot(indexedAttestation.data));
|
|
149
|
-
addAttestation.call(
|
|
150
|
-
this,
|
|
151
|
-
postState.epochCtx,
|
|
152
|
-
target,
|
|
153
|
-
attDataRoot,
|
|
154
|
-
attestation as Attestation<ForkPostElectra>,
|
|
155
|
-
indexedAttestation
|
|
156
|
-
);
|
|
157
|
-
// Duplicated logic from fork-choice onAttestation validation logic.
|
|
158
|
-
// Attestations outside of this range will be dropped as Errors, so no need to import
|
|
159
|
-
if (
|
|
160
|
-
opts.importAttestations === AttestationImportOpt.Force ||
|
|
161
|
-
(target.epoch <= currentEpoch && target.epoch >= currentEpoch - FORK_CHOICE_ATT_EPOCH_LIMIT)
|
|
162
|
-
) {
|
|
163
|
-
this.forkChoice.onAttestation(
|
|
164
|
-
indexedAttestation,
|
|
165
|
-
attDataRoot,
|
|
166
|
-
opts.importAttestations === AttestationImportOpt.Force
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// Note: To avoid slowing down sync, only register attestations within FORK_CHOICE_ATT_EPOCH_LIMIT
|
|
171
|
-
this.seenBlockAttesters.addIndices(blockEpoch, indexedAttestation.attestingIndices);
|
|
172
|
-
|
|
173
|
-
const correctHead = ssz.Root.equals(rootCache.getBlockRootAtSlot(attestation.data.slot), beaconBlockRoot);
|
|
174
|
-
const missedSlotVote = ssz.Root.equals(
|
|
175
|
-
rootCache.getBlockRootAtSlot(attestation.data.slot - 1),
|
|
176
|
-
rootCache.getBlockRootAtSlot(attestation.data.slot)
|
|
177
|
-
);
|
|
178
|
-
this.validatorMonitor?.registerAttestationInBlock(
|
|
179
|
-
indexedAttestation,
|
|
180
|
-
parentBlockSlot,
|
|
181
|
-
correctHead,
|
|
182
|
-
missedSlotVote,
|
|
183
|
-
blockRootHex,
|
|
184
|
-
blockSlot
|
|
185
|
-
);
|
|
186
|
-
} catch (e) {
|
|
187
|
-
// a block has a lot of attestations and it may has same error, we don't want to log all of them
|
|
188
|
-
if (e instanceof ForkChoiceError && e.type.code === ForkChoiceErrorCode.INVALID_ATTESTATION) {
|
|
189
|
-
let errWithCount = invalidAttestationErrorsByCode.get(e.type.err.code);
|
|
190
|
-
if (errWithCount === undefined) {
|
|
191
|
-
errWithCount = {error: e as Error, count: 1};
|
|
192
|
-
invalidAttestationErrorsByCode.set(e.type.err.code, errWithCount);
|
|
193
|
-
} else {
|
|
194
|
-
errWithCount.count++;
|
|
195
|
-
}
|
|
196
|
-
} else {
|
|
197
|
-
// always log other errors
|
|
198
|
-
this.logger.warn("Error processing attestation from block", {slot: blockSlot}, e as Error);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
for (const {error, count} of invalidAttestationErrorsByCode.values()) {
|
|
204
|
-
this.logger.warn(
|
|
205
|
-
"Error processing attestations from block",
|
|
206
|
-
{slot: blockSlot, erroredAttestations: count},
|
|
207
|
-
error
|
|
208
|
-
);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// 4. Import attester slashings to fork choice
|
|
213
|
-
//
|
|
214
|
-
// FORK_CHOICE_ATT_EPOCH_LIMIT is for attestation to become valid
|
|
215
|
-
// but AttesterSlashing could be found before that time and still able to submit valid attestations
|
|
216
|
-
// until slashed validator become inactive, see computeActivationExitEpoch() function
|
|
217
|
-
if (
|
|
218
|
-
opts.importAttestations === AttestationImportOpt.Force ||
|
|
219
|
-
(opts.importAttestations !== AttestationImportOpt.Skip &&
|
|
220
|
-
blockEpoch >= currentEpoch - FORK_CHOICE_ATT_EPOCH_LIMIT - 1 - MAX_SEED_LOOKAHEAD)
|
|
221
|
-
) {
|
|
222
|
-
for (const slashing of block.message.body.attesterSlashings) {
|
|
223
|
-
try {
|
|
224
|
-
// all AttesterSlashings are valid before reaching this
|
|
225
|
-
this.forkChoice.onAttesterSlashing(slashing);
|
|
226
|
-
} catch (e) {
|
|
227
|
-
this.logger.warn("Error processing AttesterSlashing from block", {slot: blockSlot}, e as Error);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
// 5. Compute head. If new head, immediately stateCache.setHeadState()
|
|
233
|
-
|
|
234
|
-
const oldHead = this.forkChoice.getHead();
|
|
235
|
-
const newHead = this.recomputeForkChoiceHead(ForkchoiceCaller.importBlock);
|
|
236
|
-
const currFinalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
|
|
237
|
-
|
|
238
|
-
if (newHead.blockRoot !== oldHead.blockRoot) {
|
|
239
|
-
// Set head state as strong reference
|
|
240
|
-
this.regen.updateHeadState(newHead, postState);
|
|
241
|
-
|
|
242
|
-
try {
|
|
243
|
-
this.emitter.emit(routes.events.EventType.head, {
|
|
244
|
-
block: newHead.blockRoot,
|
|
245
|
-
epochTransition: computeStartSlotAtEpoch(computeEpochAtSlot(newHead.slot)) === newHead.slot,
|
|
246
|
-
slot: newHead.slot,
|
|
247
|
-
state: newHead.stateRoot,
|
|
248
|
-
previousDutyDependentRoot: this.forkChoice.getDependentRoot(newHead, EpochDifference.previous),
|
|
249
|
-
currentDutyDependentRoot: this.forkChoice.getDependentRoot(newHead, EpochDifference.current),
|
|
250
|
-
executionOptimistic: isOptimisticBlock(newHead),
|
|
251
|
-
});
|
|
252
|
-
} catch (e) {
|
|
253
|
-
// getDependentRoot() may fail with error: "No block for root" as we can see in holesky non-finality issue
|
|
254
|
-
this.logger.debug("Error emitting head event", {slot: newHead.slot, root: newHead.blockRoot}, e as Error);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
const delaySec = this.clock.secFromSlot(newHead.slot);
|
|
258
|
-
this.logger.verbose("New chain head", {
|
|
259
|
-
slot: newHead.slot,
|
|
260
|
-
root: newHead.blockRoot,
|
|
261
|
-
delaySec,
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
if (this.metrics) {
|
|
265
|
-
this.metrics.headSlot.set(newHead.slot);
|
|
266
|
-
// Only track "recent" blocks. Otherwise sync can distort this metrics heavily.
|
|
267
|
-
// We want to track recent blocks coming from gossip, unknown block sync, and API.
|
|
268
|
-
if (delaySec < SLOTS_PER_EPOCH * this.config.SECONDS_PER_SLOT) {
|
|
269
|
-
this.metrics.importBlock.elapsedTimeTillBecomeHead.observe(delaySec);
|
|
270
|
-
if (delaySec > this.config.SECONDS_PER_SLOT / INTERVALS_PER_SLOT) {
|
|
271
|
-
this.metrics.importBlock.setHeadAfterFirstInterval.inc();
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
this.onNewHead(newHead);
|
|
277
|
-
|
|
278
|
-
this.metrics?.forkChoice.changedHead.inc();
|
|
279
|
-
|
|
280
|
-
const ancestorResult = this.forkChoice.getCommonAncestorDepth(oldHead, newHead);
|
|
281
|
-
if (ancestorResult.code === AncestorStatus.CommonAncestor) {
|
|
282
|
-
// CommonAncestor = chain reorg, old head and new head not direct descendants
|
|
283
|
-
|
|
284
|
-
const forkChoiceReorgEventData: ReorgEventData = {
|
|
285
|
-
depth: ancestorResult.depth,
|
|
286
|
-
epoch: computeEpochAtSlot(newHead.slot),
|
|
287
|
-
slot: newHead.slot,
|
|
288
|
-
newHeadBlock: newHead.blockRoot,
|
|
289
|
-
oldHeadBlock: oldHead.blockRoot,
|
|
290
|
-
newHeadState: newHead.stateRoot,
|
|
291
|
-
oldHeadState: oldHead.stateRoot,
|
|
292
|
-
executionOptimistic: isOptimisticBlock(newHead),
|
|
293
|
-
};
|
|
294
|
-
|
|
295
|
-
this.emitter.emit(routes.events.EventType.chainReorg, forkChoiceReorgEventData);
|
|
296
|
-
this.logger.verbose("Chain reorg", forkChoiceReorgEventData);
|
|
297
|
-
|
|
298
|
-
this.metrics?.forkChoice.reorg.inc();
|
|
299
|
-
this.metrics?.forkChoice.reorgDistance.observe(ancestorResult.depth);
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
// Lightclient server support (only after altair)
|
|
303
|
-
// - Persist state witness
|
|
304
|
-
// - Use block's syncAggregate
|
|
305
|
-
if (blockEpoch >= this.config.ALTAIR_FORK_EPOCH) {
|
|
306
|
-
// we want to import block asap so do this in the next event loop
|
|
307
|
-
callInNextEventLoop(() => {
|
|
308
|
-
try {
|
|
309
|
-
this.lightClientServer?.onImportBlockHead(
|
|
310
|
-
block.message as BeaconBlock<ForkPostAltair>,
|
|
311
|
-
postState as CachedBeaconStateAltair,
|
|
312
|
-
parentBlockSlot
|
|
313
|
-
);
|
|
314
|
-
} catch (e) {
|
|
315
|
-
this.logger.verbose("Error lightClientServer.onImportBlock", {slot: blockSlot}, e as Error);
|
|
316
|
-
}
|
|
317
|
-
});
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
// 6. Queue notifyForkchoiceUpdate to engine api
|
|
322
|
-
//
|
|
323
|
-
// NOTE: forkChoice.fsStore.finalizedCheckpoint MUST only change in response to an onBlock event
|
|
324
|
-
// Notifying EL of head and finalized updates as below is usually done within the 1st 4s of the slot.
|
|
325
|
-
// If there is an advanced payload generation in the next slot, we'll notify EL again 4s before next
|
|
326
|
-
// slot via PrepareNextSlotScheduler. There is no harm updating the ELs with same data, it will just ignore it.
|
|
327
|
-
|
|
328
|
-
// Suppress fcu call if shouldOverrideFcu is true. This only happens if we have proposer boost reorg enabled
|
|
329
|
-
// and the block is weak and can potentially be reorged out.
|
|
330
|
-
let shouldOverrideFcu = false;
|
|
331
|
-
|
|
332
|
-
if (blockSlot >= currentSlot && isExecutionStateType(postState)) {
|
|
333
|
-
let notOverrideFcuReason = NotReorgedReason.Unknown;
|
|
334
|
-
const proposalSlot = blockSlot + 1;
|
|
335
|
-
try {
|
|
336
|
-
const proposerIndex = postState.epochCtx.getBeaconProposer(proposalSlot);
|
|
337
|
-
const feeRecipient = this.beaconProposerCache.get(proposerIndex);
|
|
338
|
-
|
|
339
|
-
if (feeRecipient) {
|
|
340
|
-
// We would set this to true if
|
|
341
|
-
// 1) This is a gossip block
|
|
342
|
-
// 2) We are proposer of next slot
|
|
343
|
-
// 3) Proposer boost reorg related flag is turned on (this is checked inside the function)
|
|
344
|
-
// 4) Block meets the criteria of being re-orged out (this is also checked inside the function)
|
|
345
|
-
const result = this.forkChoice.shouldOverrideForkChoiceUpdate(
|
|
346
|
-
blockSummary.blockRoot,
|
|
347
|
-
this.clock.secFromSlot(currentSlot),
|
|
348
|
-
currentSlot
|
|
349
|
-
);
|
|
350
|
-
shouldOverrideFcu = result.shouldOverrideFcu;
|
|
351
|
-
if (!result.shouldOverrideFcu) {
|
|
352
|
-
notOverrideFcuReason = result.reason;
|
|
353
|
-
}
|
|
354
|
-
} else {
|
|
355
|
-
notOverrideFcuReason = NotReorgedReason.NotProposerOfNextSlot;
|
|
356
|
-
}
|
|
357
|
-
} catch (e) {
|
|
358
|
-
if (isStartSlotOfEpoch(proposalSlot)) {
|
|
359
|
-
notOverrideFcuReason = NotReorgedReason.NotShufflingStable;
|
|
360
|
-
} else {
|
|
361
|
-
this.logger.warn("Unable to get beacon proposer. Do not override fcu.", {proposalSlot}, e as Error);
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
if (shouldOverrideFcu) {
|
|
366
|
-
this.logger.verbose("Weak block detected. Skip fcu call in importBlock", {
|
|
367
|
-
blockRoot: blockRootHex,
|
|
368
|
-
slot: blockSlot,
|
|
369
|
-
});
|
|
370
|
-
} else {
|
|
371
|
-
this.metrics?.importBlock.notOverrideFcuReason.inc({reason: notOverrideFcuReason});
|
|
372
|
-
this.logger.verbose("Strong block detected. Not override fcu call", {
|
|
373
|
-
blockRoot: blockRootHex,
|
|
374
|
-
slot: blockSlot,
|
|
375
|
-
reason: notOverrideFcuReason,
|
|
376
|
-
});
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
if (
|
|
381
|
-
!this.opts.disableImportExecutionFcU &&
|
|
382
|
-
(newHead.blockRoot !== oldHead.blockRoot || currFinalizedEpoch !== prevFinalizedEpoch) &&
|
|
383
|
-
!shouldOverrideFcu
|
|
384
|
-
) {
|
|
385
|
-
/**
|
|
386
|
-
* On post BELLATRIX_EPOCH but pre TTD, blocks include empty execution payload with a zero block hash.
|
|
387
|
-
* The consensus clients must not send notifyForkchoiceUpdate before TTD since the execution client will error.
|
|
388
|
-
* So we must check that:
|
|
389
|
-
* - `headBlockHash !== null` -> Pre BELLATRIX_EPOCH
|
|
390
|
-
* - `headBlockHash !== ZERO_HASH` -> Pre TTD
|
|
391
|
-
*/
|
|
392
|
-
const headBlockHash = this.forkChoice.getHead().executionPayloadBlockHash ?? ZERO_HASH_HEX;
|
|
393
|
-
/**
|
|
394
|
-
* After BELLATRIX_EPOCH and TTD it's okay to send a zero hash block hash for the finalized block. This will happen if
|
|
395
|
-
* the current finalized block does not contain any execution payload at all (pre MERGE_EPOCH) or if it contains a
|
|
396
|
-
* zero block hash (pre TTD)
|
|
397
|
-
*/
|
|
398
|
-
const safeBlockHash = this.forkChoice.getJustifiedBlock().executionPayloadBlockHash ?? ZERO_HASH_HEX;
|
|
399
|
-
const finalizedBlockHash = this.forkChoice.getFinalizedBlock().executionPayloadBlockHash ?? ZERO_HASH_HEX;
|
|
400
|
-
if (headBlockHash !== ZERO_HASH_HEX) {
|
|
401
|
-
this.executionEngine
|
|
402
|
-
.notifyForkchoiceUpdate(
|
|
403
|
-
this.config.getForkName(this.forkChoice.getHead().slot),
|
|
404
|
-
headBlockHash,
|
|
405
|
-
safeBlockHash,
|
|
406
|
-
finalizedBlockHash
|
|
407
|
-
)
|
|
408
|
-
.catch((e) => {
|
|
409
|
-
if (!isErrorAborted(e) && !isQueueErrorAborted(e)) {
|
|
410
|
-
this.logger.error("Error pushing notifyForkchoiceUpdate()", {headBlockHash, finalizedBlockHash}, e);
|
|
411
|
-
}
|
|
412
|
-
});
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
if (!isStateValidatorsNodesPopulated(postState)) {
|
|
417
|
-
this.logger.verbose("After importBlock caching postState without SSZ cache", {slot: postState.slot});
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
if (blockSlot % SLOTS_PER_EPOCH === 0) {
|
|
421
|
-
// Cache state to preserve epoch transition work
|
|
422
|
-
const checkpointState = postState;
|
|
423
|
-
const cp = getCheckpointFromState(checkpointState);
|
|
424
|
-
this.regen.addCheckpointState(cp, checkpointState);
|
|
425
|
-
// consumers should not mutate or get the transfered cache
|
|
426
|
-
this.emitter.emit(ChainEvent.checkpoint, cp, checkpointState.clone(true));
|
|
427
|
-
|
|
428
|
-
// Note: in-lined code from previos handler of ChainEvent.checkpoint
|
|
429
|
-
this.logger.verbose("Checkpoint processed", toCheckpointHex(cp));
|
|
430
|
-
|
|
431
|
-
const activeValidatorsCount = checkpointState.epochCtx.currentShuffling.activeIndices.length;
|
|
432
|
-
this.metrics?.currentActiveValidators.set(activeValidatorsCount);
|
|
433
|
-
this.metrics?.currentValidators.set({status: "active"}, activeValidatorsCount);
|
|
434
|
-
|
|
435
|
-
const parentBlockSummary = this.forkChoice.getBlock(checkpointState.latestBlockHeader.parentRoot);
|
|
436
|
-
|
|
437
|
-
if (parentBlockSummary) {
|
|
438
|
-
const justifiedCheckpoint = checkpointState.currentJustifiedCheckpoint;
|
|
439
|
-
const justifiedEpoch = justifiedCheckpoint.epoch;
|
|
440
|
-
const preJustifiedEpoch = parentBlockSummary.justifiedEpoch;
|
|
441
|
-
if (justifiedEpoch > preJustifiedEpoch) {
|
|
442
|
-
this.logger.verbose("Checkpoint justified", toCheckpointHex(justifiedCheckpoint));
|
|
443
|
-
this.metrics?.previousJustifiedEpoch.set(checkpointState.previousJustifiedCheckpoint.epoch);
|
|
444
|
-
this.metrics?.currentJustifiedEpoch.set(justifiedCheckpoint.epoch);
|
|
445
|
-
}
|
|
446
|
-
const finalizedCheckpoint = checkpointState.finalizedCheckpoint;
|
|
447
|
-
const finalizedEpoch = finalizedCheckpoint.epoch;
|
|
448
|
-
const preFinalizedEpoch = parentBlockSummary.finalizedEpoch;
|
|
449
|
-
if (finalizedEpoch > preFinalizedEpoch) {
|
|
450
|
-
this.emitter.emit(routes.events.EventType.finalizedCheckpoint, {
|
|
451
|
-
block: toRootHex(finalizedCheckpoint.root),
|
|
452
|
-
epoch: finalizedCheckpoint.epoch,
|
|
453
|
-
state: toRootHex(checkpointState.hashTreeRoot()),
|
|
454
|
-
executionOptimistic: false,
|
|
455
|
-
});
|
|
456
|
-
this.logger.verbose("Checkpoint finalized", toCheckpointHex(finalizedCheckpoint));
|
|
457
|
-
this.metrics?.finalizedEpoch.set(finalizedCheckpoint.epoch);
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
// Send block events, only for recent enough blocks
|
|
463
|
-
|
|
464
|
-
if (currentSlot - blockSlot < EVENTSTREAM_EMIT_RECENT_BLOCK_SLOTS) {
|
|
465
|
-
// We want to import block asap so call all event handler in the next event loop
|
|
466
|
-
callInNextEventLoop(() => {
|
|
467
|
-
// NOTE: Skip emitting if there are no listeners from the API
|
|
468
|
-
if (this.emitter.listenerCount(routes.events.EventType.block)) {
|
|
469
|
-
this.emitter.emit(routes.events.EventType.block, {
|
|
470
|
-
block: blockRootHex,
|
|
471
|
-
slot: blockSlot,
|
|
472
|
-
executionOptimistic: blockSummary != null && isOptimisticBlock(blockSummary),
|
|
473
|
-
});
|
|
474
|
-
}
|
|
475
|
-
if (this.emitter.listenerCount(routes.events.EventType.voluntaryExit)) {
|
|
476
|
-
for (const voluntaryExit of block.message.body.voluntaryExits) {
|
|
477
|
-
this.emitter.emit(routes.events.EventType.voluntaryExit, voluntaryExit);
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
if (this.emitter.listenerCount(routes.events.EventType.blsToExecutionChange)) {
|
|
481
|
-
for (const blsToExecutionChange of (block.message as capella.BeaconBlock).body.blsToExecutionChanges ?? []) {
|
|
482
|
-
this.emitter.emit(routes.events.EventType.blsToExecutionChange, blsToExecutionChange);
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
|
-
if (this.emitter.listenerCount(routes.events.EventType.attestation)) {
|
|
486
|
-
for (const attestation of block.message.body.attestations) {
|
|
487
|
-
this.emitter.emit(routes.events.EventType.attestation, attestation);
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
if (this.emitter.listenerCount(routes.events.EventType.attesterSlashing)) {
|
|
491
|
-
for (const attesterSlashing of block.message.body.attesterSlashings) {
|
|
492
|
-
this.emitter.emit(routes.events.EventType.attesterSlashing, attesterSlashing);
|
|
493
|
-
}
|
|
494
|
-
}
|
|
495
|
-
if (this.emitter.listenerCount(routes.events.EventType.proposerSlashing)) {
|
|
496
|
-
for (const proposerSlashing of block.message.body.proposerSlashings) {
|
|
497
|
-
this.emitter.emit(routes.events.EventType.proposerSlashing, proposerSlashing);
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
|
-
});
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
// Register stat metrics about the block after importing it
|
|
504
|
-
this.metrics?.parentBlockDistance.observe(blockSlot - parentBlockSlot);
|
|
505
|
-
this.metrics?.proposerBalanceDeltaAny.observe(fullyVerifiedBlock.proposerBalanceDelta);
|
|
506
|
-
this.validatorMonitor?.registerImportedBlock(block.message, fullyVerifiedBlock);
|
|
507
|
-
if (this.config.getForkSeq(blockSlot) >= ForkSeq.altair) {
|
|
508
|
-
this.validatorMonitor?.registerSyncAggregateInBlock(
|
|
509
|
-
blockEpoch,
|
|
510
|
-
(block as altair.SignedBeaconBlock).message.body.syncAggregate,
|
|
511
|
-
fullyVerifiedBlock.postState.epochCtx.currentSyncCommitteeIndexed.validatorIndices
|
|
512
|
-
);
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
if (isBlockInputColumns(blockInput)) {
|
|
516
|
-
for (const {source} of blockInput.getSampledColumnsWithSource()) {
|
|
517
|
-
this.metrics?.importBlock.columnsBySource.inc({source});
|
|
518
|
-
}
|
|
519
|
-
} else if (isBlockInputBlobs(blockInput)) {
|
|
520
|
-
for (const {source} of blockInput.getAllBlobsWithSource()) {
|
|
521
|
-
this.metrics?.importBlock.blobsBySource.inc({blobsSource: source});
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
const advancedSlot = this.clock.slotWithFutureTolerance(REPROCESS_MIN_TIME_TO_NEXT_SLOT_SEC);
|
|
526
|
-
|
|
527
|
-
// Gossip blocks need to be imported as soon as possible, waiting attestations could be processed
|
|
528
|
-
// in the next event loop. See https://github.com/ChainSafe/lodestar/issues/4789
|
|
529
|
-
callInNextEventLoop(() => {
|
|
530
|
-
this.reprocessController.onBlockImported({slot: blockSlot, root: blockRootHex}, advancedSlot);
|
|
531
|
-
});
|
|
532
|
-
|
|
533
|
-
if (opts.seenTimestampSec !== undefined) {
|
|
534
|
-
const recvToValidation = Date.now() / 1000 - opts.seenTimestampSec;
|
|
535
|
-
const validationTime = recvToValidation - recvToValLatency;
|
|
536
|
-
|
|
537
|
-
this.metrics?.gossipBlock.blockImport.recvToValidation.observe(recvToValidation);
|
|
538
|
-
this.metrics?.gossipBlock.blockImport.validationTime.observe(validationTime);
|
|
539
|
-
|
|
540
|
-
this.logger.debug("Imported block", {slot: blockSlot, recvToValLatency, recvToValidation, validationTime});
|
|
541
|
-
}
|
|
542
|
-
|
|
543
|
-
this.logger.verbose("Block processed", {
|
|
544
|
-
slot: blockSlot,
|
|
545
|
-
root: blockRootHex,
|
|
546
|
-
delaySec: this.clock.secFromSlot(blockSlot),
|
|
547
|
-
});
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
export function addAttestationPreElectra(
|
|
551
|
-
this: BeaconChain,
|
|
552
|
-
// added to have the same signature as addAttestationPostElectra
|
|
553
|
-
_: EpochCache,
|
|
554
|
-
target: phase0.Checkpoint,
|
|
555
|
-
attDataRoot: string,
|
|
556
|
-
attestation: Attestation,
|
|
557
|
-
indexedAttestation: phase0.IndexedAttestation
|
|
558
|
-
): void {
|
|
559
|
-
this.seenAggregatedAttestations.add(
|
|
560
|
-
target.epoch,
|
|
561
|
-
attestation.data.index,
|
|
562
|
-
attDataRoot,
|
|
563
|
-
{aggregationBits: attestation.aggregationBits, trueBitCount: indexedAttestation.attestingIndices.length},
|
|
564
|
-
true
|
|
565
|
-
);
|
|
566
|
-
}
|
|
567
|
-
|
|
568
|
-
export function addAttestationPostElectra(
|
|
569
|
-
this: BeaconChain,
|
|
570
|
-
epochCtx: EpochCache,
|
|
571
|
-
target: phase0.Checkpoint,
|
|
572
|
-
attDataRoot: string,
|
|
573
|
-
attestation: Attestation<ForkPostElectra>,
|
|
574
|
-
indexedAttestation: electra.IndexedAttestation
|
|
575
|
-
): void {
|
|
576
|
-
const committeeIndices = attestation.committeeBits.getTrueBitIndexes();
|
|
577
|
-
if (committeeIndices.length === 1) {
|
|
578
|
-
this.seenAggregatedAttestations.add(
|
|
579
|
-
target.epoch,
|
|
580
|
-
committeeIndices[0],
|
|
581
|
-
attDataRoot,
|
|
582
|
-
{aggregationBits: attestation.aggregationBits, trueBitCount: indexedAttestation.attestingIndices.length},
|
|
583
|
-
true
|
|
584
|
-
);
|
|
585
|
-
} else {
|
|
586
|
-
const committees = epochCtx.getBeaconCommittees(attestation.data.slot, committeeIndices);
|
|
587
|
-
const aggregationBools = attestation.aggregationBits.toBoolArray();
|
|
588
|
-
let offset = 0;
|
|
589
|
-
for (let i = 0; i < committees.length; i++) {
|
|
590
|
-
const committee = committees[i];
|
|
591
|
-
const aggregationBits = BitArray.fromBoolArray(aggregationBools.slice(offset, offset + committee.length));
|
|
592
|
-
const trueBitCount = aggregationBits.getTrueBitIndexes().length;
|
|
593
|
-
offset += committee.length;
|
|
594
|
-
this.seenAggregatedAttestations.add(
|
|
595
|
-
target.epoch,
|
|
596
|
-
committeeIndices[i],
|
|
597
|
-
attDataRoot,
|
|
598
|
-
{aggregationBits, trueBitCount},
|
|
599
|
-
true
|
|
600
|
-
);
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
}
|