@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
package/src/util/bitArray.ts
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import {BitArray} from "@chainsafe/ssz";
|
|
2
|
-
|
|
3
|
-
export enum IntersectResult {
|
|
4
|
-
Equal,
|
|
5
|
-
/** All elements in set B are in set A */
|
|
6
|
-
Superset,
|
|
7
|
-
/** All elements in set A are in set B */
|
|
8
|
-
Subset,
|
|
9
|
-
/** Set A and set B do not share any elements */
|
|
10
|
-
Exclusive,
|
|
11
|
-
/** Set A and set B intersect but are not superset or subset */
|
|
12
|
-
Intersect,
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* For each byte check if a includes b,
|
|
17
|
-
* | a | b | result |
|
|
18
|
-
* | -------- | -------- | ------------- |
|
|
19
|
-
* | 00001111 | 00001111 | A equals B |
|
|
20
|
-
* | 00001111 | 00000011 | A superset B |
|
|
21
|
-
* | 00000011 | 00001111 | A subset B |
|
|
22
|
-
* | 11110000 | 00001111 | A exclude B |
|
|
23
|
-
* | 11111100 | 00111111 | A intersect B |
|
|
24
|
-
*
|
|
25
|
-
* For all bytes in BitArray:
|
|
26
|
-
* - equals = MAYBE ONLY equals
|
|
27
|
-
* - excludes = MUST ONLY equals
|
|
28
|
-
* - superset = MUST superset MAYBE equal
|
|
29
|
-
* - subset = MUST subset MAYBE equal
|
|
30
|
-
* - intersect = any other condition
|
|
31
|
-
*/
|
|
32
|
-
export function intersectUint8Arrays(aUA: Uint8Array, bUA: Uint8Array): IntersectResult {
|
|
33
|
-
const len = aUA.length;
|
|
34
|
-
|
|
35
|
-
let someEquals = false;
|
|
36
|
-
let someExcludes = false;
|
|
37
|
-
let someSuperset = false;
|
|
38
|
-
let someSubset = false;
|
|
39
|
-
|
|
40
|
-
for (let i = 0; i < len; i++) {
|
|
41
|
-
const a = aUA[i];
|
|
42
|
-
const b = bUA[i];
|
|
43
|
-
|
|
44
|
-
if (a === 0 && b === 0) {
|
|
45
|
-
// zero, skip
|
|
46
|
-
} else if (a === b) {
|
|
47
|
-
// A equals B
|
|
48
|
-
someEquals = true;
|
|
49
|
-
} else if ((a & b) === 0) {
|
|
50
|
-
// A excludes B
|
|
51
|
-
someExcludes = true;
|
|
52
|
-
} else if ((a & b) === b) {
|
|
53
|
-
// A superset B
|
|
54
|
-
if (someSubset) return IntersectResult.Intersect;
|
|
55
|
-
someSuperset = true;
|
|
56
|
-
} else if ((a & b) === a) {
|
|
57
|
-
// A subset B
|
|
58
|
-
if (someSuperset) return IntersectResult.Intersect;
|
|
59
|
-
someSubset = true;
|
|
60
|
-
} else {
|
|
61
|
-
// A diff B
|
|
62
|
-
return IntersectResult.Intersect;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// equals = MAYBE ONLY equals
|
|
67
|
-
if (!someExcludes && !someSuperset && !someSubset) return IntersectResult.Equal;
|
|
68
|
-
// excludes = MUST ONLY equals
|
|
69
|
-
if (!someEquals && someExcludes && !someSuperset && !someSubset) return IntersectResult.Exclusive;
|
|
70
|
-
// superset = MUST superset MAYBE equal
|
|
71
|
-
if (!someExcludes && someSuperset && !someSubset) return IntersectResult.Superset;
|
|
72
|
-
// subset = MUST subset MAYBE equal
|
|
73
|
-
if (!someExcludes && !someSuperset && someSubset) return IntersectResult.Subset;
|
|
74
|
-
// intersect = any other condition
|
|
75
|
-
return IntersectResult.Intersect;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Check if first BitArray is equal to or superset of the second
|
|
80
|
-
*/
|
|
81
|
-
export function isSuperSetOrEqual(superSet: BitArray, toCheck: BitArray): boolean {
|
|
82
|
-
const intersectionResult = intersectUint8Arrays(superSet.uint8Array, toCheck.uint8Array);
|
|
83
|
-
return intersectionResult === IntersectResult.Superset || intersectionResult === IntersectResult.Equal;
|
|
84
|
-
}
|
package/src/util/blobs.ts
DELETED
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import {digest as sha256Digest} from "@chainsafe/as-sha256";
|
|
2
|
-
import {Tree} from "@chainsafe/persistent-merkle-tree";
|
|
3
|
-
import {ChainForkConfig} from "@lodestar/config";
|
|
4
|
-
import {
|
|
5
|
-
BYTES_PER_CELL,
|
|
6
|
-
BYTES_PER_FIELD_ELEMENT,
|
|
7
|
-
CELLS_PER_EXT_BLOB,
|
|
8
|
-
FIELD_ELEMENTS_PER_BLOB,
|
|
9
|
-
ForkAll,
|
|
10
|
-
ForkName,
|
|
11
|
-
KZG_COMMITMENT_GINDEX0,
|
|
12
|
-
NUMBER_OF_COLUMNS,
|
|
13
|
-
VERSIONED_HASH_VERSION_KZG,
|
|
14
|
-
} from "@lodestar/params";
|
|
15
|
-
import {signedBlockToSignedHeader} from "@lodestar/state-transition";
|
|
16
|
-
import {BeaconBlockBody, SSZTypesFor, SignedBeaconBlock, deneb, fulu, ssz} from "@lodestar/types";
|
|
17
|
-
import {kzg} from "./kzg.js";
|
|
18
|
-
|
|
19
|
-
type VersionHash = Uint8Array;
|
|
20
|
-
|
|
21
|
-
export function kzgCommitmentToVersionedHash(kzgCommitment: deneb.KZGCommitment): VersionHash {
|
|
22
|
-
const hash = sha256Digest(kzgCommitment);
|
|
23
|
-
// Equivalent to `VERSIONED_HASH_VERSION_KZG + hash(kzg_commitment)[1:]`
|
|
24
|
-
hash[0] = VERSIONED_HASH_VERSION_KZG;
|
|
25
|
-
return hash;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export function computePreFuluKzgCommitmentsInclusionProof(
|
|
29
|
-
fork: ForkName,
|
|
30
|
-
body: BeaconBlockBody,
|
|
31
|
-
index: number
|
|
32
|
-
): deneb.KzgCommitmentInclusionProof {
|
|
33
|
-
const bodyView = (ssz[fork].BeaconBlockBody as SSZTypesFor<ForkAll, "BeaconBlockBody">).toView(body);
|
|
34
|
-
const commitmentGindex = KZG_COMMITMENT_GINDEX0 + index;
|
|
35
|
-
return new Tree(bodyView.node).getSingleProof(BigInt(commitmentGindex));
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* SPEC FUNCTION get_blob_sidecars
|
|
40
|
-
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/deneb/validator.md#sidecar
|
|
41
|
-
*/
|
|
42
|
-
export function getBlobSidecars(
|
|
43
|
-
config: ChainForkConfig,
|
|
44
|
-
signedBlock: SignedBeaconBlock,
|
|
45
|
-
blobs: deneb.Blobs,
|
|
46
|
-
proofs: deneb.KZGProofs
|
|
47
|
-
): deneb.BlobSidecars {
|
|
48
|
-
const blobKzgCommitments = (signedBlock as deneb.SignedBeaconBlock).message.body.blobKzgCommitments;
|
|
49
|
-
if (blobKzgCommitments === undefined) {
|
|
50
|
-
throw Error("Invalid block with missing blobKzgCommitments for computeBlobSidecars");
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const signedBlockHeader = signedBlockToSignedHeader(config, signedBlock);
|
|
54
|
-
const fork = config.getForkName(signedBlockHeader.message.slot);
|
|
55
|
-
|
|
56
|
-
return blobKzgCommitments.map((kzgCommitment, index) => {
|
|
57
|
-
const blob = blobs[index];
|
|
58
|
-
const kzgProof = proofs[index];
|
|
59
|
-
const kzgCommitmentInclusionProof = computePreFuluKzgCommitmentsInclusionProof(
|
|
60
|
-
fork,
|
|
61
|
-
signedBlock.message.body,
|
|
62
|
-
index
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
return {index, blob, kzgCommitment, kzgProof, signedBlockHeader, kzgCommitmentInclusionProof};
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* If the node obtains 50%+ of all the columns, it SHOULD reconstruct the full data matrix via the recover_matrix helper
|
|
71
|
-
* See https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#recover_matrix
|
|
72
|
-
*/
|
|
73
|
-
export async function dataColumnMatrixRecovery(
|
|
74
|
-
partialSidecars: Map<number, fulu.DataColumnSidecar>
|
|
75
|
-
): Promise<fulu.DataColumnSidecars | null> {
|
|
76
|
-
const columnCount = partialSidecars.size;
|
|
77
|
-
if (columnCount < NUMBER_OF_COLUMNS / 2) {
|
|
78
|
-
// We don't have enough columns to recover
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
if (columnCount === NUMBER_OF_COLUMNS) {
|
|
83
|
-
// full columns, no need to recover
|
|
84
|
-
return Array.from(partialSidecars.values());
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
// Sort data columns by index in ascending order before passing for kzg operations
|
|
88
|
-
const partialSidecarsSorted = Array.from(partialSidecars.values()).sort((a, b) => a.index - b.index);
|
|
89
|
-
|
|
90
|
-
const firstDataColumn = partialSidecarsSorted[0];
|
|
91
|
-
if (firstDataColumn == null) {
|
|
92
|
-
// should not happen because we check the size of the cache before this
|
|
93
|
-
throw new Error("No data column found in cache to recover from");
|
|
94
|
-
}
|
|
95
|
-
const blobCount = firstDataColumn.kzgCommitments.length;
|
|
96
|
-
|
|
97
|
-
const fullColumns: Array<Uint8Array[]> = Array.from(
|
|
98
|
-
{length: NUMBER_OF_COLUMNS},
|
|
99
|
-
() => new Array<Uint8Array>(blobCount)
|
|
100
|
-
);
|
|
101
|
-
const blobProofs: Array<Uint8Array[]> = Array.from({length: blobCount});
|
|
102
|
-
// https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#recover_matrix
|
|
103
|
-
const cellsAndProofs = await Promise.all(
|
|
104
|
-
blobProofs.map((_, blobIndex) => {
|
|
105
|
-
const cellIndices: number[] = [];
|
|
106
|
-
const cells: Uint8Array[] = [];
|
|
107
|
-
for (const dataColumn of partialSidecarsSorted) {
|
|
108
|
-
cellIndices.push(dataColumn.index);
|
|
109
|
-
cells.push(dataColumn.column[blobIndex]);
|
|
110
|
-
}
|
|
111
|
-
// recovered cells and proofs are of the same row/blob, their length should be NUMBER_OF_COLUMNS
|
|
112
|
-
return kzg.asyncRecoverCellsAndKzgProofs(cellIndices, cells);
|
|
113
|
-
})
|
|
114
|
-
);
|
|
115
|
-
|
|
116
|
-
for (let blobIndex = 0; blobIndex < blobCount; blobIndex++) {
|
|
117
|
-
const recoveredCells = cellsAndProofs[blobIndex].cells;
|
|
118
|
-
blobProofs[blobIndex] = cellsAndProofs[blobIndex].proofs;
|
|
119
|
-
for (let columnIndex = 0; columnIndex < NUMBER_OF_COLUMNS; columnIndex++) {
|
|
120
|
-
fullColumns[columnIndex][blobIndex] = recoveredCells[columnIndex];
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const result: fulu.DataColumnSidecars = new Array(NUMBER_OF_COLUMNS);
|
|
125
|
-
|
|
126
|
-
for (let columnIndex = 0; columnIndex < NUMBER_OF_COLUMNS; columnIndex++) {
|
|
127
|
-
let sidecar = partialSidecars.get(columnIndex);
|
|
128
|
-
if (sidecar) {
|
|
129
|
-
// We already have this column
|
|
130
|
-
result[columnIndex] = sidecar;
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
sidecar = {
|
|
135
|
-
index: columnIndex,
|
|
136
|
-
column: fullColumns[columnIndex],
|
|
137
|
-
kzgCommitments: firstDataColumn.kzgCommitments,
|
|
138
|
-
kzgProofs: Array.from({length: blobCount}, (_, rowIndex) => blobProofs[rowIndex][columnIndex]),
|
|
139
|
-
signedBlockHeader: firstDataColumn.signedBlockHeader,
|
|
140
|
-
kzgCommitmentsInclusionProof: firstDataColumn.kzgCommitmentsInclusionProof,
|
|
141
|
-
};
|
|
142
|
-
result[columnIndex] = sidecar;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
return result;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Reconstruct blobs from a set of data columns, at least 50%+ of all the columns
|
|
150
|
-
* must be provided to allow to reconstruct the full data matrix
|
|
151
|
-
*/
|
|
152
|
-
export async function reconstructBlobs(sidecars: fulu.DataColumnSidecars): Promise<deneb.Blobs> {
|
|
153
|
-
if (sidecars.length < NUMBER_OF_COLUMNS / 2) {
|
|
154
|
-
throw Error(
|
|
155
|
-
`Expected at least ${NUMBER_OF_COLUMNS / 2} data columns to reconstruct blobs, received ${sidecars.length}`
|
|
156
|
-
);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
let fullSidecars: fulu.DataColumnSidecars;
|
|
160
|
-
|
|
161
|
-
if (sidecars.length === NUMBER_OF_COLUMNS) {
|
|
162
|
-
// Full columns, no need to recover
|
|
163
|
-
fullSidecars = sidecars;
|
|
164
|
-
} else {
|
|
165
|
-
const sidecarsByIndex = new Map<number, fulu.DataColumnSidecar>(sidecars.map((sc) => [sc.index, sc]));
|
|
166
|
-
const recoveredSidecars = await dataColumnMatrixRecovery(sidecarsByIndex);
|
|
167
|
-
if (recoveredSidecars === null) {
|
|
168
|
-
// Should not happen because we check the column count above
|
|
169
|
-
throw Error("Failed to reconstruct the full data matrix");
|
|
170
|
-
}
|
|
171
|
-
fullSidecars = recoveredSidecars;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
const blobCount = fullSidecars[0].column.length;
|
|
175
|
-
const blobs: deneb.Blobs = new Array(blobCount);
|
|
176
|
-
|
|
177
|
-
const ordered = fullSidecars.slice().sort((a, b) => a.index - b.index);
|
|
178
|
-
for (let row = 0; row < blobCount; row++) {
|
|
179
|
-
// 128 cells that make up one "extended blob" row
|
|
180
|
-
const cells = ordered.map((col) => col.column[row]);
|
|
181
|
-
blobs[row] = cellsToBlob(cells);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
return blobs;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* Concatenate the systematic half (columns 0‑63) of a row of cells into
|
|
189
|
-
* the original 131072 byte blob. The parity half (64‑127) is ignored as
|
|
190
|
-
* it is only needed for erasure‑coding recovery when columns are missing.
|
|
191
|
-
*/
|
|
192
|
-
function cellsToBlob(cells: fulu.Cell[]): deneb.Blob {
|
|
193
|
-
if (cells.length !== CELLS_PER_EXT_BLOB) {
|
|
194
|
-
throw Error(`Expected ${CELLS_PER_EXT_BLOB} cells to reconstruct blob, received ${cells.length}`);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
const blob = new Uint8Array(BYTES_PER_FIELD_ELEMENT * FIELD_ELEMENTS_PER_BLOB);
|
|
198
|
-
|
|
199
|
-
// Only the first 64 cells hold the original bytes
|
|
200
|
-
for (let i = 0; i < CELLS_PER_EXT_BLOB / 2; i++) {
|
|
201
|
-
const cell = cells[i];
|
|
202
|
-
if (cell.length !== BYTES_PER_CELL) {
|
|
203
|
-
throw Error(`Cell ${i} has incorrect byte size ${cell.length} != ${BYTES_PER_CELL}`);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
blob.set(cell, i * BYTES_PER_CELL);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
return blob;
|
|
210
|
-
}
|
package/src/util/bufferPool.ts
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import {Metrics} from "../metrics/metrics.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* If consumer wants more memory than available, we grow the buffer by this ratio.
|
|
5
|
-
*/
|
|
6
|
-
const GROW_RATIO = 1.1;
|
|
7
|
-
|
|
8
|
-
export enum AllocSource {
|
|
9
|
-
PERSISTENT_CHECKPOINTS_CACHE_VALIDATORS = "persistent_checkpoints_cache_validators",
|
|
10
|
-
PERSISTENT_CHECKPOINTS_CACHE_STATE = "persistent_checkpoints_cache_state",
|
|
11
|
-
ARCHIVE_STATE = "archive_state",
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* A simple implementation to manage a single buffer.
|
|
16
|
-
* This is initially used for state serialization at every epoch and for state reload.
|
|
17
|
-
* We can enhance and use this for other purposes in the future.
|
|
18
|
-
*/
|
|
19
|
-
export class BufferPool {
|
|
20
|
-
private buffer: Uint8Array;
|
|
21
|
-
private inUse = false;
|
|
22
|
-
private currentKey: number;
|
|
23
|
-
private readonly metrics: Metrics["bufferPool"] | null = null;
|
|
24
|
-
|
|
25
|
-
constructor(size: number, metrics: Metrics | null = null) {
|
|
26
|
-
this.buffer = new Uint8Array(Math.floor(size * GROW_RATIO));
|
|
27
|
-
this.currentKey = 0;
|
|
28
|
-
if (metrics) {
|
|
29
|
-
this.metrics = metrics.bufferPool;
|
|
30
|
-
metrics.bufferPool.length.addCollect(() => {
|
|
31
|
-
metrics.bufferPool.length.set(this.buffer.length);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
get length(): number {
|
|
37
|
-
return this.buffer.length;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Returns a buffer of the given size with all 0.
|
|
42
|
-
* If the buffer is already in use, return null.
|
|
43
|
-
* Grow the buffer if the requested size is larger than the current buffer.
|
|
44
|
-
*/
|
|
45
|
-
alloc(size: number, source: AllocSource): BufferWithKey | null {
|
|
46
|
-
return this.doAlloc(size, source, false);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Same to alloc() but the buffer is not zeroed.
|
|
51
|
-
*/
|
|
52
|
-
allocUnsafe(size: number, source: AllocSource): BufferWithKey | null {
|
|
53
|
-
return this.doAlloc(size, source, true);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
private doAlloc(size: number, source: AllocSource, isUnsafe = false): BufferWithKey | null {
|
|
57
|
-
if (this.inUse) {
|
|
58
|
-
this.metrics?.misses.inc({source});
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
this.inUse = true;
|
|
62
|
-
this.metrics?.hits.inc({source});
|
|
63
|
-
this.currentKey += 1;
|
|
64
|
-
if (size > this.buffer.length) {
|
|
65
|
-
this.metrics?.grows.inc();
|
|
66
|
-
this.buffer = new Uint8Array(Math.floor(size * GROW_RATIO));
|
|
67
|
-
}
|
|
68
|
-
const bytes = this.buffer.subarray(0, size);
|
|
69
|
-
if (!isUnsafe) {
|
|
70
|
-
bytes.fill(0);
|
|
71
|
-
}
|
|
72
|
-
return new BufferWithKey(bytes, this.currentKey, this);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Marks the buffer as free.
|
|
77
|
-
*/
|
|
78
|
-
free(key: number): void {
|
|
79
|
-
if (key === this.currentKey) {
|
|
80
|
-
this.inUse = false;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export class BufferWithKey implements Disposable {
|
|
86
|
-
constructor(
|
|
87
|
-
readonly buffer: Uint8Array,
|
|
88
|
-
private readonly key: number,
|
|
89
|
-
private readonly pool: BufferPool
|
|
90
|
-
) {}
|
|
91
|
-
|
|
92
|
-
[Symbol.dispose](): void {
|
|
93
|
-
this.pool.free(this.key);
|
|
94
|
-
}
|
|
95
|
-
}
|
package/src/util/bytes.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import {Root} from "@lodestar/types";
|
|
2
|
-
|
|
3
|
-
export function byteArrayEquals(a: Uint8Array | Root, b: Uint8Array | Root): boolean {
|
|
4
|
-
if (a.length !== b.length) {
|
|
5
|
-
return false;
|
|
6
|
-
}
|
|
7
|
-
for (let i = 0; i < a.length; i++) {
|
|
8
|
-
if (a[i] !== b[i]) return false;
|
|
9
|
-
}
|
|
10
|
-
return true;
|
|
11
|
-
}
|
package/src/util/chunkify.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Split an inclusive range into a sequence of contiguous inclusive ranges
|
|
3
|
-
* ```
|
|
4
|
-
* [[a,b], [c,d] ... Sn] = chunkifyInclusiveRange([a,z], n)
|
|
5
|
-
* // where
|
|
6
|
-
* [a,z] = [a,b] U [c,d] U ... U Sn
|
|
7
|
-
* ```
|
|
8
|
-
* @param from range start inclusive
|
|
9
|
-
* @param to range end inclusive
|
|
10
|
-
* @param chunks Maximum number of chunks, if range is big enough
|
|
11
|
-
*/
|
|
12
|
-
export function chunkifyInclusiveRange(from: number, to: number, chunkCount: number): number[][] {
|
|
13
|
-
// Enforce chunkCount >= 1
|
|
14
|
-
if (chunkCount < 1) chunkCount = 1;
|
|
15
|
-
|
|
16
|
-
const totalItems = to - from + 1;
|
|
17
|
-
const itemsPerChunk = Math.ceil(totalItems / chunkCount);
|
|
18
|
-
|
|
19
|
-
const chunks: number[][] = [];
|
|
20
|
-
for (let i = 0; i < chunkCount; i++) {
|
|
21
|
-
const _from = from + i * itemsPerChunk;
|
|
22
|
-
const _to = Math.min(from + (i + 1) * itemsPerChunk - 1, to);
|
|
23
|
-
chunks.push([_from, _to]);
|
|
24
|
-
if (_to >= to) break;
|
|
25
|
-
}
|
|
26
|
-
return chunks;
|
|
27
|
-
}
|
package/src/util/clock.ts
DELETED
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
import EventEmitter from "node:events";
|
|
2
|
-
import type {StrictEventEmitter} from "strict-event-emitter-types";
|
|
3
|
-
import {ChainForkConfig} from "@lodestar/config";
|
|
4
|
-
import {computeEpochAtSlot, computeTimeAtSlot, getCurrentSlot} from "@lodestar/state-transition";
|
|
5
|
-
import type {Epoch, Slot} from "@lodestar/types";
|
|
6
|
-
import {ErrorAborted} from "@lodestar/utils";
|
|
7
|
-
import {MAXIMUM_GOSSIP_CLOCK_DISPARITY} from "../constants/constants.js";
|
|
8
|
-
|
|
9
|
-
export enum ClockEvent {
|
|
10
|
-
/**
|
|
11
|
-
* This event signals the start of a new slot, and that subsequent calls to `clock.currentSlot` will equal `slot`.
|
|
12
|
-
* This event is guaranteed to be emitted every `SECONDS_PER_SLOT` seconds.
|
|
13
|
-
*/
|
|
14
|
-
slot = "clock:slot",
|
|
15
|
-
/**
|
|
16
|
-
* This event signals the start of a new epoch, and that subsequent calls to `clock.currentEpoch` will return `epoch`.
|
|
17
|
-
* This event is guaranteed to be emitted every `SECONDS_PER_SLOT * SLOTS_PER_EPOCH` seconds.
|
|
18
|
-
*/
|
|
19
|
-
epoch = "clock:epoch",
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export type ClockEvents = {
|
|
23
|
-
[ClockEvent.slot]: (slot: Slot) => void;
|
|
24
|
-
[ClockEvent.epoch]: (epoch: Epoch) => void;
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Tracks the current chain time, measured in `Slot`s and `Epoch`s
|
|
29
|
-
*
|
|
30
|
-
* The time is dependent on:
|
|
31
|
-
* - `state.genesisTime` - the genesis time
|
|
32
|
-
* - `SECONDS_PER_SLOT` - # of seconds per slot
|
|
33
|
-
* - `SLOTS_PER_EPOCH` - # of slots per epoch
|
|
34
|
-
*/
|
|
35
|
-
export type IClock = StrictEventEmitter<EventEmitter, ClockEvents> & {
|
|
36
|
-
readonly genesisTime: Slot;
|
|
37
|
-
readonly currentSlot: Slot;
|
|
38
|
-
/**
|
|
39
|
-
* If it's too close to next slot, maxCurrentSlot = currentSlot + 1
|
|
40
|
-
*/
|
|
41
|
-
readonly currentSlotWithGossipDisparity: Slot;
|
|
42
|
-
readonly currentEpoch: Epoch;
|
|
43
|
-
/** Returns the slot if the internal clock were advanced by `toleranceSec`. */
|
|
44
|
-
slotWithFutureTolerance(toleranceSec: number): Slot;
|
|
45
|
-
/** Returns the slot if the internal clock were reversed by `toleranceSec`. */
|
|
46
|
-
slotWithPastTolerance(toleranceSec: number): Slot;
|
|
47
|
-
/**
|
|
48
|
-
* Check if a slot is current slot given MAXIMUM_GOSSIP_CLOCK_DISPARITY.
|
|
49
|
-
*/
|
|
50
|
-
isCurrentSlotGivenGossipDisparity(slot: Slot): boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Returns a promise that waits until at least `slot` is reached
|
|
53
|
-
* Resolves when the current slot >= `slot`
|
|
54
|
-
* Rejects if the clock is aborted
|
|
55
|
-
*/
|
|
56
|
-
waitForSlot(slot: Slot): Promise<void>;
|
|
57
|
-
/**
|
|
58
|
-
* Return second from a slot to either toSec or now.
|
|
59
|
-
*/
|
|
60
|
-
secFromSlot(slot: Slot, toSec?: number): number;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* A local clock, the clock time is assumed to be trusted
|
|
65
|
-
*/
|
|
66
|
-
export class Clock extends EventEmitter implements IClock {
|
|
67
|
-
readonly genesisTime: number;
|
|
68
|
-
private readonly config: ChainForkConfig;
|
|
69
|
-
private timeoutId: number | NodeJS.Timeout;
|
|
70
|
-
private readonly signal: AbortSignal;
|
|
71
|
-
private _currentSlot: number;
|
|
72
|
-
|
|
73
|
-
constructor({config, genesisTime, signal}: {config: ChainForkConfig; genesisTime: number; signal: AbortSignal}) {
|
|
74
|
-
super();
|
|
75
|
-
|
|
76
|
-
this.config = config;
|
|
77
|
-
this.genesisTime = genesisTime;
|
|
78
|
-
this.timeoutId = setTimeout(this.onNextSlot, this.msUntilNextSlot());
|
|
79
|
-
this.signal = signal;
|
|
80
|
-
this._currentSlot = getCurrentSlot(this.config, this.genesisTime);
|
|
81
|
-
this.signal.addEventListener("abort", () => clearTimeout(this.timeoutId), {once: true});
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
get currentSlot(): Slot {
|
|
85
|
-
const slot = getCurrentSlot(this.config, this.genesisTime);
|
|
86
|
-
if (slot > this._currentSlot) {
|
|
87
|
-
clearTimeout(this.timeoutId);
|
|
88
|
-
this.onNextSlot(slot);
|
|
89
|
-
}
|
|
90
|
-
return slot;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* If it's too close to next slot given MAXIMUM_GOSSIP_CLOCK_DISPARITY, return currentSlot + 1.
|
|
95
|
-
* Otherwise return currentSlot
|
|
96
|
-
*/
|
|
97
|
-
get currentSlotWithGossipDisparity(): Slot {
|
|
98
|
-
const currentSlot = this.currentSlot;
|
|
99
|
-
const nextSlotTime = computeTimeAtSlot(this.config, currentSlot + 1, this.genesisTime) * 1000;
|
|
100
|
-
return nextSlotTime - Date.now() < MAXIMUM_GOSSIP_CLOCK_DISPARITY ? currentSlot + 1 : currentSlot;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
get currentEpoch(): Epoch {
|
|
104
|
-
return computeEpochAtSlot(this.currentSlot);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/** Returns the slot if the internal clock were advanced by `toleranceSec`. */
|
|
108
|
-
slotWithFutureTolerance(toleranceSec: number): Slot {
|
|
109
|
-
// this is the same to getting slot at now + toleranceSec
|
|
110
|
-
return getCurrentSlot(this.config, this.genesisTime - toleranceSec);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/** Returns the slot if the internal clock were reversed by `toleranceSec`. */
|
|
114
|
-
slotWithPastTolerance(toleranceSec: number): Slot {
|
|
115
|
-
// this is the same to getting slot at now - toleranceSec
|
|
116
|
-
return getCurrentSlot(this.config, this.genesisTime + toleranceSec);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Check if a slot is current slot given MAXIMUM_GOSSIP_CLOCK_DISPARITY.
|
|
121
|
-
*/
|
|
122
|
-
isCurrentSlotGivenGossipDisparity(slot: Slot): boolean {
|
|
123
|
-
const currentSlot = this.currentSlot;
|
|
124
|
-
if (currentSlot === slot) {
|
|
125
|
-
return true;
|
|
126
|
-
}
|
|
127
|
-
const nextSlotTime = computeTimeAtSlot(this.config, currentSlot + 1, this.genesisTime) * 1000;
|
|
128
|
-
// we're too close to next slot, accept next slot
|
|
129
|
-
if (nextSlotTime - Date.now() < MAXIMUM_GOSSIP_CLOCK_DISPARITY) {
|
|
130
|
-
return slot === currentSlot + 1;
|
|
131
|
-
}
|
|
132
|
-
const currentSlotTime = computeTimeAtSlot(this.config, currentSlot, this.genesisTime) * 1000;
|
|
133
|
-
// we've just passed the current slot, accept previous slot
|
|
134
|
-
if (Date.now() - currentSlotTime < MAXIMUM_GOSSIP_CLOCK_DISPARITY) {
|
|
135
|
-
return slot === currentSlot - 1;
|
|
136
|
-
}
|
|
137
|
-
return false;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
async waitForSlot(slot: Slot): Promise<void> {
|
|
141
|
-
if (this.signal.aborted) {
|
|
142
|
-
throw new ErrorAborted();
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
if (this.currentSlot >= slot) {
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
return new Promise((resolve, reject) => {
|
|
150
|
-
const onSlot = (clockSlot: Slot): void => {
|
|
151
|
-
if (clockSlot >= slot) {
|
|
152
|
-
onDone();
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
const onDone = (): void => {
|
|
157
|
-
this.off(ClockEvent.slot, onSlot);
|
|
158
|
-
this.signal.removeEventListener("abort", onAbort);
|
|
159
|
-
resolve();
|
|
160
|
-
};
|
|
161
|
-
|
|
162
|
-
const onAbort = (): void => {
|
|
163
|
-
this.off(ClockEvent.slot, onSlot);
|
|
164
|
-
reject(new ErrorAborted());
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
this.on(ClockEvent.slot, onSlot);
|
|
168
|
-
this.signal.addEventListener("abort", onAbort, {once: true});
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
secFromSlot(slot: Slot, toSec = Date.now() / 1000): number {
|
|
173
|
-
return toSec - (this.genesisTime + slot * this.config.SECONDS_PER_SLOT);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
private onNextSlot = (slot?: Slot): void => {
|
|
177
|
-
const clockSlot = slot ?? getCurrentSlot(this.config, this.genesisTime);
|
|
178
|
-
// process multiple clock slots in the case the main thread has been saturated for > SECONDS_PER_SLOT
|
|
179
|
-
while (this._currentSlot < clockSlot && !this.signal.aborted) {
|
|
180
|
-
const previousSlot = this._currentSlot;
|
|
181
|
-
this._currentSlot++;
|
|
182
|
-
|
|
183
|
-
this.emit(ClockEvent.slot, this._currentSlot);
|
|
184
|
-
|
|
185
|
-
const previousEpoch = computeEpochAtSlot(previousSlot);
|
|
186
|
-
const currentEpoch = computeEpochAtSlot(this._currentSlot);
|
|
187
|
-
|
|
188
|
-
if (previousEpoch < currentEpoch) {
|
|
189
|
-
this.emit(ClockEvent.epoch, currentEpoch);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
if (!this.signal.aborted) {
|
|
194
|
-
//recursively invoke onNextSlot
|
|
195
|
-
this.timeoutId = setTimeout(this.onNextSlot, this.msUntilNextSlot());
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
private msUntilNextSlot(): number {
|
|
200
|
-
const milliSecondsPerSlot = this.config.SECONDS_PER_SLOT * 1000;
|
|
201
|
-
const diffInMilliSeconds = Date.now() - this.genesisTime * 1000;
|
|
202
|
-
return milliSecondsPerSlot - (diffInMilliSeconds % milliSecondsPerSlot);
|
|
203
|
-
}
|
|
204
|
-
}
|