@lodestar/beacon-node 1.35.0-dev.47c570ab76 → 1.35.0-dev.56313c7299
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/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/debug/index.js +1 -1
- package/lib/api/impl/debug/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/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 +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.d.ts +1 -1
- package/lib/api/rest/base.js +2 -6
- 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 -3
- 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 +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/index.d.ts +1 -1
- package/lib/chain/blocks/blockInput/index.js +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 +5 -6
- 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 -168
- 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 +11 -13
- 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/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 +5 -16
- 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 +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/lightClient/proofs.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +9 -14
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/opPools/attestationPool.js +3 -8
- 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 +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/options.js +1 -1
- package/lib/chain/options.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/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 +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/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 +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/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 +6 -14
- 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 +57 -95
- 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 +2 -1
- package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
- package/lib/chain/validatorMonitor.d.ts +3 -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/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 +3 -2
- package/lib/db/repositories/blockArchive.js.map +1 -1
- 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/db/repositories/depositDataRoot.js +0 -1
- 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/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.d.ts +2 -1
- package/lib/eth1/provider/eth1Provider.js +2 -6
- package/lib/eth1/provider/eth1Provider.js.map +1 -1
- package/lib/eth1/provider/jsonRpcHttpClient.d.ts +1 -1
- package/lib/eth1/provider/jsonRpcHttpClient.js +2 -16
- 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 +0 -5
- package/lib/eth1/provider/utils.js +1 -9
- package/lib/eth1/provider/utils.js.map +1 -1
- package/lib/eth1/utils/deposits.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/builder/index.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/interface.js.map +1 -1
- 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 +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 +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/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 +6 -10
- package/lib/metrics/utils/avgMinMax.js.map +1 -1
- package/lib/metrics/utils/gauge.d.ts +1 -1
- package/lib/metrics/utils/gauge.js +4 -1
- 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 +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 +2 -2
- package/lib/network/core/networkCore.js +50 -67
- 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 -14
- package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
- package/lib/network/discv5/index.d.ts +2 -2
- package/lib/network/discv5/index.js +3 -9
- 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 +18 -2
- package/lib/network/events.js +7 -0
- package/lib/network/events.js.map +1 -1
- package/lib/network/gossip/encoding.d.ts +1 -1
- package/lib/network/gossip/encoding.js +2 -4
- 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.d.ts +1 -2
- package/lib/network/gossip/gossipsub.js +17 -43
- 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/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/gossip/topic.d.ts +105 -125
- package/lib/network/gossip/topic.js +1 -2
- 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 +2 -3
- package/lib/network/libp2p/index.js +3 -11
- package/lib/network/libp2p/index.js.map +1 -1
- package/lib/network/metadata.js +1 -6
- package/lib/network/metadata.js.map +1 -1
- package/lib/network/network.d.ts +2 -4
- 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.d.ts +2 -2
- package/lib/network/peers/datastore.js +4 -10
- package/lib/network/peers/datastore.js.map +1 -1
- package/lib/network/peers/discover.js +66 -75
- 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/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 +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/prioritizePeers.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 +8 -22
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.d.ts +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/handlers/dataColumnSidecarsByRoot.js.map +1 -1
- package/lib/network/reqresp/index.d.ts +3 -1
- package/lib/network/reqresp/index.js +3 -1
- package/lib/network/reqresp/index.js.map +1 -1
- package/lib/network/reqresp/rateLimit.js +2 -2
- package/lib/network/reqresp/rateLimit.js.map +1 -1
- package/lib/network/reqresp/utils/dataColumnResponseValidation.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/interface.js +1 -1
- package/lib/network/subnets/interface.js.map +1 -1
- package/lib/network/subnets/syncnetsService.js +22 -29
- package/lib/network/subnets/syncnetsService.js.map +1 -1
- package/lib/network/subnets/util.js +2 -1
- package/lib/network/subnets/util.js.map +1 -1
- package/lib/node/nodejs.d.ts +1 -1
- package/lib/node/nodejs.js +0 -15
- package/lib/node/nodejs.js.map +1 -1
- package/lib/node/notifier.js +2 -1
- package/lib/node/notifier.js.map +1 -1
- package/lib/node/options.js.map +1 -1
- package/lib/node/utils/interop/state.js +2 -1
- 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 +16 -58
- 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 +3 -3
- 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.d.ts +2 -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 -405
- 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.d.ts +1 -1
- package/lib/util/clock.js +18 -23
- package/lib/util/clock.js.map +1 -1
- package/lib/util/dataColumns.d.ts +10 -13
- 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/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 +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/wrapError.d.ts +0 -7
- package/package.json +18 -36
- 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 -71
- 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 -121
- package/lib/sync/utils/downloadByRoot.js +0 -346
- package/lib/sync/utils/downloadByRoot.js.map +0 -1
- package/lib/util/execution.d.ts +0 -20
- package/lib/util/execution.js +0 -165
- package/lib/util/execution.js.map +0 -1
package/lib/util/execution.js
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { routes } from "@lodestar/api";
|
|
2
|
-
import { signedBlockToSignedHeader } from "@lodestar/state-transition";
|
|
3
|
-
import { toHex } from "@lodestar/utils";
|
|
4
|
-
import { isBlockInputBlobs, isBlockInputColumns } from "../chain/blocks/blockInput/blockInput.js";
|
|
5
|
-
import { BlockInputSource } from "../chain/blocks/blockInput/types.js";
|
|
6
|
-
import { ChainEvent } from "../chain/emitter.js";
|
|
7
|
-
import { computePreFuluKzgCommitmentsInclusionProof } from "./blobs.js";
|
|
8
|
-
import { getCellsAndProofs, getDataColumnSidecarsFromBlock, getDataColumnSidecarsFromColumnSidecar, } from "./dataColumns.js";
|
|
9
|
-
export var DataColumnEngineResult;
|
|
10
|
-
(function (DataColumnEngineResult) {
|
|
11
|
-
DataColumnEngineResult["PreFulu"] = "pre_fulu";
|
|
12
|
-
// the recover is not attempted because it has full data columns
|
|
13
|
-
DataColumnEngineResult["NotAttemptedFull"] = "not_attempted_full";
|
|
14
|
-
// block has no blob so no need to call EL
|
|
15
|
-
DataColumnEngineResult["NotAttemptedNoBlobs"] = "not_attempted_no_blobs";
|
|
16
|
-
// EL call returned null, meaning it could not find the blobs
|
|
17
|
-
DataColumnEngineResult["NullResponse"] = "null_response";
|
|
18
|
-
// the recover is a success and it helps resolve availability
|
|
19
|
-
DataColumnEngineResult["SuccessResolved"] = "success_resolved";
|
|
20
|
-
// the recover is a success but it's late, availability is already resolved by either gossip or getBlobsV2
|
|
21
|
-
DataColumnEngineResult["SuccessLate"] = "success_late";
|
|
22
|
-
DataColumnEngineResult["Failed"] = "failed";
|
|
23
|
-
})(DataColumnEngineResult || (DataColumnEngineResult = {}));
|
|
24
|
-
export async function getBlobSidecarsFromExecution(config, executionEngine, metrics, emitter, blockInput) {
|
|
25
|
-
if (!isBlockInputBlobs(blockInput)) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
if (blockInput.hasAllData()) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const forkName = blockInput.forkName;
|
|
32
|
-
const blobMeta = blockInput.getMissingBlobMeta();
|
|
33
|
-
metrics?.blobs.getBlobsV1Requests.inc();
|
|
34
|
-
metrics?.blobs.getBlobsV1RequestedBlobCount.inc(blobMeta.length);
|
|
35
|
-
const enginedResponse = await executionEngine
|
|
36
|
-
.getBlobs(forkName, blobMeta.map(({ versionedHash }) => versionedHash))
|
|
37
|
-
.catch((_e) => {
|
|
38
|
-
// TODO(fulu): this should only count as a single error? need to update the promql to reflect this
|
|
39
|
-
metrics?.blobs.getBlobsV1Error.inc(blobMeta.length);
|
|
40
|
-
return null;
|
|
41
|
-
});
|
|
42
|
-
if (enginedResponse === null) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
const block = blockInput.getBlock();
|
|
46
|
-
const blobSidecars = [];
|
|
47
|
-
// response.length should always match blobMeta.length and they should be in the same order
|
|
48
|
-
for (let i = 0; i < blobMeta.length; i++) {
|
|
49
|
-
const blobAndProof = enginedResponse[i];
|
|
50
|
-
if (!blobAndProof) {
|
|
51
|
-
metrics?.blobs.getBlobsV1Miss.inc();
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
metrics?.blobs.getBlobsV1Hit.inc();
|
|
55
|
-
if (blockInput.hasBlob(blobMeta[i].index)) {
|
|
56
|
-
// blob arrived and was cached while waiting for API response
|
|
57
|
-
metrics?.blobs.getBlobsV1HitButArrivedWhileWaiting.inc();
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
metrics?.blobs.getBlobsV1HitUseful.inc();
|
|
61
|
-
const { blob, proof } = blobAndProof;
|
|
62
|
-
const index = blobMeta[i].index;
|
|
63
|
-
const kzgCommitment = block.message.body.blobKzgCommitments[index];
|
|
64
|
-
const blobSidecar = {
|
|
65
|
-
index,
|
|
66
|
-
blob,
|
|
67
|
-
kzgProof: proof,
|
|
68
|
-
kzgCommitment,
|
|
69
|
-
// TODO(fulu): refactor this to only calculate the root inside these following two functions once
|
|
70
|
-
kzgCommitmentInclusionProof: computePreFuluKzgCommitmentsInclusionProof(forkName, block.message.body, index),
|
|
71
|
-
signedBlockHeader: signedBlockToSignedHeader(config, block),
|
|
72
|
-
};
|
|
73
|
-
blockInput.addBlob({
|
|
74
|
-
blobSidecar,
|
|
75
|
-
blockRootHex: blockInput.blockRootHex,
|
|
76
|
-
seenTimestampSec: Date.now() / 1000,
|
|
77
|
-
source: BlockInputSource.engine,
|
|
78
|
-
});
|
|
79
|
-
if (emitter.listenerCount(routes.events.EventType.blobSidecar)) {
|
|
80
|
-
emitter.emit(routes.events.EventType.blobSidecar, {
|
|
81
|
-
blockRoot: blockInput.blockRootHex,
|
|
82
|
-
slot: blockInput.slot,
|
|
83
|
-
index,
|
|
84
|
-
kzgCommitment: toHex(kzgCommitment),
|
|
85
|
-
versionedHash: toHex(blobMeta[i].versionedHash),
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
blobSidecars.push(blobSidecar);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
emitter.emit(ChainEvent.publishBlobSidecars, blobSidecars);
|
|
92
|
-
metrics?.gossipBlob.publishedFromEngine.inc(blobSidecars.length);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Post fulu, call getBlobsV2 from execution engine once per slot whenever we see either beacon_block or data_column_sidecar gossip message
|
|
96
|
-
*/
|
|
97
|
-
export async function getDataColumnSidecarsFromExecution(config, executionEngine, emitter, blockInput, metrics, blobAndProofBuffers) {
|
|
98
|
-
// If its not a column block input, exit
|
|
99
|
-
if (!isBlockInputColumns(blockInput)) {
|
|
100
|
-
return DataColumnEngineResult.PreFulu;
|
|
101
|
-
}
|
|
102
|
-
// If already have all columns, exit
|
|
103
|
-
if (blockInput.hasAllData()) {
|
|
104
|
-
return DataColumnEngineResult.NotAttemptedFull;
|
|
105
|
-
}
|
|
106
|
-
const versionedHashes = blockInput.getVersionedHashes();
|
|
107
|
-
// If there are no blobs in this block, exit
|
|
108
|
-
if (versionedHashes.length === 0) {
|
|
109
|
-
return DataColumnEngineResult.NotAttemptedNoBlobs;
|
|
110
|
-
}
|
|
111
|
-
// Get blobs from execution engine
|
|
112
|
-
metrics?.peerDas.getBlobsV2Requests.inc();
|
|
113
|
-
const timer = metrics?.peerDas.getBlobsV2RequestDuration.startTimer();
|
|
114
|
-
const blobs = await executionEngine.getBlobs(blockInput.forkName, versionedHashes, blobAndProofBuffers);
|
|
115
|
-
timer?.();
|
|
116
|
-
// Execution engine was unable to find one or more blobs
|
|
117
|
-
if (blobs === null) {
|
|
118
|
-
return DataColumnEngineResult.NullResponse;
|
|
119
|
-
}
|
|
120
|
-
metrics?.peerDas.getBlobsV2Responses.inc();
|
|
121
|
-
// Return if we received all data columns while waiting for getBlobs
|
|
122
|
-
if (blockInput.hasAllData()) {
|
|
123
|
-
return DataColumnEngineResult.SuccessLate;
|
|
124
|
-
}
|
|
125
|
-
let dataColumnSidecars;
|
|
126
|
-
const cellsAndProofs = await getCellsAndProofs(blobs);
|
|
127
|
-
if (blockInput.hasBlock()) {
|
|
128
|
-
dataColumnSidecars = getDataColumnSidecarsFromBlock(config, blockInput.getBlock(), cellsAndProofs);
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
const firstSidecar = blockInput.getAllColumns()[0];
|
|
132
|
-
dataColumnSidecars = getDataColumnSidecarsFromColumnSidecar(firstSidecar, cellsAndProofs);
|
|
133
|
-
}
|
|
134
|
-
// Publish columns if and only if subscribed to them
|
|
135
|
-
const previouslyMissingColumns = blockInput.getMissingSampledColumnMeta().missing;
|
|
136
|
-
const sampledColumns = previouslyMissingColumns.map((columnIndex) => dataColumnSidecars[columnIndex]);
|
|
137
|
-
// for columns that we already seen, it will be ignored through `ignoreDuplicatePublishError` gossip option
|
|
138
|
-
emitter.emit(ChainEvent.publishDataColumns, sampledColumns);
|
|
139
|
-
// add all sampled columns to the block input, even if we didn't sample them
|
|
140
|
-
const seenTimestampSec = Date.now() / 1000;
|
|
141
|
-
for (const columnSidecar of sampledColumns) {
|
|
142
|
-
if (blockInput.hasColumn(columnSidecar.index)) {
|
|
143
|
-
// columns may have been added while waiting
|
|
144
|
-
// TODO(fulu): add metrics for this condition
|
|
145
|
-
continue;
|
|
146
|
-
}
|
|
147
|
-
blockInput.addColumn({
|
|
148
|
-
columnSidecar,
|
|
149
|
-
blockRootHex: blockInput.blockRootHex,
|
|
150
|
-
source: BlockInputSource.engine,
|
|
151
|
-
seenTimestampSec,
|
|
152
|
-
});
|
|
153
|
-
if (emitter.listenerCount(routes.events.EventType.dataColumnSidecar)) {
|
|
154
|
-
emitter.emit(routes.events.EventType.dataColumnSidecar, {
|
|
155
|
-
blockRoot: blockInput.blockRootHex,
|
|
156
|
-
slot: blockInput.slot,
|
|
157
|
-
index: columnSidecar.index,
|
|
158
|
-
kzgCommitments: columnSidecar.kzgCommitments.map(toHex),
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
metrics?.dataColumns.bySource.inc({ source: BlockInputSource.engine }, previouslyMissingColumns.length);
|
|
163
|
-
return DataColumnEngineResult.SuccessResolved;
|
|
164
|
-
}
|
|
165
|
-
//# sourceMappingURL=execution.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/util/execution.ts"],"names":[],"mappings":"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"}
|