@lodestar/beacon-node 1.35.0-dev.7a3b3a996e → 1.35.0-dev.811265f1e2
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 +46 -58
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/errors.js +0 -2
- package/lib/api/impl/errors.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 +1 -2
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/api/rest/activeSockets.js +2 -3
- package/lib/api/rest/activeSockets.js.map +1 -1
- package/lib/api/rest/base.js +0 -4
- package/lib/api/rest/base.js.map +1 -1
- package/lib/api/rest/index.js +0 -2
- package/lib/api/rest/index.js.map +1 -1
- package/lib/api/rest/swaggerUI.js +2 -4
- package/lib/api/rest/swaggerUI.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.js +38 -49
- package/lib/chain/archiveStore/archiveStore.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +0 -2
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +0 -5
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
- package/lib/chain/balancesCache.js +3 -1
- package/lib/chain/balancesCache.js.map +1 -1
- package/lib/chain/beaconProposerCache.js +0 -1
- package/lib/chain/beaconProposerCache.js.map +1 -1
- package/lib/chain/blocks/blockInput/blockInput.d.ts +7 -19
- package/lib/chain/blocks/blockInput/blockInput.js +88 -132
- package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
- package/lib/chain/blocks/blockInput/types.d.ts +10 -19
- package/lib/chain/blocks/blockInput/types.js +0 -1
- package/lib/chain/blocks/blockInput/types.js.map +1 -1
- package/lib/chain/blocks/blockInput/utils.d.ts +4 -0
- package/lib/chain/blocks/blockInput/utils.js +29 -6
- package/lib/chain/blocks/blockInput/utils.js.map +1 -1
- package/lib/chain/blocks/importBlock.js +12 -16
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/index.d.ts +4 -5
- package/lib/chain/blocks/index.js +4 -5
- package/lib/chain/blocks/index.js.map +1 -1
- package/lib/chain/blocks/types.d.ts +106 -3
- package/lib/chain/blocks/types.js +119 -0
- 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 +14 -15
- package/lib/chain/blocks/verifyBlock.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts +22 -7
- package/lib/chain/blocks/verifyBlocksDataAvailability.js +110 -18
- package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +3 -4
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +22 -24
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts +3 -4
- package/lib/chain/blocks/verifyBlocksSanityChecks.js +2 -2
- package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +2 -3
- 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 +66 -61
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/bls/multithread/index.js +163 -167
- package/lib/chain/bls/multithread/index.js.map +1 -1
- package/lib/chain/bls/singleThread.js +0 -1
- package/lib/chain/bls/singleThread.js.map +1 -1
- package/lib/chain/chain.d.ts +10 -12
- package/lib/chain/chain.js +20 -79
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +2 -43
- package/lib/chain/emitter.js +0 -18
- package/lib/chain/emitter.js.map +1 -1
- package/lib/chain/errors/blobSidecarError.d.ts +0 -24
- package/lib/chain/errors/blobSidecarError.js +0 -10
- package/lib/chain/errors/blobSidecarError.js.map +1 -1
- package/lib/chain/errors/blockError.js +0 -1
- package/lib/chain/errors/blockError.js.map +1 -1
- package/lib/chain/errors/dataColumnSidecarError.d.ts +0 -42
- package/lib/chain/errors/dataColumnSidecarError.js +0 -14
- package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
- package/lib/chain/errors/gossipValidation.js +0 -1
- package/lib/chain/errors/gossipValidation.js.map +1 -1
- package/lib/chain/genesis/genesis.js +5 -16
- package/lib/chain/genesis/genesis.js.map +1 -1
- package/lib/chain/interface.d.ts +9 -12
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/lightClient/index.js +9 -16
- package/lib/chain/lightClient/index.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +8 -13
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/opPools/attestationPool.js +2 -7
- package/lib/chain/opPools/attestationPool.js.map +1 -1
- package/lib/chain/opPools/opPool.js +12 -10
- package/lib/chain/opPools/opPool.js.map +1 -1
- package/lib/chain/opPools/syncCommitteeMessagePool.js +6 -9
- package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
- package/lib/chain/opPools/syncContributionAndProofPool.js +2 -5
- package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
- package/lib/chain/prepareNextSlot.js +136 -141
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +10 -3
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/regen/errors.js +0 -1
- package/lib/chain/regen/errors.js.map +1 -1
- package/lib/chain/regen/queued.js +28 -35
- package/lib/chain/regen/queued.js.map +1 -1
- package/lib/chain/regen/regen.js +0 -1
- package/lib/chain/regen/regen.js.map +1 -1
- package/lib/chain/reprocess.js +1 -3
- 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 +6 -7
- package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
- package/lib/chain/seenCache/seenAttestationData.js +2 -5
- package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
- package/lib/chain/seenCache/seenAttesters.js +4 -2
- package/lib/chain/seenCache/seenAttesters.js.map +1 -1
- package/lib/chain/seenCache/seenBlockInput.d.ts +84 -0
- package/lib/chain/seenCache/seenBlockInput.js +225 -0
- package/lib/chain/seenCache/seenBlockInput.js.map +1 -0
- package/lib/chain/seenCache/seenBlockProposers.js +4 -2
- package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
- package/lib/chain/seenCache/seenCommittee.js +3 -1
- package/lib/chain/seenCache/seenCommittee.js.map +1 -1
- package/lib/chain/seenCache/seenCommitteeContribution.js +2 -3
- package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.d.ts +78 -74
- package/lib/chain/seenCache/seenGossipBlockInput.js +369 -235
- package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
- package/lib/chain/shufflingCache.js +2 -5
- package/lib/chain/shufflingCache.js.map +1 -1
- package/lib/chain/stateCache/blockStateCacheImpl.js +7 -13
- package/lib/chain/stateCache/blockStateCacheImpl.js.map +1 -1
- package/lib/chain/stateCache/datastore/db.js +0 -1
- package/lib/chain/stateCache/datastore/db.js.map +1 -1
- package/lib/chain/stateCache/datastore/file.js +0 -1
- package/lib/chain/stateCache/datastore/file.js.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.js +0 -10
- package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
- package/lib/chain/stateCache/inMemoryCheckpointsCache.js +4 -10
- package/lib/chain/stateCache/inMemoryCheckpointsCache.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 +4 -13
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/validation/blobSidecar.d.ts +3 -8
- package/lib/chain/validation/blobSidecar.js +31 -73
- package/lib/chain/validation/blobSidecar.js.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts +9 -7
- package/lib/chain/validation/dataColumnSidecar.js +56 -94
- package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
- package/lib/chain/validatorMonitor.js +1 -2
- package/lib/chain/validatorMonitor.js.map +1 -1
- package/lib/db/beacon.js +0 -24
- package/lib/db/beacon.js.map +1 -1
- package/lib/db/repositories/depositDataRoot.js +0 -1
- package/lib/db/repositories/depositDataRoot.js.map +1 -1
- package/lib/db/single/preGenesisState.js +0 -6
- package/lib/db/single/preGenesisState.js.map +1 -1
- package/lib/db/single/preGenesisStateLastProcessedBlock.js +0 -5
- package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +1 -1
- package/lib/eth1/eth1DataCache.js +0 -2
- package/lib/eth1/eth1DataCache.js.map +1 -1
- package/lib/eth1/eth1DepositDataTracker.js +5 -18
- package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
- package/lib/eth1/eth1DepositsCache.js +0 -3
- package/lib/eth1/eth1DepositsCache.js.map +1 -1
- package/lib/eth1/eth1MergeBlockTracker.js +4 -10
- package/lib/eth1/eth1MergeBlockTracker.js.map +1 -1
- package/lib/eth1/index.js +0 -2
- package/lib/eth1/index.js.map +1 -1
- package/lib/eth1/provider/eth1Provider.js +2 -6
- package/lib/eth1/provider/eth1Provider.js.map +1 -1
- package/lib/eth1/provider/jsonRpcHttpClient.js +2 -16
- package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
- package/lib/eth1/provider/utils.d.ts +0 -5
- package/lib/eth1/provider/utils.js +1 -9
- package/lib/eth1/provider/utils.js.map +1 -1
- package/lib/execution/builder/cache.js +0 -6
- package/lib/execution/builder/cache.js.map +1 -1
- package/lib/execution/builder/http.js +8 -14
- package/lib/execution/builder/http.js.map +1 -1
- package/lib/execution/engine/disabled.js +4 -2
- package/lib/execution/engine/disabled.js.map +1 -1
- package/lib/execution/engine/http.d.ts +2 -2
- package/lib/execution/engine/http.js +11 -43
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +2 -2
- package/lib/execution/engine/mock.d.ts +0 -1
- package/lib/execution/engine/mock.js +12 -16
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/payloadIdCache.js +3 -1
- package/lib/execution/engine/payloadIdCache.js.map +1 -1
- package/lib/execution/engine/types.d.ts +1 -5
- package/lib/execution/engine/types.js +8 -37
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/execution/engine/utils.js +1 -2
- package/lib/execution/engine/utils.js.map +1 -1
- package/lib/metrics/metrics/beacon.d.ts +5 -11
- package/lib/metrics/metrics/beacon.js +20 -40
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +13 -55
- package/lib/metrics/metrics/lodestar.js +7 -84
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/metrics/nodeJsMetrics.js +1 -1
- package/lib/metrics/nodeJsMetrics.js.map +1 -1
- package/lib/metrics/utils/avgMinMax.js +6 -10
- package/lib/metrics/utils/avgMinMax.js.map +1 -1
- package/lib/metrics/utils/gauge.js +4 -1
- package/lib/metrics/utils/gauge.js.map +1 -1
- package/lib/monitoring/properties.js +0 -4
- package/lib/monitoring/properties.js.map +1 -1
- package/lib/monitoring/service.js +1 -13
- package/lib/monitoring/service.js.map +1 -1
- package/lib/monitoring/system.js +27 -25
- package/lib/monitoring/system.js.map +1 -1
- package/lib/network/core/networkCore.d.ts +1 -1
- package/lib/network/core/networkCore.js +49 -66
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.d.ts +1 -1
- package/lib/network/core/networkCoreWorkerHandler.js +1 -4
- 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/discv5/worker.js.map +1 -1
- package/lib/network/events.d.ts +18 -2
- package/lib/network/events.js +7 -0
- package/lib/network/events.js.map +1 -1
- package/lib/network/gossip/encoding.js +0 -2
- package/lib/network/gossip/encoding.js.map +1 -1
- package/lib/network/gossip/errors.js +0 -1
- package/lib/network/gossip/errors.js.map +1 -1
- package/lib/network/gossip/gossipsub.js +0 -7
- package/lib/network/gossip/gossipsub.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +49 -49
- package/lib/network/gossip/topic.js +1 -2
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/interface.d.ts +1 -2
- package/lib/network/metadata.js +0 -4
- package/lib/network/metadata.js.map +1 -1
- package/lib/network/network.d.ts +1 -3
- package/lib/network/network.js +71 -89
- 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 +2 -8
- package/lib/network/peers/datastore.js.map +1 -1
- package/lib/network/peers/discover.js +64 -74
- package/lib/network/peers/discover.js.map +1 -1
- package/lib/network/peers/peerManager.js +130 -154
- package/lib/network/peers/peerManager.js.map +1 -1
- package/lib/network/peers/peersData.d.ts +1 -1
- package/lib/network/peers/peersData.js +3 -1
- package/lib/network/peers/peersData.js.map +1 -1
- package/lib/network/peers/score/score.js +0 -6
- package/lib/network/peers/score/score.js.map +1 -1
- package/lib/network/peers/score/store.js +0 -3
- package/lib/network/peers/score/store.js.map +1 -1
- package/lib/network/peers/utils/subnetMap.js +4 -2
- package/lib/network/peers/utils/subnetMap.js.map +1 -1
- package/lib/network/processor/aggregatorTracker.js +3 -1
- package/lib/network/processor/aggregatorTracker.js.map +1 -1
- package/lib/network/processor/gossipHandlers.js +164 -145
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipQueues/indexed.js +9 -11
- package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
- package/lib/network/processor/gossipQueues/linear.js +8 -9
- package/lib/network/processor/gossipQueues/linear.js.map +1 -1
- package/lib/network/processor/index.d.ts +1 -2
- package/lib/network/processor/index.js +6 -21
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.js +2 -11
- package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +28 -0
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +328 -0
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -0
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +49 -0
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +499 -0
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -0
- package/lib/network/reqresp/index.d.ts +2 -0
- package/lib/network/reqresp/index.js +2 -0
- package/lib/network/reqresp/index.js.map +1 -1
- package/lib/network/reqresp/rateLimit.js +5 -11
- package/lib/network/reqresp/rateLimit.js.map +1 -1
- package/lib/network/statusCache.js +0 -1
- package/lib/network/statusCache.js.map +1 -1
- package/lib/network/subnets/attnetsService.js +65 -73
- package/lib/network/subnets/attnetsService.js.map +1 -1
- package/lib/network/subnets/syncnetsService.js +22 -29
- package/lib/network/subnets/syncnetsService.js.map +1 -1
- package/lib/node/nodejs.js +0 -15
- package/lib/node/nodejs.js.map +1 -1
- package/lib/sync/backfill/backfill.js +15 -57
- package/lib/sync/backfill/backfill.js.map +1 -1
- package/lib/sync/constants.d.ts +1 -2
- package/lib/sync/constants.js +1 -2
- package/lib/sync/constants.js.map +1 -1
- package/lib/sync/interface.d.ts +59 -1
- package/lib/sync/interface.js +20 -0
- package/lib/sync/interface.js.map +1 -1
- package/lib/sync/options.d.ts +1 -1
- package/lib/sync/range/batch.d.ts +32 -48
- package/lib/sync/range/batch.js +55 -201
- package/lib/sync/range/batch.js.map +1 -1
- package/lib/sync/range/chain.d.ts +10 -15
- package/lib/sync/range/chain.js +70 -141
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.d.ts +2 -2
- package/lib/sync/range/range.js +54 -86
- 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 +4 -6
- package/lib/sync/range/utils/hashBlocks.js.map +1 -1
- package/lib/sync/range/utils/peerBalancer.js +13 -18
- package/lib/sync/range/utils/peerBalancer.js.map +1 -1
- package/lib/sync/sync.js +87 -95
- package/lib/sync/sync.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts +28 -42
- package/lib/sync/unknownBlock.js +458 -404
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/sync/utils/pendingBlocksTree.d.ts +6 -14
- package/lib/sync/utils/pendingBlocksTree.js +18 -24
- package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
- package/lib/util/array.js +3 -7
- package/lib/util/array.js.map +1 -1
- package/lib/util/asyncIterableToEvents.js +3 -6
- package/lib/util/asyncIterableToEvents.js.map +1 -1
- package/lib/util/binarySearch.js +0 -2
- 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 +2 -7
- package/lib/util/bufferPool.js.map +1 -1
- package/lib/util/clock.js +18 -23
- package/lib/util/clock.js.map +1 -1
- package/lib/util/dataColumns.d.ts +12 -15
- package/lib/util/dataColumns.js +132 -90
- package/lib/util/dataColumns.js.map +1 -1
- package/lib/util/itTrigger.js +4 -4
- package/lib/util/itTrigger.js.map +1 -1
- package/lib/util/map.js +0 -2
- package/lib/util/map.js.map +1 -1
- package/lib/util/queue/itemQueue.js +49 -52
- package/lib/util/queue/itemQueue.js.map +1 -1
- package/lib/util/serializedCache.js +3 -1
- package/lib/util/serializedCache.js.map +1 -1
- package/lib/util/set.js +0 -2
- package/lib/util/set.js.map +1 -1
- package/lib/util/sszBytes.d.ts +0 -1
- package/lib/util/sszBytes.js +1 -1
- package/lib/util/sszBytes.js.map +1 -1
- package/lib/util/timeSeries.js +1 -3
- 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 +0 -7
- package/package.json +16 -22
- package/lib/bun-wrappers/prometheus-gc-stats.d.ts +0 -2
- package/lib/bun-wrappers/prometheus-gc-stats.js +0 -8
- package/lib/bun-wrappers/prometheus-gc-stats.js.map +0 -1
- package/lib/chain/ColumnReconstructionTracker.d.ts +0 -32
- package/lib/chain/ColumnReconstructionTracker.js +0 -67
- package/lib/chain/ColumnReconstructionTracker.js.map +0 -1
- package/lib/chain/GetBlobsTracker.d.ts +0 -31
- package/lib/chain/GetBlobsTracker.js +0 -82
- package/lib/chain/GetBlobsTracker.js.map +0 -1
- package/lib/sync/types.d.ts +0 -44
- package/lib/sync/types.js +0 -34
- package/lib/sync/types.js.map +0 -1
- package/lib/sync/utils/downloadByRange.d.ts +0 -186
- package/lib/sync/utils/downloadByRange.js +0 -457
- package/lib/sync/utils/downloadByRange.js.map +0 -1
- package/lib/sync/utils/downloadByRoot.d.ts +0 -119
- package/lib/sync/utils/downloadByRoot.js +0 -319
- package/lib/sync/utils/downloadByRoot.js.map +0 -1
- package/lib/util/execution.d.ts +0 -20
- package/lib/util/execution.js +0 -148
- package/lib/util/execution.js.map +0 -1
|
@@ -11,11 +11,10 @@ const MAX_SLOTS_IN_CACHE = 8;
|
|
|
11
11
|
* This stays in-memory and should be pruned per slot.
|
|
12
12
|
*/
|
|
13
13
|
export class SeenContributionAndProof {
|
|
14
|
-
metrics;
|
|
15
|
-
seenAggregatorBySlot = new MapDef(() => new Set());
|
|
16
|
-
seenContributionBySlot = new MapDef(() => new MapDef(() => []));
|
|
17
14
|
constructor(metrics) {
|
|
18
15
|
this.metrics = metrics;
|
|
16
|
+
this.seenAggregatorBySlot = new MapDef(() => new Set());
|
|
17
|
+
this.seenContributionBySlot = new MapDef(() => new MapDef(() => []));
|
|
19
18
|
}
|
|
20
19
|
/**
|
|
21
20
|
* _[IGNORE]_ A valid sync committee contribution with equal `slot`, `beacon_block_root` and `subcommittee_index` whose
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seenCommitteeContribution.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenCommitteeContribution.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAkB,UAAU,EAAC,MAAM,4BAA4B,CAAC;AAEvE;;GAEG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAQ7B;;;;GAIG;AACH,MAAM,OAAO,wBAAwB;
|
|
1
|
+
{"version":3,"file":"seenCommitteeContribution.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenCommitteeContribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,90 +1,94 @@
|
|
|
1
1
|
import { ChainForkConfig } from "@lodestar/config";
|
|
2
|
-
import {
|
|
3
|
-
import { RootHex, deneb, fulu } from "@lodestar/types";
|
|
2
|
+
import { ForkName } from "@lodestar/params";
|
|
3
|
+
import { RootHex, SignedBeaconBlock, deneb, fulu } from "@lodestar/types";
|
|
4
4
|
import { Logger } from "@lodestar/utils";
|
|
5
|
-
import {
|
|
5
|
+
import { IExecutionEngine } from "../../execution/index.js";
|
|
6
|
+
import { Metrics } from "../../metrics/index.js";
|
|
6
7
|
import { IClock } from "../../util/clock.js";
|
|
7
8
|
import { CustodyConfig } from "../../util/dataColumns.js";
|
|
8
|
-
import { BlockInput,
|
|
9
|
+
import { BlockInput, CachedData, GossipedInputType, NullBlockInput } from "../blocks/types.js";
|
|
9
10
|
import { ChainEventEmitter } from "../emitter.js";
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
export declare enum BlockInputAvailabilitySource {
|
|
12
|
+
GOSSIP = "gossip",
|
|
13
|
+
RECOVERED = "recovered",
|
|
14
|
+
UNKNOWN_SYNC = "unknown_sync"
|
|
15
|
+
}
|
|
16
|
+
type GossipedBlockInput = {
|
|
17
|
+
type: GossipedInputType.block;
|
|
18
|
+
signedBlock: SignedBeaconBlock;
|
|
19
|
+
} | {
|
|
20
|
+
type: GossipedInputType.blob;
|
|
21
|
+
blobSidecar: deneb.BlobSidecar;
|
|
22
|
+
} | {
|
|
23
|
+
type: GossipedInputType.dataColumn;
|
|
24
|
+
dataColumnSidecar: fulu.DataColumnSidecar;
|
|
25
|
+
dataColumnBytes: Uint8Array | null;
|
|
26
|
+
};
|
|
27
|
+
export type BlockInputCacheType = {
|
|
28
|
+
fork: ForkName;
|
|
29
|
+
block?: SignedBeaconBlock;
|
|
30
|
+
cachedData?: CachedData;
|
|
31
|
+
blockInputPromise: Promise<BlockInput>;
|
|
32
|
+
resolveBlockInput: (blockInput: BlockInput) => void;
|
|
33
|
+
};
|
|
34
|
+
type GossipBlockInputResponseWithBlock = {
|
|
35
|
+
blockInput: BlockInput;
|
|
36
|
+
blockInputMeta: {
|
|
37
|
+
pending: GossipedInputType.blob | null;
|
|
38
|
+
haveBlobs: number;
|
|
39
|
+
expectedBlobs: number;
|
|
40
|
+
} | {
|
|
41
|
+
pending: GossipedInputType.dataColumn | null;
|
|
42
|
+
haveColumns: number;
|
|
43
|
+
expectedColumns: number;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
type BlockInputPendingBlock = {
|
|
47
|
+
pending: GossipedInputType.block;
|
|
48
|
+
};
|
|
49
|
+
export type BlockInputMetaPendingBlockWithBlobs = BlockInputPendingBlock & {
|
|
50
|
+
haveBlobs: number;
|
|
51
|
+
expectedBlobs: null;
|
|
52
|
+
};
|
|
53
|
+
type BlockInputMetaPendingBlockWithColumns = BlockInputPendingBlock & {
|
|
54
|
+
haveColumns: number;
|
|
55
|
+
expectedColumns: null;
|
|
18
56
|
};
|
|
19
|
-
|
|
20
|
-
|
|
57
|
+
type GossipBlockInputResponseWithNullBlock = {
|
|
58
|
+
blockInput: NullBlockInput;
|
|
59
|
+
blockInputMeta: BlockInputMetaPendingBlockWithBlobs | BlockInputMetaPendingBlockWithColumns;
|
|
21
60
|
};
|
|
61
|
+
type GossipBlockInputResponse = GossipBlockInputResponseWithBlock | GossipBlockInputResponseWithNullBlock;
|
|
22
62
|
/**
|
|
23
|
-
*
|
|
63
|
+
* For predeneb, SeenGossipBlockInput only tracks and caches block so that we don't need to download known block
|
|
64
|
+
* roots. From deneb, it serves same purpose plus tracks and caches the live blobs and blocks on the network to
|
|
65
|
+
* solve data availability for the blockInput. If no block has been seen yet for some already seen blobs, it
|
|
66
|
+
* responds will null, but on the first block or the consequent blobs it responds with blobs promise till all blobs
|
|
67
|
+
* become available.
|
|
24
68
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* - publishBlock in the beacon/blocks/index.ts API
|
|
29
|
-
* https://github.com/ChainSafe/lodestar/blob/unstable/packages/beacon-node/src/api/impl/beacon/blocks/index.ts#L62
|
|
30
|
-
* - maybeValidateBlobs in verifyBlocksDataAvailability (is_data_available spec function)
|
|
31
|
-
* https://github.com/ChainSafe/lodestar/blob/unstable/packages/beacon-node/src/chain/blocks/verifyBlocksDataAvailability.ts#L111
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* Pruning management for SeenBlockInputCache
|
|
35
|
-
* ------------------------------------------
|
|
36
|
-
* There are four cases for how pruning needs to be handled
|
|
37
|
-
* - Normal operation following head via gossip (and/or reqresp). For this situation the consumer (process pipeline or
|
|
38
|
-
* caller of processBlock) will call the `prune` method to remove any processed BlockInputs from the cache. This will
|
|
39
|
-
* also remove any ancestors of the processed BlockInput as that will also need to have been successfully processed
|
|
40
|
-
* for import to work correctly
|
|
41
|
-
* - onFinalized event handler will help to prune any non-canonical forks once the chain finalizes. Any block-slots that
|
|
42
|
-
* are before the finalized checkpoint will be pruned.
|
|
43
|
-
* - Range-sync periods. The range process uses this cache to store and sync blocks with DA data as the chain is pulled
|
|
44
|
-
* from peers. We pull batches, by epoch, so 32 slots are pulled at a time and several batches are pulled concurrently.
|
|
45
|
-
* It is important to set the MAX_BLOCK_INPUT_CACHE_SIZE high enough to support range sync activities. Currently the
|
|
46
|
-
* value is set for 5 batches of 32 slots. As process block is called (similar to following head) the BlockInput and
|
|
47
|
-
* its ancestors will be pruned.
|
|
48
|
-
* - Non-Finality times. This is a bit more tricky. There can be long periods of non-finality and storing everything
|
|
49
|
-
* will cause OOM. The pruneToMax will help ensure a hard limit on the number of stored blocks (with DA) that are held
|
|
50
|
-
* in memory at any one time. The value for MAX_BLOCK_INPUT_CACHE_SIZE is set to accommodate range-sync but in
|
|
51
|
-
* practice this value may need to be massaged in the future if we find issues when debugging non-finality
|
|
69
|
+
* One can start processing block on blobs promise blockInput response and can await on the promise before
|
|
70
|
+
* fully importing the block. The blobs promise is gets resolved as soon as all blobs corresponding to that
|
|
71
|
+
* block are seen by SeenGossipBlockInput
|
|
52
72
|
*/
|
|
53
|
-
export declare class
|
|
54
|
-
private readonly
|
|
73
|
+
export declare class SeenGossipBlockInput {
|
|
74
|
+
private readonly blockInputCache;
|
|
55
75
|
private readonly custodyConfig;
|
|
76
|
+
private readonly executionEngine;
|
|
56
77
|
private readonly clock;
|
|
57
|
-
private readonly
|
|
58
|
-
private readonly
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
has(rootHex: RootHex): boolean;
|
|
64
|
-
get(rootHex: RootHex): IBlockInput | undefined;
|
|
65
|
-
/**
|
|
66
|
-
* Removes the single BlockInput from the cache
|
|
67
|
-
*/
|
|
68
|
-
remove(rootHex: RootHex): void;
|
|
69
|
-
/**
|
|
70
|
-
* Removes a processed BlockInput from the cache and also removes any ancestors of processed blocks
|
|
71
|
-
*/
|
|
72
|
-
prune(rootHex: RootHex): void;
|
|
73
|
-
onFinalized: (checkpoint: CheckpointWithHex) => void;
|
|
74
|
-
getByBlock({ blockRootHex, block, source, seenTimestampSec, peerIdStr }: BlockWithSource): BlockInput;
|
|
75
|
-
getByBlob({ blockRootHex, blobSidecar, source, seenTimestampSec, peerIdStr, }: SourceMeta & {
|
|
76
|
-
blockRootHex: RootHex;
|
|
77
|
-
blobSidecar: deneb.BlobSidecar;
|
|
78
|
-
}, opts?: GetByBlobOptions): BlockInputBlobs;
|
|
79
|
-
getByColumn({ blockRootHex, columnSidecar, seenTimestampSec, source, peerIdStr, }: SourceMeta & {
|
|
80
|
-
blockRootHex: RootHex;
|
|
81
|
-
columnSidecar: fulu.DataColumnSidecar;
|
|
82
|
-
}, opts?: GetByBlobOptions): BlockInputColumns;
|
|
83
|
-
private buildCommonProps;
|
|
78
|
+
private readonly emitter;
|
|
79
|
+
private readonly logger;
|
|
80
|
+
constructor(custodyConfig: CustodyConfig, executionEngine: IExecutionEngine, emitter: ChainEventEmitter, clock: IClock, logger: Logger);
|
|
81
|
+
globalCacheId: number;
|
|
82
|
+
prune(): void;
|
|
83
|
+
hasBlock(blockRoot: RootHex): boolean;
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
85
|
+
* Intended to be used for gossip validation, specifically this check:
|
|
86
|
+
* [IGNORE] The sidecar is the first sidecar for the tuple (block_header.slot, block_header.proposer_index,
|
|
87
|
+
* sidecar.index) with valid header signature, sidecar inclusion proof, and kzg proof
|
|
87
88
|
*/
|
|
88
|
-
|
|
89
|
+
hasDataColumnSidecar(sidecar: fulu.DataColumnSidecar): boolean;
|
|
90
|
+
getGossipBlockInput(config: ChainForkConfig, gossipedInput: GossipedBlockInput, metrics: Metrics | null): GossipBlockInputResponse;
|
|
89
91
|
}
|
|
92
|
+
export declare function getEmptyBlockInputCacheEntry(fork: ForkName, globalCacheId: number): BlockInputCacheType;
|
|
93
|
+
export {};
|
|
90
94
|
//# sourceMappingURL=seenGossipBlockInput.d.ts.map
|