@lodestar/beacon-node 1.35.0-dev.fcf8d024ea → 1.35.0-dev.feed916580
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/impl/config/constants.d.ts +0 -5
- package/lib/api/impl/config/constants.js +1 -6
- package/lib/api/impl/config/constants.js.map +1 -1
- package/lib/api/impl/validator/index.js +3 -5
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +0 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/worker.js +1 -1
- package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
- package/lib/chain/blocks/blockInput/blockInput.js +1 -1
- package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
- package/lib/chain/blocks/importBlock.js +3 -4
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.js +1 -8
- package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js +7 -1
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/bls/multithread/index.js +0 -1
- package/lib/chain/bls/multithread/index.js.map +1 -1
- package/lib/chain/chain.js +3 -2
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +2 -2
- package/lib/chain/opPools/attestationPool.d.ts +3 -2
- package/lib/chain/opPools/attestationPool.js +5 -3
- package/lib/chain/opPools/attestationPool.js.map +1 -1
- package/lib/chain/opPools/syncCommitteeMessagePool.d.ts +2 -3
- package/lib/chain/opPools/syncCommitteeMessagePool.js +5 -6
- package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
- package/lib/chain/opPools/types.d.ts +1 -1
- package/lib/chain/opPools/types.js +1 -1
- package/lib/chain/opPools/types.js.map +1 -1
- package/lib/chain/prepareNextSlot.d.ts +3 -3
- package/lib/chain/prepareNextSlot.js +8 -8
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.js +8 -9
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/validation/lightClientFinalityUpdate.js +3 -4
- package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
- package/lib/chain/validation/lightClientOptimisticUpdate.d.ts +4 -6
- package/lib/chain/validation/lightClientOptimisticUpdate.js +11 -11
- package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
- package/lib/chain/validatorMonitor.js +14 -20
- package/lib/chain/validatorMonitor.js.map +1 -1
- 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/metrics/metrics/lodestar.d.ts +1 -1
- package/lib/metrics/metrics/lodestar.js +3 -3
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.js +3 -9
- package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
- package/lib/network/discv5/index.js +1 -4
- package/lib/network/discv5/index.js.map +1 -1
- package/lib/network/gossip/gossipsub.d.ts +0 -1
- package/lib/network/gossip/gossipsub.js +16 -35
- package/lib/network/gossip/gossipsub.js.map +1 -1
- package/lib/network/gossip/metrics.d.ts +7 -15
- package/lib/network/gossip/metrics.js +6 -16
- package/lib/network/gossip/metrics.js.map +1 -1
- package/lib/network/libp2p/index.js +1 -9
- package/lib/network/libp2p/index.js.map +1 -1
- package/lib/network/metadata.js +1 -2
- package/lib/network/metadata.js.map +1 -1
- package/lib/network/network.d.ts +1 -1
- package/lib/network/network.js +13 -11
- package/lib/network/network.js.map +1 -1
- package/lib/network/peers/datastore.d.ts +2 -2
- package/lib/network/peers/datastore.js +2 -2
- package/lib/network/peers/datastore.js.map +1 -1
- package/lib/network/processor/index.d.ts +1 -1
- package/lib/network/processor/index.js +3 -2
- package/lib/network/processor/index.js.map +1 -1
- package/lib/sync/types.d.ts +1 -0
- package/lib/sync/types.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts +1 -0
- package/lib/sync/unknownBlock.js +19 -17
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/sync/utils/downloadByRoot.d.ts +1 -3
- package/lib/sync/utils/downloadByRoot.js +9 -36
- package/lib/sync/utils/downloadByRoot.js.map +1 -1
- package/lib/util/blobs.js +3 -5
- package/lib/util/blobs.js.map +1 -1
- package/lib/util/clock.d.ts +0 -5
- package/lib/util/clock.js +0 -3
- package/lib/util/clock.js.map +1 -1
- package/lib/util/dataColumns.js +1 -1
- package/lib/util/dataColumns.js.map +1 -1
- package/lib/util/execution.js +2 -19
- package/lib/util/execution.js.map +1 -1
- package/package.json +22 -32
- 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 -1540
- 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 -852
- 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 -597
- 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 -42
- 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 -120
- 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 -1354
- 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 -282
- package/src/chain/opPools/index.ts +0 -5
- package/src/chain/opPools/opPool.ts +0 -462
- package/src/chain/opPools/syncCommitteeMessagePool.ts +0 -169
- 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 -837
- 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 -46
- package/src/chain/validation/lightClientOptimisticUpdate.ts +0 -68
- 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 -1309
- 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 -496
- 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 -57
- package/src/sync/unknownBlock.ts +0 -859
- 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 -212
- 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/dataColumns.ts
DELETED
|
@@ -1,415 +0,0 @@
|
|
|
1
|
-
import {digest} from "@chainsafe/as-sha256";
|
|
2
|
-
import {Tree} from "@chainsafe/persistent-merkle-tree";
|
|
3
|
-
import {ChainForkConfig} from "@lodestar/config";
|
|
4
|
-
import {ForkAll, ForkName, ForkPostFulu, KZG_COMMITMENTS_GINDEX, NUMBER_OF_COLUMNS} from "@lodestar/params";
|
|
5
|
-
import {signedBlockToSignedHeader} from "@lodestar/state-transition";
|
|
6
|
-
import {
|
|
7
|
-
BeaconBlockBody,
|
|
8
|
-
ColumnIndex,
|
|
9
|
-
CustodyIndex,
|
|
10
|
-
SSZTypesFor,
|
|
11
|
-
SignedBeaconBlock,
|
|
12
|
-
SignedBeaconBlockHeader,
|
|
13
|
-
deneb,
|
|
14
|
-
fulu,
|
|
15
|
-
ssz,
|
|
16
|
-
} from "@lodestar/types";
|
|
17
|
-
import {bytesToBigInt} from "@lodestar/utils";
|
|
18
|
-
import {BlockInputColumns} from "../chain/blocks/blockInput/blockInput.js";
|
|
19
|
-
import {BlockInputSource} from "../chain/blocks/blockInput/types.js";
|
|
20
|
-
import {ChainEvent, ChainEventEmitter} from "../chain/emitter.js";
|
|
21
|
-
import {Metrics} from "../metrics/metrics.js";
|
|
22
|
-
import {NodeId} from "../network/subnets/index.js";
|
|
23
|
-
import {dataColumnMatrixRecovery} from "./blobs.js";
|
|
24
|
-
import {kzg} from "./kzg.js";
|
|
25
|
-
|
|
26
|
-
export enum RecoverResult {
|
|
27
|
-
// the recover is not attempted because we have less than `NUMBER_OF_COLUMNS / 2` columns
|
|
28
|
-
NotAttemptedLessThanHalf = "not_attempted_less_than_half",
|
|
29
|
-
// the recover is not attempted because it has full data columns
|
|
30
|
-
NotAttemptedFull = "not_attempted_full",
|
|
31
|
-
// the recover is a success and it helps resolve availability
|
|
32
|
-
SuccessResolved = "success_resolved",
|
|
33
|
-
// the recover is a success but it's late, availability is already resolved by either gossip or getBlobsV2
|
|
34
|
-
SuccessLate = "success_late",
|
|
35
|
-
// the recover failed
|
|
36
|
-
Failed = "failed",
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export type CustodyConfigOpts = {
|
|
40
|
-
nodeId: NodeId;
|
|
41
|
-
config: ChainForkConfig;
|
|
42
|
-
initialCustodyGroupCount?: number;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export class CustodyConfig {
|
|
46
|
-
/**
|
|
47
|
-
* The number of custody groups the node should subscribe to
|
|
48
|
-
*/
|
|
49
|
-
targetCustodyGroupCount: number;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* The custody columns the node should subscribe to
|
|
53
|
-
*/
|
|
54
|
-
custodyColumns: ColumnIndex[];
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Custody columns map which column maps to which index in the array of columns custodied
|
|
58
|
-
* with zero representing it is not custodied
|
|
59
|
-
*/
|
|
60
|
-
custodyColumnsIndex: Uint8Array;
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* The number of custody groups the node will sample
|
|
64
|
-
*/
|
|
65
|
-
sampledGroupCount: number;
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Custody groups sampled by the node as part of custody sampling
|
|
69
|
-
*/
|
|
70
|
-
sampleGroups: CustodyIndex[];
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Data columns sampled by the node as part of custody sampling
|
|
74
|
-
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#custody-sampling
|
|
75
|
-
*
|
|
76
|
-
* TODO: Consider race conditions if this updates during sync/backfill
|
|
77
|
-
*/
|
|
78
|
-
sampledColumns: ColumnIndex[];
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Subnets sampled by the node as part of custody sampling
|
|
82
|
-
*/
|
|
83
|
-
sampledSubnets: number[];
|
|
84
|
-
|
|
85
|
-
private config: ChainForkConfig;
|
|
86
|
-
private nodeId: NodeId;
|
|
87
|
-
|
|
88
|
-
constructor(opts: CustodyConfigOpts) {
|
|
89
|
-
this.config = opts.config;
|
|
90
|
-
this.nodeId = opts.nodeId;
|
|
91
|
-
this.targetCustodyGroupCount = opts.initialCustodyGroupCount ?? this.config.CUSTODY_REQUIREMENT;
|
|
92
|
-
this.custodyColumns = getDataColumns(this.config, this.nodeId, this.targetCustodyGroupCount);
|
|
93
|
-
this.custodyColumnsIndex = this.getCustodyColumnsIndex(this.custodyColumns);
|
|
94
|
-
this.sampledGroupCount = Math.max(this.targetCustodyGroupCount, this.config.SAMPLES_PER_SLOT);
|
|
95
|
-
this.sampleGroups = getCustodyGroups(this.config, this.nodeId, this.sampledGroupCount);
|
|
96
|
-
this.sampledColumns = getDataColumns(this.config, this.nodeId, this.sampledGroupCount);
|
|
97
|
-
this.sampledSubnets = this.sampledColumns.map((columnIndex) =>
|
|
98
|
-
computeSubnetForDataColumn(this.config, columnIndex)
|
|
99
|
-
);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
updateTargetCustodyGroupCount(targetCustodyGroupCount: number) {
|
|
103
|
-
this.targetCustodyGroupCount = targetCustodyGroupCount;
|
|
104
|
-
this.custodyColumns = getDataColumns(this.config, this.nodeId, this.targetCustodyGroupCount);
|
|
105
|
-
this.custodyColumnsIndex = this.getCustodyColumnsIndex(this.custodyColumns);
|
|
106
|
-
// TODO: Porting this over to match current behavior, but I think this incorrectly mixes units:
|
|
107
|
-
// SAMPLES_PER_SLOT is in columns, and CUSTODY_GROUP_COUNT is in groups
|
|
108
|
-
this.sampledGroupCount = Math.max(this.targetCustodyGroupCount, this.config.SAMPLES_PER_SLOT);
|
|
109
|
-
this.sampleGroups = getCustodyGroups(this.config, this.nodeId, this.sampledGroupCount);
|
|
110
|
-
this.sampledColumns = getDataColumns(this.config, this.nodeId, this.sampledGroupCount);
|
|
111
|
-
this.sampledSubnets = this.sampledColumns.map((columnIndex) =>
|
|
112
|
-
computeSubnetForDataColumn(this.config, columnIndex)
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
private getCustodyColumnsIndex(custodyColumns: ColumnIndex[]): Uint8Array {
|
|
117
|
-
// custody columns map which column maps to which index in the array of columns custodied
|
|
118
|
-
// with zero representing it is not custodied
|
|
119
|
-
const custodyColumnsIndex = new Uint8Array(NUMBER_OF_COLUMNS);
|
|
120
|
-
let custodyAtIndex = 1;
|
|
121
|
-
for (const columnIndex of custodyColumns) {
|
|
122
|
-
custodyColumnsIndex[columnIndex] = custodyAtIndex;
|
|
123
|
-
custodyAtIndex++;
|
|
124
|
-
}
|
|
125
|
-
return custodyColumnsIndex;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
function computeSubnetForDataColumn(config: ChainForkConfig, columnIndex: ColumnIndex): number {
|
|
130
|
-
return columnIndex % config.DATA_COLUMN_SIDECAR_SUBNET_COUNT;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Calculate the number of custody groups the node should subscribe to based on the node's effective balance
|
|
135
|
-
*
|
|
136
|
-
* SPEC FUNCTION
|
|
137
|
-
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.3/specs/fulu/validator.md#validator-custody
|
|
138
|
-
*/
|
|
139
|
-
export function getValidatorsCustodyRequirement(config: ChainForkConfig, effectiveBalances: number[]): number {
|
|
140
|
-
if (effectiveBalances.length === 0) {
|
|
141
|
-
return config.CUSTODY_REQUIREMENT;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
const totalNodeEffectiveBalance = effectiveBalances.reduce((total, effectiveBalance) => {
|
|
145
|
-
return total + effectiveBalance;
|
|
146
|
-
}, 0);
|
|
147
|
-
|
|
148
|
-
// Must custody one group for every BALANCE_PER_ADDITIONAL_CUSTODY_GROUP of effective balance
|
|
149
|
-
let validatorsCustodyRequirement = Math.floor(
|
|
150
|
-
totalNodeEffectiveBalance / config.BALANCE_PER_ADDITIONAL_CUSTODY_GROUP
|
|
151
|
-
);
|
|
152
|
-
|
|
153
|
-
// Any node with at least 1 validator must custody at least VALIDATOR_CUSTODY_REQUIREMENT
|
|
154
|
-
validatorsCustodyRequirement = Math.max(validatorsCustodyRequirement, config.VALIDATOR_CUSTODY_REQUIREMENT);
|
|
155
|
-
|
|
156
|
-
// Cannot custody more than NUMBER_OF_CUSTODY_GROUPS
|
|
157
|
-
validatorsCustodyRequirement = Math.min(validatorsCustodyRequirement, config.NUMBER_OF_CUSTODY_GROUPS);
|
|
158
|
-
|
|
159
|
-
return validatorsCustodyRequirement;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Converts a custody group to an array of column indices. Should be 1-1 as long there are 128
|
|
164
|
-
* columns and 128 custody groups.
|
|
165
|
-
*
|
|
166
|
-
* SPEC FUNCTION
|
|
167
|
-
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#compute_columns_for_custody_group
|
|
168
|
-
*/
|
|
169
|
-
export function computeColumnsForCustodyGroup(config: ChainForkConfig, custodyIndex: CustodyIndex): ColumnIndex[] {
|
|
170
|
-
if (custodyIndex >= config.NUMBER_OF_CUSTODY_GROUPS) {
|
|
171
|
-
throw Error(`Invalid custody index ${custodyIndex} >= ${config.NUMBER_OF_CUSTODY_GROUPS}`);
|
|
172
|
-
}
|
|
173
|
-
const columnsPerCustodyGroup = Number(NUMBER_OF_COLUMNS / config.NUMBER_OF_CUSTODY_GROUPS);
|
|
174
|
-
const columnIndexes = [];
|
|
175
|
-
for (let i = 0; i < columnsPerCustodyGroup; i++) {
|
|
176
|
-
columnIndexes.push(config.NUMBER_OF_CUSTODY_GROUPS * i + custodyIndex);
|
|
177
|
-
}
|
|
178
|
-
columnIndexes.sort((a, b) => a - b);
|
|
179
|
-
return columnIndexes;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Converts nodeId and a the number of custody groups to an array of custody indices. Indexes must be
|
|
184
|
-
* further converted to column indices
|
|
185
|
-
*
|
|
186
|
-
* SPEC FUNCTION
|
|
187
|
-
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#get_custody_groups
|
|
188
|
-
*/
|
|
189
|
-
export function getCustodyGroups(config: ChainForkConfig, nodeId: NodeId, custodyGroupCount: number): CustodyIndex[] {
|
|
190
|
-
if (custodyGroupCount > config.NUMBER_OF_CUSTODY_GROUPS) {
|
|
191
|
-
throw Error(`Invalid custody group count ${custodyGroupCount} > ${config.NUMBER_OF_CUSTODY_GROUPS}`);
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
// Skip computation if all groups are custodied
|
|
195
|
-
if (custodyGroupCount === config.NUMBER_OF_CUSTODY_GROUPS) {
|
|
196
|
-
return Array.from({length: config.NUMBER_OF_CUSTODY_GROUPS}, (_, i) => i);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
const custodyGroups: CustodyIndex[] = [];
|
|
200
|
-
// nodeId is in bigendian and all computes are in little endian
|
|
201
|
-
let currentId = bytesToBigInt(nodeId, "be");
|
|
202
|
-
while (custodyGroups.length < custodyGroupCount) {
|
|
203
|
-
// could be optimized
|
|
204
|
-
const currentIdBytes = ssz.UintBn256.serialize(currentId);
|
|
205
|
-
const custodyGroup = Number(
|
|
206
|
-
ssz.UintBn64.deserialize(digest(currentIdBytes).slice(0, 8)) % BigInt(config.NUMBER_OF_CUSTODY_GROUPS)
|
|
207
|
-
);
|
|
208
|
-
|
|
209
|
-
if (!custodyGroups.includes(custodyGroup)) {
|
|
210
|
-
custodyGroups.push(custodyGroup);
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
const willOverflow = currentIdBytes.reduce((acc, elem) => acc && elem === 0xff, true);
|
|
214
|
-
if (willOverflow) {
|
|
215
|
-
currentId = BigInt(0);
|
|
216
|
-
} else {
|
|
217
|
-
currentId++;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
custodyGroups.sort((a, b) => a - b);
|
|
222
|
-
return custodyGroups;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
export function computePostFuluKzgCommitmentsInclusionProof(
|
|
226
|
-
fork: ForkName,
|
|
227
|
-
body: BeaconBlockBody
|
|
228
|
-
): fulu.KzgCommitmentsInclusionProof {
|
|
229
|
-
const bodyView = (ssz[fork].BeaconBlockBody as SSZTypesFor<ForkAll, "BeaconBlockBody">).toView(body);
|
|
230
|
-
return new Tree(bodyView.node).getSingleProof(BigInt(KZG_COMMITMENTS_GINDEX));
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
export function getDataColumns(config: ChainForkConfig, nodeId: NodeId, custodyGroupCount: number): ColumnIndex[] {
|
|
234
|
-
return getCustodyGroups(config, nodeId, custodyGroupCount)
|
|
235
|
-
.flatMap((custodyIndex) => computeColumnsForCustodyGroup(config, custodyIndex))
|
|
236
|
-
.sort((a, b) => a - b);
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* Computes the cells for each blob and combines them with cell proofs.
|
|
241
|
-
* Similar to the computeMatrix function described below.
|
|
242
|
-
*
|
|
243
|
-
* SPEC FUNCTION (note: spec currently computes proofs, but we already have them)
|
|
244
|
-
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#compute_matrix
|
|
245
|
-
*/
|
|
246
|
-
export async function getCellsAndProofs(
|
|
247
|
-
blobBundles: fulu.BlobAndProofV2[]
|
|
248
|
-
): Promise<{cells: Uint8Array[]; proofs: Uint8Array[]}[]> {
|
|
249
|
-
const blobsAndProofs: {cells: Uint8Array[]; proofs: Uint8Array[]}[] = [];
|
|
250
|
-
for (const {blob, proofs} of blobBundles) {
|
|
251
|
-
const cells = await kzg.asyncComputeCells(blob);
|
|
252
|
-
blobsAndProofs.push({cells, proofs});
|
|
253
|
-
}
|
|
254
|
-
return blobsAndProofs;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* Given a signed block header and the commitments, inclusion proof, cells/proofs associated with
|
|
259
|
-
* each blob in the block, assemble the sidecars which can be distributed to peers.
|
|
260
|
-
*
|
|
261
|
-
* SPEC FUNCTION
|
|
262
|
-
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/validator.md#get_data_column_sidecars
|
|
263
|
-
*/
|
|
264
|
-
export function getDataColumnSidecars(
|
|
265
|
-
signedBlockHeader: SignedBeaconBlockHeader,
|
|
266
|
-
kzgCommitments: deneb.KZGCommitment[],
|
|
267
|
-
kzgCommitmentsInclusionProof: fulu.KzgCommitmentsInclusionProof,
|
|
268
|
-
cellsAndKzgProofs: {cells: Uint8Array[]; proofs: Uint8Array[]}[]
|
|
269
|
-
): fulu.DataColumnSidecars {
|
|
270
|
-
if (cellsAndKzgProofs.length !== kzgCommitments.length) {
|
|
271
|
-
throw Error("Invalid cellsAndKzgProofs length for getDataColumnSidecars");
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
const sidecars: fulu.DataColumnSidecars = [];
|
|
275
|
-
for (let columnIndex = 0; columnIndex < NUMBER_OF_COLUMNS; columnIndex++) {
|
|
276
|
-
const columnCells = [];
|
|
277
|
-
const columnProofs = [];
|
|
278
|
-
for (const {cells, proofs} of cellsAndKzgProofs) {
|
|
279
|
-
columnCells.push(cells[columnIndex]);
|
|
280
|
-
columnProofs.push(proofs[columnIndex]);
|
|
281
|
-
}
|
|
282
|
-
sidecars.push({
|
|
283
|
-
index: columnIndex,
|
|
284
|
-
column: columnCells,
|
|
285
|
-
kzgCommitments,
|
|
286
|
-
kzgProofs: columnProofs,
|
|
287
|
-
signedBlockHeader,
|
|
288
|
-
kzgCommitmentsInclusionProof,
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
return sidecars;
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* Given a signed block and the cells/proofs associated with each blob in the
|
|
296
|
-
* block, assemble the sidecars which can be distributed to peers.
|
|
297
|
-
*
|
|
298
|
-
* SPEC FUNCTION
|
|
299
|
-
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/validator.md#get_data_column_sidecars_from_block
|
|
300
|
-
*/
|
|
301
|
-
export function getDataColumnSidecarsFromBlock(
|
|
302
|
-
config: ChainForkConfig,
|
|
303
|
-
signedBlock: SignedBeaconBlock<ForkPostFulu>,
|
|
304
|
-
cellsAndKzgProofs: {cells: Uint8Array[]; proofs: Uint8Array[]}[]
|
|
305
|
-
): fulu.DataColumnSidecars {
|
|
306
|
-
const blobKzgCommitments = signedBlock.message.body.blobKzgCommitments;
|
|
307
|
-
|
|
308
|
-
// No need to create data column sidecars if there are no blobs
|
|
309
|
-
if (blobKzgCommitments.length === 0) {
|
|
310
|
-
return [];
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
const fork = config.getForkName(signedBlock.message.slot);
|
|
314
|
-
const signedBlockHeader = signedBlockToSignedHeader(config, signedBlock);
|
|
315
|
-
|
|
316
|
-
const kzgCommitmentsInclusionProof = computePostFuluKzgCommitmentsInclusionProof(fork, signedBlock.message.body);
|
|
317
|
-
|
|
318
|
-
return getDataColumnSidecars(signedBlockHeader, blobKzgCommitments, kzgCommitmentsInclusionProof, cellsAndKzgProofs);
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
/**
|
|
322
|
-
* Given a DataColumnSidecar and the cells/proofs associated with each blob corresponding
|
|
323
|
-
* to the commitments it contains, assemble all sidecars for distribution to peers.
|
|
324
|
-
*
|
|
325
|
-
* SPEC FUNCTION
|
|
326
|
-
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/validator.md#get_data_column_sidecars_from_column_sidecar
|
|
327
|
-
*/
|
|
328
|
-
export function getDataColumnSidecarsFromColumnSidecar(
|
|
329
|
-
sidecar: fulu.DataColumnSidecar,
|
|
330
|
-
cellsAndKzgProofs: {cells: Uint8Array[]; proofs: Uint8Array[]}[]
|
|
331
|
-
): fulu.DataColumnSidecars {
|
|
332
|
-
return getDataColumnSidecars(
|
|
333
|
-
sidecar.signedBlockHeader,
|
|
334
|
-
sidecar.kzgCommitments,
|
|
335
|
-
sidecar.kzgCommitmentsInclusionProof,
|
|
336
|
-
cellsAndKzgProofs
|
|
337
|
-
);
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
/**
|
|
341
|
-
* If we receive more than half of NUMBER_OF_COLUMNS (64) we should recover all remaining columns
|
|
342
|
-
*/
|
|
343
|
-
export async function recoverDataColumnSidecars(
|
|
344
|
-
blockInput: BlockInputColumns,
|
|
345
|
-
emitter: ChainEventEmitter,
|
|
346
|
-
metrics: Metrics | null
|
|
347
|
-
): Promise<DataColumnReconstructionCode> {
|
|
348
|
-
const existingColumns = blockInput.getAllColumns();
|
|
349
|
-
const columnCount = existingColumns.length;
|
|
350
|
-
if (columnCount >= NUMBER_OF_COLUMNS) {
|
|
351
|
-
// We have all columns
|
|
352
|
-
return DataColumnReconstructionCode.NotAttemptedAlreadyFull;
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
if (columnCount < NUMBER_OF_COLUMNS / 2) {
|
|
356
|
-
// We don't have enough columns to recover
|
|
357
|
-
return DataColumnReconstructionCode.NotAttemptedHaveLessThanHalf;
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
metrics?.recoverDataColumnSidecars.custodyBeforeReconstruction.set(columnCount);
|
|
361
|
-
const partialSidecars = new Map<number, fulu.DataColumnSidecar>();
|
|
362
|
-
for (const columnSidecar of existingColumns) {
|
|
363
|
-
// the more columns we put, the slower the recover
|
|
364
|
-
if (partialSidecars.size >= NUMBER_OF_COLUMNS / 2) {
|
|
365
|
-
break;
|
|
366
|
-
}
|
|
367
|
-
partialSidecars.set(columnSidecar.index, columnSidecar);
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
const timer = metrics?.recoverDataColumnSidecars.recoverTime.startTimer();
|
|
371
|
-
// if this function throws, we catch at the consumer side
|
|
372
|
-
const fullSidecars = await dataColumnMatrixRecovery(partialSidecars).catch(() => null);
|
|
373
|
-
timer?.();
|
|
374
|
-
if (fullSidecars == null) {
|
|
375
|
-
return DataColumnReconstructionCode.NullReturned;
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
if (blockInput.getAllColumns().length === NUMBER_OF_COLUMNS) {
|
|
379
|
-
// either gossip or getBlobsV2 resolved availability while we were recovering
|
|
380
|
-
return DataColumnReconstructionCode.SuccessLate;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
// Once the node obtains a column through reconstruction,
|
|
384
|
-
// the node MUST expose the new column as if it had received it over the network.
|
|
385
|
-
// If the node is subscribed to the subnet corresponding to the column,
|
|
386
|
-
// it MUST send the reconstructed DataColumnSidecar to its topic mesh neighbors.
|
|
387
|
-
// If instead the node is not subscribed to the corresponding subnet,
|
|
388
|
-
// it SHOULD still expose the availability of the DataColumnSidecar as part of the gossip emission process.
|
|
389
|
-
// After exposing the reconstructed DataColumnSidecar to the network,
|
|
390
|
-
// the node MAY delete the DataColumnSidecar if it is not part of the node's custody requirement.
|
|
391
|
-
const sidecarsToPublish = [];
|
|
392
|
-
for (const columnSidecar of fullSidecars) {
|
|
393
|
-
if (!blockInput.hasColumn(columnSidecar.index)) {
|
|
394
|
-
blockInput.addColumn({
|
|
395
|
-
blockRootHex: blockInput.blockRootHex,
|
|
396
|
-
columnSidecar,
|
|
397
|
-
seenTimestampSec: Date.now() / 1000,
|
|
398
|
-
source: BlockInputSource.recovery,
|
|
399
|
-
});
|
|
400
|
-
sidecarsToPublish.push(columnSidecar);
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
emitter.emit(ChainEvent.publishDataColumns, sidecarsToPublish);
|
|
404
|
-
|
|
405
|
-
return DataColumnReconstructionCode.SuccessResolved;
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
export enum DataColumnReconstructionCode {
|
|
409
|
-
NotAttemptedAlreadyFull = "not_attempted_full",
|
|
410
|
-
NotAttemptedHaveLessThanHalf = "not_attempted_less_than_half",
|
|
411
|
-
NullReturned = "null_returned",
|
|
412
|
-
SuccessLate = "success_late",
|
|
413
|
-
SuccessResolved = "success_resolved",
|
|
414
|
-
Failed = "failed",
|
|
415
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import {EpochDifference, IForkChoice, ProtoBlock} from "@lodestar/fork-choice";
|
|
2
|
-
import {Epoch, RootHex} from "@lodestar/types";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Get dependent root of a shuffling given attestation epoch and head block.
|
|
6
|
-
*/
|
|
7
|
-
export function getShufflingDependentRoot(
|
|
8
|
-
forkChoice: IForkChoice,
|
|
9
|
-
attEpoch: Epoch,
|
|
10
|
-
blockEpoch: Epoch,
|
|
11
|
-
attHeadBlock: ProtoBlock
|
|
12
|
-
): RootHex {
|
|
13
|
-
let shufflingDependentRoot: RootHex;
|
|
14
|
-
if (blockEpoch === attEpoch) {
|
|
15
|
-
// current shuffling, this is equivalent to `headState.currentShuffling`
|
|
16
|
-
// given blockEpoch = attEpoch = n
|
|
17
|
-
// epoch: (n-2) (n-1) n (n+1)
|
|
18
|
-
// |-------|-------|-------|-------|
|
|
19
|
-
// attHeadBlock ------------------------^
|
|
20
|
-
// shufflingDependentRoot ------^
|
|
21
|
-
shufflingDependentRoot = forkChoice.getDependentRoot(attHeadBlock, EpochDifference.previous);
|
|
22
|
-
} else if (blockEpoch === attEpoch - 1) {
|
|
23
|
-
// next shuffling, this is equivalent to `headState.nextShuffling`
|
|
24
|
-
// given blockEpoch = n-1, attEpoch = n
|
|
25
|
-
// epoch: (n-2) (n-1) n (n+1)
|
|
26
|
-
// |-------|-------|-------|-------|
|
|
27
|
-
// attHeadBlock -------------------^
|
|
28
|
-
// shufflingDependentRoot ------^
|
|
29
|
-
shufflingDependentRoot = forkChoice.getDependentRoot(attHeadBlock, EpochDifference.current);
|
|
30
|
-
} else if (blockEpoch < attEpoch - 1) {
|
|
31
|
-
// this never happens with default chain option of maxSkipSlots = 32, however we still need to handle it
|
|
32
|
-
// check the verifyHeadBlockAndTargetRoot() function above
|
|
33
|
-
// given blockEpoch = n-2, attEpoch = n
|
|
34
|
-
// epoch: (n-2) (n-1) n (n+1)
|
|
35
|
-
// |-------|-------|-------|-------|
|
|
36
|
-
// attHeadBlock -----------^
|
|
37
|
-
// shufflingDependentRoot -----^
|
|
38
|
-
shufflingDependentRoot = attHeadBlock.blockRoot;
|
|
39
|
-
// use lodestar_gossip_attestation_head_slot_to_attestation_slot metric to track this case
|
|
40
|
-
} else {
|
|
41
|
-
// blockEpoch > attEpoch
|
|
42
|
-
// should not happen, handled in verifyAttestationTargetRoot
|
|
43
|
-
throw Error(`attestation epoch ${attEpoch} is before head block epoch ${blockEpoch}`);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return shufflingDependentRoot;
|
|
47
|
-
}
|
package/src/util/enum.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Given an enum
|
|
3
|
-
* ```ts
|
|
4
|
-
* enum A {
|
|
5
|
-
* a = "a",
|
|
6
|
-
* b = "b"
|
|
7
|
-
* }
|
|
8
|
-
* ```
|
|
9
|
-
* returns
|
|
10
|
-
* ```ts
|
|
11
|
-
* { a: 0,
|
|
12
|
-
* b: 1 }
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
export function enumToIndexMap<T>(enumVar: T): Record<keyof T, number> {
|
|
16
|
-
return Object.fromEntries(Object.keys(enumVar as object).map((key, i) => [key, i])) as Record<keyof T, number>;
|
|
17
|
-
}
|
package/src/util/error.ts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import {REQUEST_ERROR_CLASS_NAME, RESPONSE_ERROR_CLASS_NAME, RequestError, ResponseError} from "@lodestar/reqresp";
|
|
2
|
-
import {FromObjectFn, LodestarError, LodestarErrorObject} from "@lodestar/utils";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Error that can be passed across thread boundaries
|
|
6
|
-
*/
|
|
7
|
-
export type ThreadBoundaryError = {error: null; object: LodestarErrorObject} | {error: Error; object: null};
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Structured clone does not work with Error objects.
|
|
11
|
-
* For LodestarError, we want to specify the LodestarErrorObject with className so that we can deserialize later.
|
|
12
|
-
*/
|
|
13
|
-
export function toThreadBoundaryError(error: Error): ThreadBoundaryError {
|
|
14
|
-
if (error instanceof LodestarError) {
|
|
15
|
-
return {error: null, object: error.toObject()};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// note that non-clonable errors will be deserialized as a generic Error object
|
|
19
|
-
return {error, object: null};
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Only RequestError and ResponseError pass through thread boundaries.
|
|
24
|
-
* If we pass more errors in the future through thread boundaries, we need to add them here.
|
|
25
|
-
*/
|
|
26
|
-
const fromObjectFnRegistry = new Map<string, FromObjectFn>([
|
|
27
|
-
[RESPONSE_ERROR_CLASS_NAME, ResponseError.fromObject],
|
|
28
|
-
[REQUEST_ERROR_CLASS_NAME, RequestError.fromObject],
|
|
29
|
-
]);
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* If error is LodestarError, deserialize it from the LodestarErrorObject.
|
|
33
|
-
* Else use the generic Error object.
|
|
34
|
-
*/
|
|
35
|
-
export function fromThreadBoundaryError(error: ThreadBoundaryError): Error {
|
|
36
|
-
if (error.error) {
|
|
37
|
-
// this is always a generic Error object
|
|
38
|
-
return error.error;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
let clonedError: Error;
|
|
42
|
-
const fromObjectFn = fromObjectFnRegistry.get(error.object.className);
|
|
43
|
-
if (fromObjectFn) {
|
|
44
|
-
clonedError = fromObjectFn(error.object);
|
|
45
|
-
} else {
|
|
46
|
-
// should not happen as a LodestarError class should implement "fromObject" method and register it
|
|
47
|
-
// try our best to clone the error with the same stack trace
|
|
48
|
-
clonedError = new LodestarError(
|
|
49
|
-
{code: "UNKNOWN_ERROR_CLASS"},
|
|
50
|
-
`Unknown error class ${error.object.className}`,
|
|
51
|
-
error.object.stack
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return clonedError;
|
|
56
|
-
}
|
package/src/util/eventLoop.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import {sleep} from "@lodestar/utils";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Schedules in 1ms a Promise to be resolved during the `timers` phase.
|
|
5
|
-
* Awaiting this Promise will force the whole event queue to be executed.
|
|
6
|
-
*
|
|
7
|
-
* Caution: as the execution of the event queue might lead to new enqueuing, this might take significant time.
|
|
8
|
-
*/
|
|
9
|
-
export function nextEventLoop(): Promise<void> {
|
|
10
|
-
// `setTimeout` delay is at least 1ms
|
|
11
|
-
// Say https://nodejs.org/api/timers.html#settimeoutcallback-delay-args
|
|
12
|
-
return sleep(0);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Schedules in 1ms a callback for execution during the next `timers` phase.
|
|
17
|
-
*/
|
|
18
|
-
export function callInNextEventLoop(callback: () => void): void {
|
|
19
|
-
// `setTimeout` delay is at least 1ms
|
|
20
|
-
// Say https://nodejs.org/api/timers.html#settimeoutcallback-delay-args
|
|
21
|
-
setTimeout(callback, 0);
|
|
22
|
-
}
|