@lodestar/beacon-node 1.34.1 → 1.35.0-dev.092cc3954a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/impl/beacon/blocks/index.js +71 -53
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/pool/index.js +3 -3
- package/lib/api/impl/beacon/pool/index.js.map +1 -1
- package/lib/api/impl/debug/index.js +20 -9
- package/lib/api/impl/debug/index.js.map +1 -1
- package/lib/api/impl/errors.js +2 -0
- package/lib/api/impl/errors.js.map +1 -1
- package/lib/api/impl/index.d.ts +3 -3
- package/lib/api/impl/index.js +3 -3
- package/lib/api/impl/index.js.map +1 -1
- package/lib/api/impl/lodestar/index.js +1 -1
- package/lib/api/impl/lodestar/index.js.map +1 -1
- package/lib/api/impl/validator/index.js +2 -1
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/api/rest/activeSockets.js +3 -2
- package/lib/api/rest/activeSockets.js.map +1 -1
- package/lib/api/rest/base.d.ts +1 -1
- package/lib/api/rest/base.js +6 -2
- package/lib/api/rest/base.js.map +1 -1
- package/lib/api/rest/index.js +2 -0
- package/lib/api/rest/index.js.map +1 -1
- package/lib/api/rest/swaggerUI.js +4 -2
- package/lib/api/rest/swaggerUI.js.map +1 -1
- package/lib/bun-wrappers/prometheus-gc-stats.d.ts +2 -0
- package/lib/bun-wrappers/prometheus-gc-stats.js +8 -0
- package/lib/bun-wrappers/prometheus-gc-stats.js.map +1 -0
- package/lib/chain/ColumnReconstructionTracker.d.ts +32 -0
- package/lib/chain/ColumnReconstructionTracker.js +71 -0
- package/lib/chain/ColumnReconstructionTracker.js.map +1 -0
- package/lib/chain/GetBlobsTracker.d.ts +31 -0
- package/lib/chain/GetBlobsTracker.js +82 -0
- package/lib/chain/GetBlobsTracker.js.map +1 -0
- package/lib/chain/archiveStore/archiveStore.js +49 -38
- package/lib/chain/archiveStore/archiveStore.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +2 -0
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
- package/lib/chain/archiveStore/index.d.ts +1 -1
- package/lib/chain/archiveStore/index.js +1 -1
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +5 -0
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.js +14 -7
- package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
- package/lib/chain/balancesCache.js +1 -3
- package/lib/chain/balancesCache.js.map +1 -1
- package/lib/chain/beaconProposerCache.js +1 -0
- package/lib/chain/beaconProposerCache.js.map +1 -1
- package/lib/chain/blocks/blockInput/blockInput.d.ts +19 -7
- package/lib/chain/blocks/blockInput/blockInput.js +132 -88
- package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
- package/lib/chain/blocks/blockInput/index.d.ts +1 -1
- package/lib/chain/blocks/blockInput/index.js +1 -1
- package/lib/chain/blocks/blockInput/types.d.ts +19 -10
- package/lib/chain/blocks/blockInput/types.js +1 -0
- package/lib/chain/blocks/blockInput/types.js.map +1 -1
- package/lib/chain/blocks/blockInput/utils.d.ts +0 -4
- package/lib/chain/blocks/blockInput/utils.js +6 -29
- package/lib/chain/blocks/blockInput/utils.js.map +1 -1
- package/lib/chain/blocks/importBlock.js +36 -32
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/index.d.ts +6 -5
- package/lib/chain/blocks/index.js +5 -4
- package/lib/chain/blocks/index.js.map +1 -1
- package/lib/chain/blocks/types.d.ts +3 -108
- package/lib/chain/blocks/types.js +0 -119
- package/lib/chain/blocks/types.js.map +1 -1
- package/lib/chain/blocks/utils/chainSegment.d.ts +2 -2
- package/lib/chain/blocks/utils/chainSegment.js +2 -2
- package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
- package/lib/chain/blocks/verifyBlock.d.ts +3 -3
- package/lib/chain/blocks/verifyBlock.js +15 -14
- package/lib/chain/blocks/verifyBlock.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts +7 -22
- package/lib/chain/blocks/verifyBlocksDataAvailability.js +18 -110
- package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +4 -3
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +24 -22
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts +4 -3
- package/lib/chain/blocks/verifyBlocksSanityChecks.js +2 -2
- package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +3 -2
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +2 -2
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.d.ts +3 -3
- package/lib/chain/blocks/writeBlockInputToDb.js +61 -63
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/bls/multithread/index.js +167 -163
- package/lib/chain/bls/multithread/index.js.map +1 -1
- package/lib/chain/bls/singleThread.js +1 -0
- package/lib/chain/bls/singleThread.js.map +1 -1
- package/lib/chain/chain.d.ts +13 -11
- package/lib/chain/chain.js +79 -20
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +43 -2
- package/lib/chain/emitter.js +18 -0
- package/lib/chain/emitter.js.map +1 -1
- package/lib/chain/errors/blobSidecarError.d.ts +24 -0
- package/lib/chain/errors/blobSidecarError.js +10 -0
- package/lib/chain/errors/blobSidecarError.js.map +1 -1
- package/lib/chain/errors/blockError.js +1 -0
- package/lib/chain/errors/blockError.js.map +1 -1
- package/lib/chain/errors/dataColumnSidecarError.d.ts +42 -0
- package/lib/chain/errors/dataColumnSidecarError.js +14 -0
- package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
- package/lib/chain/errors/gossipValidation.js +1 -0
- package/lib/chain/errors/gossipValidation.js.map +1 -1
- package/lib/chain/errors/index.d.ts +2 -2
- package/lib/chain/errors/index.js +2 -2
- package/lib/chain/errors/index.js.map +1 -1
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/genesis/genesis.js +16 -5
- package/lib/chain/genesis/genesis.js.map +1 -1
- package/lib/chain/index.d.ts +2 -2
- package/lib/chain/index.js +2 -2
- package/lib/chain/index.js.map +1 -1
- package/lib/chain/interface.d.ts +13 -9
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/lightClient/index.js +16 -9
- package/lib/chain/lightClient/index.js.map +1 -1
- package/lib/chain/lightClient/proofs.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +14 -9
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/opPools/attestationPool.js +8 -3
- package/lib/chain/opPools/attestationPool.js.map +1 -1
- package/lib/chain/opPools/index.d.ts +1 -1
- package/lib/chain/opPools/index.js +1 -1
- package/lib/chain/opPools/index.js.map +1 -1
- package/lib/chain/opPools/opPool.js +10 -12
- package/lib/chain/opPools/opPool.js.map +1 -1
- package/lib/chain/opPools/syncCommitteeMessagePool.js +9 -6
- package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
- package/lib/chain/opPools/syncContributionAndProofPool.js +5 -2
- package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
- package/lib/chain/options.js +1 -1
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/prepareNextSlot.js +141 -134
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +3 -10
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/regen/errors.js +1 -0
- package/lib/chain/regen/errors.js.map +1 -1
- package/lib/chain/regen/index.d.ts +1 -1
- package/lib/chain/regen/index.js +1 -1
- package/lib/chain/regen/index.js.map +1 -1
- package/lib/chain/regen/queued.js +35 -28
- package/lib/chain/regen/queued.js.map +1 -1
- package/lib/chain/regen/regen.js +1 -0
- package/lib/chain/regen/regen.js.map +1 -1
- package/lib/chain/reprocess.js +3 -1
- package/lib/chain/reprocess.js.map +1 -1
- package/lib/chain/seenCache/index.d.ts +1 -1
- package/lib/chain/seenCache/index.js +1 -1
- package/lib/chain/seenCache/index.js.map +1 -1
- package/lib/chain/seenCache/seenAggregateAndProof.js +7 -6
- package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
- package/lib/chain/seenCache/seenAttestationData.js +5 -2
- package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
- package/lib/chain/seenCache/seenAttesters.js +2 -4
- package/lib/chain/seenCache/seenAttesters.js.map +1 -1
- package/lib/chain/seenCache/seenBlockProposers.js +2 -4
- package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
- package/lib/chain/seenCache/seenCommittee.js +1 -3
- package/lib/chain/seenCache/seenCommittee.js.map +1 -1
- package/lib/chain/seenCache/seenCommitteeContribution.js +3 -2
- package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.d.ts +74 -78
- package/lib/chain/seenCache/seenGossipBlockInput.js +235 -369
- package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
- package/lib/chain/shufflingCache.js +5 -2
- package/lib/chain/shufflingCache.js.map +1 -1
- package/lib/chain/stateCache/blockStateCacheImpl.js +13 -7
- package/lib/chain/stateCache/blockStateCacheImpl.js.map +1 -1
- package/lib/chain/stateCache/datastore/db.js +1 -0
- package/lib/chain/stateCache/datastore/db.js.map +1 -1
- package/lib/chain/stateCache/datastore/file.js +1 -0
- package/lib/chain/stateCache/datastore/file.js.map +1 -1
- package/lib/chain/stateCache/datastore/index.d.ts +1 -1
- package/lib/chain/stateCache/datastore/index.js +1 -1
- package/lib/chain/stateCache/datastore/index.js.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.js +10 -0
- package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
- package/lib/chain/stateCache/inMemoryCheckpointsCache.js +10 -4
- package/lib/chain/stateCache/inMemoryCheckpointsCache.js.map +1 -1
- package/lib/chain/stateCache/index.d.ts +1 -1
- package/lib/chain/stateCache/index.js +1 -1
- package/lib/chain/stateCache/index.js.map +1 -1
- package/lib/chain/stateCache/mapMetrics.js +4 -4
- package/lib/chain/stateCache/mapMetrics.js.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.js +14 -6
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/validation/blobSidecar.d.ts +8 -3
- package/lib/chain/validation/blobSidecar.js +73 -31
- package/lib/chain/validation/blobSidecar.js.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts +7 -9
- package/lib/chain/validation/dataColumnSidecar.js +95 -57
- package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
- package/lib/chain/validation/index.d.ts +1 -1
- package/lib/chain/validation/index.js +1 -1
- package/lib/chain/validation/index.js.map +1 -1
- package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +1 -2
- package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
- package/lib/chain/validatorMonitor.d.ts +1 -3
- package/lib/chain/validatorMonitor.js +2 -1
- package/lib/chain/validatorMonitor.js.map +1 -1
- package/lib/db/beacon.js +24 -0
- package/lib/db/beacon.js.map +1 -1
- package/lib/db/index.d.ts +1 -1
- package/lib/db/index.js.map +1 -1
- package/lib/db/repositories/blobSidecars.js.map +1 -1
- package/lib/db/repositories/blockArchive.js +4 -5
- package/lib/db/repositories/blockArchive.js.map +1 -1
- package/lib/db/repositories/blockArchiveIndex.d.ts +4 -0
- package/lib/db/repositories/blockArchiveIndex.js +13 -5
- package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
- package/lib/db/repositories/dataColumnSidecar.js +8 -7
- package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
- package/lib/db/repositories/dataColumnSidecarArchive.js +17 -7
- package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
- package/lib/db/repositories/depositDataRoot.js +1 -0
- package/lib/db/repositories/depositDataRoot.js.map +1 -1
- package/lib/db/repositories/index.d.ts +10 -10
- package/lib/db/repositories/index.js +9 -9
- package/lib/db/repositories/index.js.map +1 -1
- package/lib/db/repositories/stateArchive.js +3 -2
- package/lib/db/repositories/stateArchive.js.map +1 -1
- package/lib/db/repositories/stateArchiveIndex.d.ts +1 -0
- package/lib/db/repositories/stateArchiveIndex.js +6 -2
- package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
- package/lib/db/single/preGenesisState.d.ts +1 -0
- package/lib/db/single/preGenesisState.js +11 -4
- package/lib/db/single/preGenesisState.js.map +1 -1
- package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts +1 -0
- package/lib/db/single/preGenesisStateLastProcessedBlock.js +10 -4
- package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +1 -1
- package/lib/eth1/eth1DataCache.js +2 -0
- package/lib/eth1/eth1DataCache.js.map +1 -1
- package/lib/eth1/eth1DepositDataTracker.js +18 -5
- package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
- package/lib/eth1/eth1DepositsCache.js +3 -0
- package/lib/eth1/eth1DepositsCache.js.map +1 -1
- package/lib/eth1/eth1MergeBlockTracker.js +10 -4
- package/lib/eth1/eth1MergeBlockTracker.js.map +1 -1
- package/lib/eth1/index.js +2 -0
- package/lib/eth1/index.js.map +1 -1
- package/lib/eth1/provider/eth1Provider.d.ts +1 -2
- package/lib/eth1/provider/eth1Provider.js +6 -2
- package/lib/eth1/provider/eth1Provider.js.map +1 -1
- package/lib/eth1/provider/jsonRpcHttpClient.d.ts +1 -1
- package/lib/eth1/provider/jsonRpcHttpClient.js +16 -2
- package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
- package/lib/eth1/provider/jwt.js.map +1 -1
- package/lib/eth1/provider/utils.d.ts +5 -0
- package/lib/eth1/provider/utils.js +9 -1
- package/lib/eth1/provider/utils.js.map +1 -1
- package/lib/eth1/utils/deposits.js.map +1 -1
- package/lib/execution/builder/cache.js +6 -0
- package/lib/execution/builder/cache.js.map +1 -1
- package/lib/execution/builder/http.js +14 -8
- package/lib/execution/builder/http.js.map +1 -1
- package/lib/execution/builder/index.js.map +1 -1
- package/lib/execution/engine/disabled.js +2 -4
- package/lib/execution/engine/disabled.js.map +1 -1
- package/lib/execution/engine/http.d.ts +2 -2
- package/lib/execution/engine/http.js +43 -11
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +2 -2
- package/lib/execution/engine/interface.js.map +1 -1
- package/lib/execution/engine/mock.d.ts +1 -0
- package/lib/execution/engine/mock.js +16 -12
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/payloadIdCache.js +1 -3
- package/lib/execution/engine/payloadIdCache.js.map +1 -1
- package/lib/execution/engine/types.d.ts +5 -1
- package/lib/execution/engine/types.js +37 -8
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/execution/engine/utils.js +3 -3
- package/lib/execution/engine/utils.js.map +1 -1
- package/lib/execution/index.d.ts +2 -2
- package/lib/execution/index.js +2 -2
- package/lib/execution/index.js.map +1 -1
- package/lib/index.d.ts +6 -6
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib/metrics/index.d.ts +1 -1
- package/lib/metrics/index.js +1 -1
- package/lib/metrics/index.js.map +1 -1
- package/lib/metrics/metrics/beacon.d.ts +11 -5
- package/lib/metrics/metrics/beacon.js +40 -20
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +55 -13
- package/lib/metrics/metrics/lodestar.js +85 -8
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/metrics/metrics.d.ts +1 -1
- package/lib/metrics/metrics.js.map +1 -1
- package/lib/metrics/nodeJsMetrics.js +1 -1
- package/lib/metrics/nodeJsMetrics.js.map +1 -1
- package/lib/metrics/server/http.d.ts +1 -1
- package/lib/metrics/utils/avgMinMax.d.ts +1 -1
- package/lib/metrics/utils/avgMinMax.js +10 -6
- package/lib/metrics/utils/avgMinMax.js.map +1 -1
- package/lib/metrics/utils/gauge.d.ts +1 -1
- package/lib/metrics/utils/gauge.js +1 -4
- package/lib/metrics/utils/gauge.js.map +1 -1
- package/lib/metrics/utils/registryMetricCreator.d.ts +1 -1
- package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
- package/lib/monitoring/properties.js +4 -0
- package/lib/monitoring/properties.js.map +1 -1
- package/lib/monitoring/service.js +13 -1
- package/lib/monitoring/service.js.map +1 -1
- package/lib/monitoring/system.js +25 -27
- package/lib/monitoring/system.js.map +1 -1
- package/lib/network/core/networkCore.d.ts +2 -2
- package/lib/network/core/networkCore.js +67 -50
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/core/networkCoreWorker.js +1 -1
- package/lib/network/core/networkCoreWorker.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.d.ts +2 -2
- package/lib/network/core/networkCoreWorkerHandler.js +5 -2
- package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
- package/lib/network/discv5/index.d.ts +2 -2
- package/lib/network/discv5/index.js +5 -2
- package/lib/network/discv5/index.js.map +1 -1
- package/lib/network/discv5/worker.js +3 -3
- package/lib/network/discv5/worker.js.map +1 -1
- package/lib/network/events.d.ts +2 -18
- package/lib/network/events.js +0 -7
- package/lib/network/events.js.map +1 -1
- package/lib/network/gossip/encoding.d.ts +1 -1
- package/lib/network/gossip/encoding.js +4 -2
- package/lib/network/gossip/encoding.js.map +1 -1
- package/lib/network/gossip/errors.js +1 -0
- package/lib/network/gossip/errors.js.map +1 -1
- package/lib/network/gossip/gossipsub.d.ts +1 -1
- package/lib/network/gossip/gossipsub.js +8 -1
- package/lib/network/gossip/gossipsub.js.map +1 -1
- package/lib/network/gossip/index.d.ts +2 -2
- package/lib/network/gossip/index.js +2 -2
- package/lib/network/gossip/index.js.map +1 -1
- package/lib/network/gossip/interface.d.ts +2 -2
- package/lib/network/gossip/topic.d.ts +125 -105
- package/lib/network/gossip/topic.js +2 -1
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/index.d.ts +3 -3
- package/lib/network/index.js +3 -3
- package/lib/network/index.js.map +1 -1
- package/lib/network/interface.d.ts +3 -2
- package/lib/network/libp2p/index.js +2 -2
- package/lib/network/libp2p/index.js.map +1 -1
- package/lib/network/metadata.js +4 -0
- package/lib/network/metadata.js.map +1 -1
- package/lib/network/network.d.ts +4 -2
- package/lib/network/network.js +89 -71
- package/lib/network/network.js.map +1 -1
- package/lib/network/options.js +1 -1
- package/lib/network/options.js.map +1 -1
- package/lib/network/peers/datastore.js +8 -2
- package/lib/network/peers/datastore.js.map +1 -1
- package/lib/network/peers/discover.js +75 -66
- package/lib/network/peers/discover.js.map +1 -1
- package/lib/network/peers/peerManager.js +154 -130
- package/lib/network/peers/peerManager.js.map +1 -1
- package/lib/network/peers/peersData.d.ts +1 -1
- package/lib/network/peers/peersData.js +1 -3
- package/lib/network/peers/peersData.js.map +1 -1
- package/lib/network/peers/score/index.d.ts +1 -1
- package/lib/network/peers/score/index.js +1 -1
- package/lib/network/peers/score/index.js.map +1 -1
- package/lib/network/peers/score/score.js +6 -0
- package/lib/network/peers/score/score.js.map +1 -1
- package/lib/network/peers/score/store.js +3 -0
- package/lib/network/peers/score/store.js.map +1 -1
- package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
- package/lib/network/peers/utils/subnetMap.js +2 -4
- package/lib/network/peers/utils/subnetMap.js.map +1 -1
- package/lib/network/processor/aggregatorTracker.js +1 -3
- package/lib/network/processor/aggregatorTracker.js.map +1 -1
- package/lib/network/processor/gossipHandlers.js +145 -165
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipQueues/indexed.js +11 -9
- package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
- package/lib/network/processor/gossipQueues/linear.js +9 -8
- package/lib/network/processor/gossipQueues/linear.js.map +1 -1
- package/lib/network/processor/index.d.ts +2 -1
- package/lib/network/processor/index.js +22 -8
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.d.ts +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.js +11 -2
- package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js +1 -2
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
- package/lib/network/reqresp/index.d.ts +1 -3
- package/lib/network/reqresp/index.js +1 -3
- package/lib/network/reqresp/index.js.map +1 -1
- package/lib/network/reqresp/rateLimit.js +11 -5
- package/lib/network/reqresp/rateLimit.js.map +1 -1
- package/lib/network/reqresp/utils/dataColumnResponseValidation.js +8 -4
- package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
- package/lib/network/statusCache.js +1 -0
- package/lib/network/statusCache.js.map +1 -1
- package/lib/network/subnets/attnetsService.js +73 -65
- package/lib/network/subnets/attnetsService.js.map +1 -1
- package/lib/network/subnets/interface.js +1 -1
- package/lib/network/subnets/interface.js.map +1 -1
- package/lib/network/subnets/syncnetsService.js +29 -22
- package/lib/network/subnets/syncnetsService.js.map +1 -1
- package/lib/network/subnets/util.js +1 -2
- package/lib/network/subnets/util.js.map +1 -1
- package/lib/node/nodejs.d.ts +1 -1
- package/lib/node/nodejs.js +15 -0
- package/lib/node/nodejs.js.map +1 -1
- package/lib/node/notifier.js +1 -2
- package/lib/node/notifier.js.map +1 -1
- package/lib/node/options.js.map +1 -1
- package/lib/node/utils/interop/state.js +1 -2
- package/lib/node/utils/interop/state.js.map +1 -1
- package/lib/sync/backfill/backfill.d.ts +1 -1
- package/lib/sync/backfill/backfill.js +58 -16
- package/lib/sync/backfill/backfill.js.map +1 -1
- package/lib/sync/constants.d.ts +2 -1
- package/lib/sync/constants.js +2 -1
- package/lib/sync/constants.js.map +1 -1
- package/lib/sync/interface.d.ts +1 -59
- package/lib/sync/interface.js +0 -20
- package/lib/sync/interface.js.map +1 -1
- package/lib/sync/options.d.ts +1 -1
- package/lib/sync/range/batch.d.ts +48 -32
- package/lib/sync/range/batch.js +201 -55
- package/lib/sync/range/batch.js.map +1 -1
- package/lib/sync/range/chain.d.ts +15 -10
- package/lib/sync/range/chain.js +141 -70
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.d.ts +3 -3
- package/lib/sync/range/range.js +86 -54
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/range/utils/hashBlocks.d.ts +2 -2
- package/lib/sync/range/utils/hashBlocks.js +6 -4
- package/lib/sync/range/utils/hashBlocks.js.map +1 -1
- package/lib/sync/range/utils/peerBalancer.js +18 -13
- package/lib/sync/range/utils/peerBalancer.js.map +1 -1
- package/lib/sync/sync.d.ts +1 -2
- package/lib/sync/sync.js +95 -87
- package/lib/sync/sync.js.map +1 -1
- package/lib/sync/types.d.ts +44 -0
- package/lib/sync/types.js +34 -0
- package/lib/sync/types.js.map +1 -0
- package/lib/sync/unknownBlock.d.ts +42 -28
- package/lib/sync/unknownBlock.js +404 -458
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/sync/utils/downloadByRange.d.ts +186 -0
- package/lib/sync/utils/downloadByRange.js +457 -0
- package/lib/sync/utils/downloadByRange.js.map +1 -0
- package/lib/sync/utils/downloadByRoot.d.ts +119 -0
- package/lib/sync/utils/downloadByRoot.js +319 -0
- package/lib/sync/utils/downloadByRoot.js.map +1 -0
- package/lib/sync/utils/pendingBlocksTree.d.ts +14 -6
- package/lib/sync/utils/pendingBlocksTree.js +24 -18
- package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
- package/lib/util/array.js +7 -3
- package/lib/util/array.js.map +1 -1
- package/lib/util/asyncIterableToEvents.js +6 -3
- package/lib/util/asyncIterableToEvents.js.map +1 -1
- package/lib/util/binarySearch.js +2 -0
- package/lib/util/binarySearch.js.map +1 -1
- package/lib/util/blobs.d.ts +2 -2
- package/lib/util/blobs.js +4 -4
- package/lib/util/blobs.js.map +1 -1
- package/lib/util/bufferPool.js +7 -2
- package/lib/util/bufferPool.js.map +1 -1
- package/lib/util/clock.d.ts +1 -1
- package/lib/util/clock.js +23 -18
- package/lib/util/clock.js.map +1 -1
- package/lib/util/dataColumns.d.ts +13 -10
- package/lib/util/dataColumns.js +92 -134
- package/lib/util/dataColumns.js.map +1 -1
- package/lib/util/execution.d.ts +20 -0
- package/lib/util/execution.js +148 -0
- package/lib/util/execution.js.map +1 -0
- package/lib/util/itTrigger.js +4 -4
- package/lib/util/itTrigger.js.map +1 -1
- package/lib/util/map.js +2 -0
- package/lib/util/map.js.map +1 -1
- package/lib/util/queue/index.d.ts +1 -1
- package/lib/util/queue/index.js +1 -1
- package/lib/util/queue/index.js.map +1 -1
- package/lib/util/queue/itemQueue.js +52 -49
- package/lib/util/queue/itemQueue.js.map +1 -1
- package/lib/util/serializedCache.js +1 -3
- package/lib/util/serializedCache.js.map +1 -1
- package/lib/util/set.js +2 -0
- package/lib/util/set.js.map +1 -1
- package/lib/util/sszBytes.d.ts +1 -0
- package/lib/util/sszBytes.js +1 -1
- package/lib/util/sszBytes.js.map +1 -1
- package/lib/util/timeSeries.js +3 -1
- package/lib/util/timeSeries.js.map +1 -1
- package/lib/util/types.d.ts +1 -1
- package/lib/util/types.js +2 -2
- package/lib/util/types.js.map +1 -1
- package/lib/util/wrapError.d.ts +7 -0
- package/package.json +22 -16
- package/lib/chain/seenCache/seenBlockInput.d.ts +0 -84
- package/lib/chain/seenCache/seenBlockInput.js +0 -225
- package/lib/chain/seenCache/seenBlockInput.js.map +0 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +0 -28
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +0 -328
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +0 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +0 -49
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +0 -499
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +0 -1
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.35.0-dev.092cc3954a",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -51,6 +51,12 @@
|
|
|
51
51
|
"import": "./lib/util/index.js"
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
|
+
"imports": {
|
|
55
|
+
"#prometheus-gc-stats-wrapper": {
|
|
56
|
+
"bun": "./lib/bun-wrappers/prometheus-gc-stats.js",
|
|
57
|
+
"default": "@chainsafe/prometheus-gc-stats"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
54
60
|
"typesVersions": {
|
|
55
61
|
"*": {
|
|
56
62
|
"*": [
|
|
@@ -96,13 +102,13 @@
|
|
|
96
102
|
"@chainsafe/blst": "^2.2.0",
|
|
97
103
|
"@chainsafe/discv5": "^11.0.4",
|
|
98
104
|
"@chainsafe/enr": "^5.0.1",
|
|
99
|
-
"@chainsafe/libp2p-gossipsub": "^14.1.
|
|
105
|
+
"@chainsafe/libp2p-gossipsub": "^14.1.2",
|
|
100
106
|
"@chainsafe/libp2p-noise": "^16.1.0",
|
|
101
107
|
"@chainsafe/persistent-merkle-tree": "^1.2.1",
|
|
102
108
|
"@chainsafe/prometheus-gc-stats": "^1.0.0",
|
|
103
109
|
"@chainsafe/pubkey-index-map": "^3.0.0",
|
|
104
110
|
"@chainsafe/ssz": "^1.2.2",
|
|
105
|
-
"@chainsafe/threads": "^1.11.
|
|
111
|
+
"@chainsafe/threads": "^1.11.3",
|
|
106
112
|
"@crate-crypto/node-eth-kzg": "0.8.0",
|
|
107
113
|
"@ethersproject/abi": "^5.7.0",
|
|
108
114
|
"@fastify/bearer-auth": "^10.0.1",
|
|
@@ -118,18 +124,18 @@
|
|
|
118
124
|
"@libp2p/peer-id": "^5.1.0",
|
|
119
125
|
"@libp2p/prometheus-metrics": "^4.3.15",
|
|
120
126
|
"@libp2p/tcp": "^10.1.8",
|
|
121
|
-
"@lodestar/api": "
|
|
122
|
-
"@lodestar/config": "
|
|
123
|
-
"@lodestar/db": "
|
|
124
|
-
"@lodestar/fork-choice": "
|
|
125
|
-
"@lodestar/light-client": "
|
|
126
|
-
"@lodestar/logger": "
|
|
127
|
-
"@lodestar/params": "
|
|
128
|
-
"@lodestar/reqresp": "
|
|
129
|
-
"@lodestar/state-transition": "
|
|
130
|
-
"@lodestar/types": "
|
|
131
|
-
"@lodestar/utils": "
|
|
132
|
-
"@lodestar/validator": "
|
|
127
|
+
"@lodestar/api": "1.35.0-dev.092cc3954a",
|
|
128
|
+
"@lodestar/config": "1.35.0-dev.092cc3954a",
|
|
129
|
+
"@lodestar/db": "1.35.0-dev.092cc3954a",
|
|
130
|
+
"@lodestar/fork-choice": "1.35.0-dev.092cc3954a",
|
|
131
|
+
"@lodestar/light-client": "1.35.0-dev.092cc3954a",
|
|
132
|
+
"@lodestar/logger": "1.35.0-dev.092cc3954a",
|
|
133
|
+
"@lodestar/params": "1.35.0-dev.092cc3954a",
|
|
134
|
+
"@lodestar/reqresp": "1.35.0-dev.092cc3954a",
|
|
135
|
+
"@lodestar/state-transition": "1.35.0-dev.092cc3954a",
|
|
136
|
+
"@lodestar/types": "1.35.0-dev.092cc3954a",
|
|
137
|
+
"@lodestar/utils": "1.35.0-dev.092cc3954a",
|
|
138
|
+
"@lodestar/validator": "1.35.0-dev.092cc3954a",
|
|
133
139
|
"@multiformats/multiaddr": "^12.1.3",
|
|
134
140
|
"datastore-core": "^10.0.2",
|
|
135
141
|
"datastore-level": "^11.0.3",
|
|
@@ -164,5 +170,5 @@
|
|
|
164
170
|
"beacon",
|
|
165
171
|
"blockchain"
|
|
166
172
|
],
|
|
167
|
-
"gitHead": "
|
|
173
|
+
"gitHead": "848935fec85d5d608e48dafe74f63e6d4947d3ff"
|
|
168
174
|
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { ChainForkConfig } from "@lodestar/config";
|
|
2
|
-
import { CheckpointWithHex } from "@lodestar/fork-choice";
|
|
3
|
-
import { RootHex, SignedBeaconBlock, deneb } from "@lodestar/types";
|
|
4
|
-
import { Logger } from "@lodestar/utils";
|
|
5
|
-
import { Metrics } from "../../metrics/metrics.js";
|
|
6
|
-
import { IClock } from "../../util/clock.js";
|
|
7
|
-
import { BlockInputBlobs, IBlockInput, SourceMeta } from "../blocks/blockInput/index.js";
|
|
8
|
-
import { ChainEventEmitter } from "../emitter.js";
|
|
9
|
-
export type SeenBlockInputCacheModules = {
|
|
10
|
-
config: ChainForkConfig;
|
|
11
|
-
clock: IClock;
|
|
12
|
-
chainEvents: ChainEventEmitter;
|
|
13
|
-
signal: AbortSignal;
|
|
14
|
-
metrics: Metrics | null;
|
|
15
|
-
logger?: Logger;
|
|
16
|
-
};
|
|
17
|
-
export type GetByBlobOptions = {
|
|
18
|
-
throwErrorIfAlreadyKnown?: boolean;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Consumers that create BlockInputs or change types of old BlockInputs
|
|
22
|
-
*
|
|
23
|
-
* - gossipHandlers (block and blob)
|
|
24
|
-
* - beaconBlocksMaybeBlobsByRange
|
|
25
|
-
* - unavailableBeaconBlobsByRoot (beaconBlocksMaybeBlobsByRoot)
|
|
26
|
-
* - publishBlock in the beacon/blocks/index.ts API
|
|
27
|
-
* https://github.com/ChainSafe/lodestar/blob/unstable/packages/beacon-node/src/api/impl/beacon/blocks/index.ts#L62
|
|
28
|
-
* - maybeValidateBlobs in verifyBlocksDataAvailability (is_data_available spec function)
|
|
29
|
-
* https://github.com/ChainSafe/lodestar/blob/unstable/packages/beacon-node/src/chain/blocks/verifyBlocksDataAvailability.ts#L111
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* Pruning management for SeenBlockInputCache
|
|
33
|
-
* ------------------------------------------
|
|
34
|
-
* There are four cases for how pruning needs to be handled
|
|
35
|
-
* - Normal operation following head via gossip (and/or reqresp). For this situation the consumer (process pipeline or
|
|
36
|
-
* caller of processBlock) will call the `prune` method to remove any processed BlockInputs from the cache. This will
|
|
37
|
-
* also remove any ancestors of the processed BlockInput as that will also need to have been successfully processed
|
|
38
|
-
* for import to work correctly
|
|
39
|
-
* - onFinalized event handler will help to prune any non-canonical forks once the chain finalizes. Any block-slots that
|
|
40
|
-
* are before the finalized checkpoint will be pruned.
|
|
41
|
-
* - Range-sync periods. The range process uses this cache to store and sync blocks with DA data as the chain is pulled
|
|
42
|
-
* from peers. We pull batches, by epoch, so 32 slots are pulled at a time and several batches are pulled concurrently.
|
|
43
|
-
* It is important to set the MAX_BLOCK_INPUT_CACHE_SIZE high enough to support range sync activities. Currently the
|
|
44
|
-
* value is set for 5 batches of 32 slots. As process block is called (similar to following head) the BlockInput and
|
|
45
|
-
* its ancestors will be pruned.
|
|
46
|
-
* - Non-Finality times. This is a bit more tricky. There can be long periods of non-finality and storing everything
|
|
47
|
-
* will cause OOM. The pruneToMax will help ensure a hard limit on the number of stored blocks (with DA) that are held
|
|
48
|
-
* in memory at any one time. The value for MAX_BLOCK_INPUT_CACHE_SIZE is set to accommodate range-sync but in
|
|
49
|
-
* practice this value may need to be massaged in the future if we find issues when debugging non-finality
|
|
50
|
-
*/
|
|
51
|
-
export declare class SeenBlockInputCache {
|
|
52
|
-
private readonly config;
|
|
53
|
-
private readonly clock;
|
|
54
|
-
private readonly chainEvents;
|
|
55
|
-
private readonly signal;
|
|
56
|
-
private readonly metrics;
|
|
57
|
-
private readonly logger?;
|
|
58
|
-
private blockInputs;
|
|
59
|
-
constructor({ config, clock, chainEvents, signal, metrics, logger }: SeenBlockInputCacheModules);
|
|
60
|
-
has(rootHex: RootHex): boolean;
|
|
61
|
-
get(rootHex: RootHex): IBlockInput | undefined;
|
|
62
|
-
/**
|
|
63
|
-
* Removes the single BlockInput from the cache
|
|
64
|
-
*/
|
|
65
|
-
remove(rootHex: RootHex): void;
|
|
66
|
-
/**
|
|
67
|
-
* Removes a processed BlockInput from the cache and also removes any ancestors of processed blocks
|
|
68
|
-
*/
|
|
69
|
-
prune(rootHex: RootHex): void;
|
|
70
|
-
onFinalized: (checkpoint: CheckpointWithHex) => void;
|
|
71
|
-
getByBlock({ block, source, seenTimestampSec, peerIdStr }: SourceMeta & {
|
|
72
|
-
block: SignedBeaconBlock;
|
|
73
|
-
}): IBlockInput;
|
|
74
|
-
getByBlob({ blobSidecar, source, seenTimestampSec, peerIdStr }: SourceMeta & {
|
|
75
|
-
blobSidecar: deneb.BlobSidecar;
|
|
76
|
-
}, opts?: GetByBlobOptions): BlockInputBlobs;
|
|
77
|
-
private buildCommonProps;
|
|
78
|
-
/**
|
|
79
|
-
* Use custom implementation of pruneSetToMax to allow for sorting by slot
|
|
80
|
-
* and deleting via key/rootHex
|
|
81
|
-
*/
|
|
82
|
-
private pruneToMaxSize;
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=seenBlockInput.d.ts.map
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
import { isForkPostDeneb } from "@lodestar/params";
|
|
2
|
-
import { computeStartSlotAtEpoch } from "@lodestar/state-transition";
|
|
3
|
-
import { LodestarError, toRootHex } from "@lodestar/utils";
|
|
4
|
-
import { BlockInputBlobs, BlockInputPreData, DAType, isBlockInputBlobs, isDaOutOfRange, } from "../blocks/blockInput/index.js";
|
|
5
|
-
import { ChainEvent } from "../emitter.js";
|
|
6
|
-
const MAX_BLOCK_INPUT_CACHE_SIZE = 5;
|
|
7
|
-
/**
|
|
8
|
-
* Consumers that create BlockInputs or change types of old BlockInputs
|
|
9
|
-
*
|
|
10
|
-
* - gossipHandlers (block and blob)
|
|
11
|
-
* - beaconBlocksMaybeBlobsByRange
|
|
12
|
-
* - unavailableBeaconBlobsByRoot (beaconBlocksMaybeBlobsByRoot)
|
|
13
|
-
* - publishBlock in the beacon/blocks/index.ts API
|
|
14
|
-
* https://github.com/ChainSafe/lodestar/blob/unstable/packages/beacon-node/src/api/impl/beacon/blocks/index.ts#L62
|
|
15
|
-
* - maybeValidateBlobs in verifyBlocksDataAvailability (is_data_available spec function)
|
|
16
|
-
* https://github.com/ChainSafe/lodestar/blob/unstable/packages/beacon-node/src/chain/blocks/verifyBlocksDataAvailability.ts#L111
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* Pruning management for SeenBlockInputCache
|
|
20
|
-
* ------------------------------------------
|
|
21
|
-
* There are four cases for how pruning needs to be handled
|
|
22
|
-
* - Normal operation following head via gossip (and/or reqresp). For this situation the consumer (process pipeline or
|
|
23
|
-
* caller of processBlock) will call the `prune` method to remove any processed BlockInputs from the cache. This will
|
|
24
|
-
* also remove any ancestors of the processed BlockInput as that will also need to have been successfully processed
|
|
25
|
-
* for import to work correctly
|
|
26
|
-
* - onFinalized event handler will help to prune any non-canonical forks once the chain finalizes. Any block-slots that
|
|
27
|
-
* are before the finalized checkpoint will be pruned.
|
|
28
|
-
* - Range-sync periods. The range process uses this cache to store and sync blocks with DA data as the chain is pulled
|
|
29
|
-
* from peers. We pull batches, by epoch, so 32 slots are pulled at a time and several batches are pulled concurrently.
|
|
30
|
-
* It is important to set the MAX_BLOCK_INPUT_CACHE_SIZE high enough to support range sync activities. Currently the
|
|
31
|
-
* value is set for 5 batches of 32 slots. As process block is called (similar to following head) the BlockInput and
|
|
32
|
-
* its ancestors will be pruned.
|
|
33
|
-
* - Non-Finality times. This is a bit more tricky. There can be long periods of non-finality and storing everything
|
|
34
|
-
* will cause OOM. The pruneToMax will help ensure a hard limit on the number of stored blocks (with DA) that are held
|
|
35
|
-
* in memory at any one time. The value for MAX_BLOCK_INPUT_CACHE_SIZE is set to accommodate range-sync but in
|
|
36
|
-
* practice this value may need to be massaged in the future if we find issues when debugging non-finality
|
|
37
|
-
*/
|
|
38
|
-
export class SeenBlockInputCache {
|
|
39
|
-
constructor({ config, clock, chainEvents, signal, metrics, logger }) {
|
|
40
|
-
this.blockInputs = new Map();
|
|
41
|
-
this.onFinalized = (checkpoint) => {
|
|
42
|
-
const cutoffSlot = computeStartSlotAtEpoch(checkpoint.epoch);
|
|
43
|
-
for (const [rootHex, blockInput] of this.blockInputs) {
|
|
44
|
-
if (blockInput.slot < cutoffSlot) {
|
|
45
|
-
this.blockInputs.delete(rootHex);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
this.pruneToMaxSize();
|
|
49
|
-
};
|
|
50
|
-
this.config = config;
|
|
51
|
-
this.clock = clock;
|
|
52
|
-
this.chainEvents = chainEvents;
|
|
53
|
-
this.signal = signal;
|
|
54
|
-
this.metrics = metrics;
|
|
55
|
-
this.logger = logger;
|
|
56
|
-
if (metrics) {
|
|
57
|
-
metrics.seenCache.blockInput.blockInputCount.addCollect(() => metrics.seenCache.blockInput.blockInputCount.set(this.blockInputs.size));
|
|
58
|
-
}
|
|
59
|
-
this.chainEvents.on(ChainEvent.forkChoiceFinalized, this.onFinalized);
|
|
60
|
-
this.signal.addEventListener("abort", () => {
|
|
61
|
-
this.chainEvents.off(ChainEvent.forkChoiceFinalized, this.onFinalized);
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
has(rootHex) {
|
|
65
|
-
return this.blockInputs.has(rootHex);
|
|
66
|
-
}
|
|
67
|
-
get(rootHex) {
|
|
68
|
-
return this.blockInputs.get(rootHex);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Removes the single BlockInput from the cache
|
|
72
|
-
*/
|
|
73
|
-
remove(rootHex) {
|
|
74
|
-
this.blockInputs.delete(rootHex);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Removes a processed BlockInput from the cache and also removes any ancestors of processed blocks
|
|
78
|
-
*/
|
|
79
|
-
prune(rootHex) {
|
|
80
|
-
let blockInput = this.blockInputs.get(rootHex);
|
|
81
|
-
let parentRootHex = blockInput?.parentRootHex;
|
|
82
|
-
while (blockInput) {
|
|
83
|
-
this.blockInputs.delete(blockInput.blockRootHex);
|
|
84
|
-
blockInput = this.blockInputs.get(parentRootHex ?? "");
|
|
85
|
-
parentRootHex = blockInput?.parentRootHex;
|
|
86
|
-
}
|
|
87
|
-
this.pruneToMaxSize();
|
|
88
|
-
}
|
|
89
|
-
getByBlock({ block, source, seenTimestampSec, peerIdStr }) {
|
|
90
|
-
const blockRoot = this.config.getForkTypes(block.message.slot).BeaconBlock.hashTreeRoot(block.message);
|
|
91
|
-
const blockRootHex = toRootHex(blockRoot);
|
|
92
|
-
// TODO(peerDAS): Why is it necessary to static cast this here. All conditional paths result in a valid value so should be defined correctly below
|
|
93
|
-
let blockInput = this.blockInputs.get(blockRootHex);
|
|
94
|
-
if (!blockInput) {
|
|
95
|
-
const { forkName, daOutOfRange } = this.buildCommonProps(block.message.slot);
|
|
96
|
-
if (!isForkPostDeneb(forkName)) {
|
|
97
|
-
blockInput = BlockInputPreData.createFromBlock({
|
|
98
|
-
block,
|
|
99
|
-
blockRootHex,
|
|
100
|
-
daOutOfRange,
|
|
101
|
-
forkName,
|
|
102
|
-
source: {
|
|
103
|
-
source,
|
|
104
|
-
seenTimestampSec,
|
|
105
|
-
peerIdStr,
|
|
106
|
-
},
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
// else if (isForkPostFulu(forkName)) {
|
|
110
|
-
// blockInput = new BlockInputColumns.createFromBlock({
|
|
111
|
-
// block,
|
|
112
|
-
// blockRootHex,
|
|
113
|
-
// daOutOfRange,
|
|
114
|
-
// forkName,
|
|
115
|
-
// custodyColumns: this.custodyConfig.custodyColumns,
|
|
116
|
-
// sampledColumns: this.custodyConfig.sampledColumns,
|
|
117
|
-
// source: {
|
|
118
|
-
// source,
|
|
119
|
-
// seenTimestampSec,
|
|
120
|
-
// peerIdStr
|
|
121
|
-
// }
|
|
122
|
-
// })
|
|
123
|
-
// }
|
|
124
|
-
else {
|
|
125
|
-
blockInput = BlockInputBlobs.createFromBlock({
|
|
126
|
-
block: block,
|
|
127
|
-
blockRootHex,
|
|
128
|
-
daOutOfRange,
|
|
129
|
-
forkName,
|
|
130
|
-
source: {
|
|
131
|
-
source,
|
|
132
|
-
seenTimestampSec,
|
|
133
|
-
peerIdStr,
|
|
134
|
-
},
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
this.blockInputs.set(blockInput.blockRootHex, blockInput);
|
|
138
|
-
}
|
|
139
|
-
if (!blockInput.hasBlock()) {
|
|
140
|
-
blockInput.addBlock({ block, blockRootHex, source: { source, seenTimestampSec, peerIdStr } });
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
this.logger?.debug("Attempt to cache block but is already cached on BlockInput", blockInput.getLogMeta());
|
|
144
|
-
this.metrics?.seenCache.blockInput.duplicateBlockCount.inc({ source });
|
|
145
|
-
}
|
|
146
|
-
return blockInput;
|
|
147
|
-
}
|
|
148
|
-
getByBlob({ blobSidecar, source, seenTimestampSec, peerIdStr }, opts = {}) {
|
|
149
|
-
const blockRoot = this.config
|
|
150
|
-
.getForkTypes(blobSidecar.signedBlockHeader.message.slot)
|
|
151
|
-
.BeaconBlockHeader.hashTreeRoot(blobSidecar.signedBlockHeader.message);
|
|
152
|
-
const blockRootHex = toRootHex(blockRoot);
|
|
153
|
-
// TODO(peerDAS): Why is it necessary to static cast this here. All conditional paths result in a valid value so should be defined correctly below
|
|
154
|
-
let blockInput = this.blockInputs.get(blockRootHex);
|
|
155
|
-
let created = false;
|
|
156
|
-
if (!blockInput) {
|
|
157
|
-
created = true;
|
|
158
|
-
const { forkName, daOutOfRange } = this.buildCommonProps(blobSidecar.signedBlockHeader.message.slot);
|
|
159
|
-
blockInput = BlockInputBlobs.createFromBlob({
|
|
160
|
-
blobSidecar,
|
|
161
|
-
blockRootHex,
|
|
162
|
-
daOutOfRange,
|
|
163
|
-
forkName,
|
|
164
|
-
source,
|
|
165
|
-
seenTimestampSec,
|
|
166
|
-
peerIdStr,
|
|
167
|
-
});
|
|
168
|
-
this.metrics?.seenCache.blockInput.createdByBlob.inc();
|
|
169
|
-
this.blockInputs.set(blockRootHex, blockInput);
|
|
170
|
-
}
|
|
171
|
-
if (!isBlockInputBlobs(blockInput)) {
|
|
172
|
-
throw new SeenBlockInputCacheError({
|
|
173
|
-
code: SeenBlockInputCacheErrorCode.WRONG_BLOCK_INPUT_TYPE,
|
|
174
|
-
cachedType: blockInput.type,
|
|
175
|
-
requestedType: DAType.Blobs,
|
|
176
|
-
...blockInput.getLogMeta(),
|
|
177
|
-
}, `BlockInputType mismatch adding blobIndex=${blobSidecar.index}`);
|
|
178
|
-
}
|
|
179
|
-
if (!blockInput.hasBlob(blobSidecar.index)) {
|
|
180
|
-
blockInput.addBlob({ blobSidecar, blockRootHex, source, seenTimestampSec, peerIdStr });
|
|
181
|
-
}
|
|
182
|
-
else if (!created) {
|
|
183
|
-
this.logger?.debug(`Attempt to cache blob index #${blobSidecar.index} but is already cached on BlockInput`, blockInput.getLogMeta());
|
|
184
|
-
this.metrics?.seenCache.blockInput.duplicateBlobCount.inc({ source });
|
|
185
|
-
if (opts.throwErrorIfAlreadyKnown) {
|
|
186
|
-
throw new SeenBlockInputCacheError({
|
|
187
|
-
code: SeenBlockInputCacheErrorCode.GOSSIP_BLOB_ALREADY_KNOWN,
|
|
188
|
-
...blockInput.getLogMeta(),
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return blockInput;
|
|
193
|
-
}
|
|
194
|
-
buildCommonProps(slot) {
|
|
195
|
-
const forkName = this.config.getForkName(slot);
|
|
196
|
-
return {
|
|
197
|
-
forkName,
|
|
198
|
-
daOutOfRange: isDaOutOfRange(this.config, forkName, slot, this.clock.currentEpoch),
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Use custom implementation of pruneSetToMax to allow for sorting by slot
|
|
203
|
-
* and deleting via key/rootHex
|
|
204
|
-
*/
|
|
205
|
-
pruneToMaxSize() {
|
|
206
|
-
let itemsToDelete = this.blockInputs.size - MAX_BLOCK_INPUT_CACHE_SIZE;
|
|
207
|
-
if (itemsToDelete > 0) {
|
|
208
|
-
const sorted = [...this.blockInputs.entries()].sort((a, b) => b[1].slot - a[1].slot);
|
|
209
|
-
for (const [rootHex] of sorted) {
|
|
210
|
-
this.blockInputs.delete(rootHex);
|
|
211
|
-
itemsToDelete--;
|
|
212
|
-
if (itemsToDelete <= 0)
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
var SeenBlockInputCacheErrorCode;
|
|
219
|
-
(function (SeenBlockInputCacheErrorCode) {
|
|
220
|
-
SeenBlockInputCacheErrorCode["WRONG_BLOCK_INPUT_TYPE"] = "BLOCK_INPUT_CACHE_ERROR_WRONG_BLOCK_INPUT_TYPE";
|
|
221
|
-
SeenBlockInputCacheErrorCode["GOSSIP_BLOB_ALREADY_KNOWN"] = "BLOCK_INPUT_CACHE_ERROR_GOSSIP_BLOB_ALREADY_KNOWN";
|
|
222
|
-
})(SeenBlockInputCacheErrorCode || (SeenBlockInputCacheErrorCode = {}));
|
|
223
|
-
class SeenBlockInputCacheError extends LodestarError {
|
|
224
|
-
}
|
|
225
|
-
//# sourceMappingURL=seenBlockInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"seenBlockInput.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenBlockInput.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { ChainForkConfig } from "@lodestar/config";
|
|
2
|
-
import { ColumnIndex, Epoch, SignedBeaconBlock, Slot, WithOptionalBytes, deneb, fulu, phase0 } from "@lodestar/types";
|
|
3
|
-
import { Logger } from "@lodestar/utils";
|
|
4
|
-
import { BlobsSource, BlockInput, BlockSource, DataColumnsSource } from "../../chain/blocks/types.js";
|
|
5
|
-
import { Metrics } from "../../metrics/index.js";
|
|
6
|
-
import { RangeSyncType } from "../../sync/utils/remoteSyncType.js";
|
|
7
|
-
import { PeerIdStr } from "../../util/peerId.js";
|
|
8
|
-
import { INetwork } from "../interface.js";
|
|
9
|
-
import { PeerSyncMeta } from "../peers/peersData.js";
|
|
10
|
-
export type PartialDownload = null | {
|
|
11
|
-
blocks: BlockInput[];
|
|
12
|
-
pendingDataColumns: number[];
|
|
13
|
-
};
|
|
14
|
-
export declare const SyncSourceByRoot: "ByRoot";
|
|
15
|
-
export type SyncSource = RangeSyncType | typeof SyncSourceByRoot;
|
|
16
|
-
/**
|
|
17
|
-
* Download blocks and blobs (prefulu) or data columns (fulu) by range.
|
|
18
|
-
* returns:
|
|
19
|
-
* - array of blocks with blobs or data columns
|
|
20
|
-
* - pendingDataColumns: null if all data columns are present, or array of column indexes that are missing. Also null for prefulu
|
|
21
|
-
*/
|
|
22
|
-
export declare function beaconBlocksMaybeBlobsByRange(config: ChainForkConfig, network: INetwork, peer: PeerSyncMeta, request: phase0.BeaconBlocksByRangeRequest, currentEpoch: Epoch, partialDownload: PartialDownload, syncSource: SyncSource, metrics: Metrics | null, logger?: Logger): Promise<{
|
|
23
|
-
blocks: BlockInput[];
|
|
24
|
-
pendingDataColumns: null | number[];
|
|
25
|
-
}>;
|
|
26
|
-
export declare function matchBlockWithBlobs(config: ChainForkConfig, allBlocks: WithOptionalBytes<SignedBeaconBlock>[], allBlobSidecars: deneb.BlobSidecar[], endSlot: Slot, blockSource: BlockSource, blobsSource: BlobsSource, syncSource: SyncSource): BlockInput[];
|
|
27
|
-
export declare function matchBlockWithDataColumns(network: INetwork, peerId: PeerIdStr, config: ChainForkConfig, sampledColumns: ColumnIndex[], requestedColumns: number[], allBlocks: WithOptionalBytes<SignedBeaconBlock>[], allDataColumnSidecars: fulu.DataColumnSidecar[], endSlot: Slot, blockSource: BlockSource, dataColumnsSource: DataColumnsSource, prevPartialDownload: null | PartialDownload, peerClient: string, syncSource: SyncSource, metrics: Metrics | null, logger?: Logger): BlockInput[];
|
|
28
|
-
//# sourceMappingURL=beaconBlocksMaybeBlobsByRange.d.ts.map
|