@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
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import { isForkPostDeneb, isForkPostFulu } from "@lodestar/params";
|
|
2
|
+
import { LodestarError, fromHex, prettyBytes, prettyPrintIndices, toRootHex } from "@lodestar/utils";
|
|
3
|
+
import { isBlockInputBlobs, isBlockInputColumns } from "../../chain/blocks/blockInput/blockInput.js";
|
|
4
|
+
import { BlockInputSource } from "../../chain/blocks/blockInput/types.js";
|
|
5
|
+
import { validateBlockBlobSidecars } from "../../chain/validation/blobSidecar.js";
|
|
6
|
+
import { validateBlockDataColumnSidecars } from "../../chain/validation/dataColumnSidecar.js";
|
|
7
|
+
import { prettyPrintPeerIdStr } from "../../network/util.js";
|
|
8
|
+
import { byteArrayEquals } from "../../util/bytes.js";
|
|
9
|
+
import { PendingBlockInputStatus, getBlockInputSyncCacheItemRootHex, isPendingBlockInput, } from "../types.js";
|
|
10
|
+
export async function downloadByRoot({ config, seenCache, network, peerMeta, cacheItem, }) {
|
|
11
|
+
const rootHex = getBlockInputSyncCacheItemRootHex(cacheItem);
|
|
12
|
+
const blockRoot = fromHex(rootHex);
|
|
13
|
+
const { peerId: peerIdStr } = peerMeta;
|
|
14
|
+
const { result: { block, blobSidecars, columnSidecars }, warnings, } = await fetchByRoot({
|
|
15
|
+
config,
|
|
16
|
+
network,
|
|
17
|
+
cacheItem,
|
|
18
|
+
blockRoot,
|
|
19
|
+
peerMeta,
|
|
20
|
+
});
|
|
21
|
+
let blockInput;
|
|
22
|
+
if (isPendingBlockInput(cacheItem)) {
|
|
23
|
+
blockInput = cacheItem.blockInput;
|
|
24
|
+
if (!blockInput.hasBlock()) {
|
|
25
|
+
blockInput.addBlock({
|
|
26
|
+
block,
|
|
27
|
+
blockRootHex: rootHex,
|
|
28
|
+
source: BlockInputSource.byRoot,
|
|
29
|
+
seenTimestampSec: Date.now(),
|
|
30
|
+
peerIdStr,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
blockInput = seenCache.getByBlock({
|
|
36
|
+
block,
|
|
37
|
+
peerIdStr,
|
|
38
|
+
blockRootHex: rootHex,
|
|
39
|
+
seenTimestampSec: Date.now(),
|
|
40
|
+
source: BlockInputSource.byRoot,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
const hasAllDataPreDownload = blockInput.hasBlockAndAllData();
|
|
44
|
+
if (isBlockInputBlobs(blockInput) && !hasAllDataPreDownload) {
|
|
45
|
+
// blobSidecars could be undefined if gossip resulted in full block+blobs so we don't download any
|
|
46
|
+
if (!blobSidecars) {
|
|
47
|
+
throw new DownloadByRootError({
|
|
48
|
+
code: DownloadByRootErrorCode.MISSING_BLOB_RESPONSE,
|
|
49
|
+
blockRoot: prettyBytes(rootHex),
|
|
50
|
+
peer: peerIdStr,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
for (const blobSidecar of blobSidecars) {
|
|
54
|
+
blockInput.addBlob({
|
|
55
|
+
blobSidecar,
|
|
56
|
+
blockRootHex: rootHex,
|
|
57
|
+
seenTimestampSec: Date.now(),
|
|
58
|
+
source: BlockInputSource.byRoot,
|
|
59
|
+
peerIdStr,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (isBlockInputColumns(blockInput) && !hasAllDataPreDownload) {
|
|
64
|
+
// columnSidecars could be undefined if gossip resulted in full block+columns so we don't download any
|
|
65
|
+
if (!columnSidecars) {
|
|
66
|
+
throw new DownloadByRootError({
|
|
67
|
+
code: DownloadByRootErrorCode.MISSING_COLUMN_RESPONSE,
|
|
68
|
+
blockRoot: prettyBytes(rootHex),
|
|
69
|
+
peer: peerIdStr,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
for (const columnSidecar of columnSidecars) {
|
|
73
|
+
blockInput.addColumn({
|
|
74
|
+
columnSidecar,
|
|
75
|
+
blockRootHex: rootHex,
|
|
76
|
+
seenTimestampSec: Date.now(),
|
|
77
|
+
source: BlockInputSource.byRoot,
|
|
78
|
+
peerIdStr,
|
|
79
|
+
},
|
|
80
|
+
// the same DataColumnSidecar may be added by gossip while waiting for fetchByRoot
|
|
81
|
+
{ throwOnDuplicateAdd: false });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
let status;
|
|
85
|
+
let timeSyncedSec;
|
|
86
|
+
if (blockInput.hasBlockAndAllData()) {
|
|
87
|
+
status = PendingBlockInputStatus.downloaded;
|
|
88
|
+
timeSyncedSec = Date.now() / 1000;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
status = PendingBlockInputStatus.pending;
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
result: {
|
|
95
|
+
status,
|
|
96
|
+
blockInput,
|
|
97
|
+
timeSyncedSec,
|
|
98
|
+
timeAddedSec: cacheItem.timeAddedSec,
|
|
99
|
+
peerIdStrings: cacheItem.peerIdStrings,
|
|
100
|
+
},
|
|
101
|
+
warnings,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export async function fetchByRoot({ config, network, peerMeta, blockRoot, cacheItem, }) {
|
|
105
|
+
let block;
|
|
106
|
+
let blobSidecars;
|
|
107
|
+
let columnSidecarResult;
|
|
108
|
+
const { peerId: peerIdStr } = peerMeta;
|
|
109
|
+
if (isPendingBlockInput(cacheItem)) {
|
|
110
|
+
if (cacheItem.blockInput.hasBlock()) {
|
|
111
|
+
block = cacheItem.blockInput.getBlock();
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
block = await fetchAndValidateBlock({
|
|
115
|
+
config,
|
|
116
|
+
network,
|
|
117
|
+
peerIdStr,
|
|
118
|
+
blockRoot,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
const forkName = config.getForkName(block.message.slot);
|
|
122
|
+
if (!cacheItem.blockInput.hasAllData()) {
|
|
123
|
+
if (isBlockInputBlobs(cacheItem.blockInput)) {
|
|
124
|
+
blobSidecars = await fetchAndValidateBlobs({
|
|
125
|
+
config,
|
|
126
|
+
network,
|
|
127
|
+
peerIdStr,
|
|
128
|
+
forkName: forkName,
|
|
129
|
+
block: block,
|
|
130
|
+
blockRoot,
|
|
131
|
+
missing: cacheItem.blockInput.getMissingBlobMeta().map(({ index }) => index),
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
if (isBlockInputColumns(cacheItem.blockInput)) {
|
|
135
|
+
columnSidecarResult = await fetchAndValidateColumns({
|
|
136
|
+
config,
|
|
137
|
+
network,
|
|
138
|
+
peerMeta,
|
|
139
|
+
forkName: forkName,
|
|
140
|
+
block: block,
|
|
141
|
+
blockRoot,
|
|
142
|
+
missing: cacheItem.blockInput.getMissingSampledColumnMeta().missing,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
block = await fetchAndValidateBlock({
|
|
149
|
+
config,
|
|
150
|
+
network,
|
|
151
|
+
peerIdStr,
|
|
152
|
+
blockRoot,
|
|
153
|
+
});
|
|
154
|
+
const forkName = config.getForkName(block.message.slot);
|
|
155
|
+
if (isForkPostFulu(forkName)) {
|
|
156
|
+
columnSidecarResult = await fetchAndValidateColumns({
|
|
157
|
+
config,
|
|
158
|
+
network,
|
|
159
|
+
peerMeta,
|
|
160
|
+
forkName,
|
|
161
|
+
blockRoot,
|
|
162
|
+
block: block,
|
|
163
|
+
missing: network.custodyConfig.sampledColumns,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
else if (isForkPostDeneb(forkName)) {
|
|
167
|
+
const commitments = block.message.body.blobKzgCommitments;
|
|
168
|
+
const blobCount = commitments.length;
|
|
169
|
+
blobSidecars = await fetchAndValidateBlobs({
|
|
170
|
+
config,
|
|
171
|
+
network,
|
|
172
|
+
peerIdStr,
|
|
173
|
+
forkName: forkName,
|
|
174
|
+
blockRoot,
|
|
175
|
+
block: block,
|
|
176
|
+
missing: Array.from({ length: blobCount }, (_, i) => i),
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return {
|
|
181
|
+
result: {
|
|
182
|
+
block,
|
|
183
|
+
blobSidecars,
|
|
184
|
+
columnSidecars: columnSidecarResult?.result,
|
|
185
|
+
},
|
|
186
|
+
warnings: columnSidecarResult?.warnings ?? null,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
export async function fetchAndValidateBlock({ config, network, peerIdStr, blockRoot, }) {
|
|
190
|
+
const response = await network.sendBeaconBlocksByRoot(peerIdStr, [blockRoot]);
|
|
191
|
+
const block = response.at(0)?.data;
|
|
192
|
+
if (!block) {
|
|
193
|
+
throw new DownloadByRootError({
|
|
194
|
+
code: DownloadByRootErrorCode.MISSING_BLOCK_RESPONSE,
|
|
195
|
+
peer: prettyPrintPeerIdStr(peerIdStr),
|
|
196
|
+
blockRoot: prettyBytes(blockRoot),
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
const receivedRoot = config.getForkTypes(block.message.slot).BeaconBlock.hashTreeRoot(block.message);
|
|
200
|
+
if (!byteArrayEquals(receivedRoot, blockRoot)) {
|
|
201
|
+
throw new DownloadByRootError({
|
|
202
|
+
code: DownloadByRootErrorCode.MISMATCH_BLOCK_ROOT,
|
|
203
|
+
peer: prettyPrintPeerIdStr(peerIdStr),
|
|
204
|
+
requestedBlockRoot: prettyBytes(blockRoot),
|
|
205
|
+
receivedBlockRoot: prettyBytes(toRootHex(receivedRoot)),
|
|
206
|
+
}, "block does not match requested root");
|
|
207
|
+
}
|
|
208
|
+
return block;
|
|
209
|
+
}
|
|
210
|
+
export async function fetchAndValidateBlobs({ network, peerIdStr, blockRoot, block, missing, }) {
|
|
211
|
+
const blobSidecars = await fetchBlobsByRoot({
|
|
212
|
+
network,
|
|
213
|
+
peerIdStr,
|
|
214
|
+
blockRoot,
|
|
215
|
+
missing,
|
|
216
|
+
});
|
|
217
|
+
await validateBlockBlobSidecars(block.message.slot, blockRoot, missing.length, blobSidecars);
|
|
218
|
+
return blobSidecars;
|
|
219
|
+
}
|
|
220
|
+
export async function fetchBlobsByRoot({ network, peerIdStr, blockRoot, missing, indicesInPossession = [], }) {
|
|
221
|
+
const blobsRequest = missing
|
|
222
|
+
.filter((index) => !indicesInPossession.includes(index))
|
|
223
|
+
.map((index) => ({ blockRoot, index }));
|
|
224
|
+
if (!blobsRequest.length) {
|
|
225
|
+
return [];
|
|
226
|
+
}
|
|
227
|
+
return await network.sendBlobSidecarsByRoot(peerIdStr, blobsRequest);
|
|
228
|
+
}
|
|
229
|
+
export async function fetchAndValidateColumns({ network, peerMeta, block, blockRoot, missing, }) {
|
|
230
|
+
const { peerId: peerIdStr } = peerMeta;
|
|
231
|
+
const slot = block.message.slot;
|
|
232
|
+
const blobCount = block.message.body.blobKzgCommitments.length;
|
|
233
|
+
if (blobCount === 0) {
|
|
234
|
+
return { result: [], warnings: null };
|
|
235
|
+
}
|
|
236
|
+
const blockRootHex = toRootHex(blockRoot);
|
|
237
|
+
const peerColumns = new Set(peerMeta.custodyColumns ?? []);
|
|
238
|
+
const requestedColumns = missing.filter((c) => peerColumns.has(c));
|
|
239
|
+
const columnSidecars = await network.sendDataColumnSidecarsByRoot(peerIdStr, [
|
|
240
|
+
{ blockRoot, columns: requestedColumns },
|
|
241
|
+
]);
|
|
242
|
+
const warnings = [];
|
|
243
|
+
// it's not acceptable if no sidecar is returned with >0 blobCount
|
|
244
|
+
if (columnSidecars.length === 0) {
|
|
245
|
+
throw new DownloadByRootError({
|
|
246
|
+
code: DownloadByRootErrorCode.NO_SIDECAR_RECEIVED,
|
|
247
|
+
peer: prettyPrintPeerIdStr(peerIdStr),
|
|
248
|
+
slot,
|
|
249
|
+
blockRoot: blockRootHex,
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
// it's ok if only some sidecars are returned, we will try to get the rest from other peers
|
|
253
|
+
const requestedColumnsSet = new Set(requestedColumns);
|
|
254
|
+
const returnedColumns = columnSidecars.map((c) => c.index);
|
|
255
|
+
const returnedColumnsSet = new Set(returnedColumns);
|
|
256
|
+
const missingIndices = requestedColumns.filter((c) => !returnedColumnsSet.has(c));
|
|
257
|
+
if (missingIndices.length > 0) {
|
|
258
|
+
warnings.push(new DownloadByRootError({
|
|
259
|
+
code: DownloadByRootErrorCode.NOT_ENOUGH_SIDECARS_RECEIVED,
|
|
260
|
+
peer: prettyPrintPeerIdStr(peerIdStr),
|
|
261
|
+
slot,
|
|
262
|
+
blockRoot: blockRootHex,
|
|
263
|
+
missingIndices: prettyPrintIndices(missingIndices),
|
|
264
|
+
}, "Did not receive all of the requested columnSidecars"));
|
|
265
|
+
}
|
|
266
|
+
// check extra returned columnSidecar
|
|
267
|
+
const extraIndices = returnedColumns.filter((c) => !requestedColumnsSet.has(c));
|
|
268
|
+
if (extraIndices.length > 0) {
|
|
269
|
+
warnings.push(new DownloadByRootError({
|
|
270
|
+
code: DownloadByRootErrorCode.EXTRA_SIDECAR_RECEIVED,
|
|
271
|
+
peer: prettyPrintPeerIdStr(peerIdStr),
|
|
272
|
+
slot,
|
|
273
|
+
blockRoot: blockRootHex,
|
|
274
|
+
invalidIndices: prettyPrintIndices(extraIndices),
|
|
275
|
+
}, "Received columnSidecars that were not requested"));
|
|
276
|
+
}
|
|
277
|
+
await validateBlockDataColumnSidecars(slot, blockRoot, blobCount, columnSidecars);
|
|
278
|
+
return { result: columnSidecars, warnings: warnings.length > 0 ? warnings : null };
|
|
279
|
+
}
|
|
280
|
+
// TODO(fulu) not in use, remove?
|
|
281
|
+
export async function fetchColumnsByRoot({ network, peerMeta, blockRoot, missing, }) {
|
|
282
|
+
return await network.sendDataColumnSidecarsByRoot(peerMeta.peerId, [{ blockRoot, columns: missing }]);
|
|
283
|
+
}
|
|
284
|
+
// TODO(fulu) not in use, remove?
|
|
285
|
+
export async function validateColumnSidecars({ peerMeta, slot, blockRoot, blobCount, missing, needed = [], needToPublish = [], }) {
|
|
286
|
+
const requestedIndices = missing;
|
|
287
|
+
const extraIndices = [];
|
|
288
|
+
for (const columnSidecar of needed) {
|
|
289
|
+
if (!requestedIndices.includes(columnSidecar.index)) {
|
|
290
|
+
extraIndices.push(columnSidecar.index);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
if (extraIndices.length > 0) {
|
|
294
|
+
throw new DownloadByRootError({
|
|
295
|
+
code: DownloadByRootErrorCode.EXTRA_SIDECAR_RECEIVED,
|
|
296
|
+
peer: prettyPrintPeerIdStr(peerMeta.peerId),
|
|
297
|
+
slot,
|
|
298
|
+
blockRoot: prettyBytes(blockRoot),
|
|
299
|
+
invalidIndices: prettyPrintIndices(extraIndices),
|
|
300
|
+
}, "Received a columnSidecar that was not requested");
|
|
301
|
+
}
|
|
302
|
+
await validateBlockDataColumnSidecars(slot, blockRoot, blobCount, [...needed, ...needToPublish]);
|
|
303
|
+
}
|
|
304
|
+
export var DownloadByRootErrorCode;
|
|
305
|
+
(function (DownloadByRootErrorCode) {
|
|
306
|
+
DownloadByRootErrorCode["MISMATCH_BLOCK_ROOT"] = "DOWNLOAD_BY_ROOT_ERROR_MISMATCH_BLOCK_ROOT";
|
|
307
|
+
DownloadByRootErrorCode["EXTRA_SIDECAR_RECEIVED"] = "DOWNLOAD_BY_ROOT_ERROR_EXTRA_SIDECAR_RECEIVED";
|
|
308
|
+
DownloadByRootErrorCode["NO_SIDECAR_RECEIVED"] = "DOWNLOAD_BY_ROOT_ERROR_NO_SIDECAR_RECEIVED";
|
|
309
|
+
DownloadByRootErrorCode["NOT_ENOUGH_SIDECARS_RECEIVED"] = "DOWNLOAD_BY_ROOT_ERROR_NOT_ENOUGH_SIDECARS_RECEIVED";
|
|
310
|
+
DownloadByRootErrorCode["INVALID_INCLUSION_PROOF"] = "DOWNLOAD_BY_ROOT_ERROR_INVALID_INCLUSION_PROOF";
|
|
311
|
+
DownloadByRootErrorCode["INVALID_KZG_PROOF"] = "DOWNLOAD_BY_ROOT_ERROR_INVALID_KZG_PROOF";
|
|
312
|
+
DownloadByRootErrorCode["MISSING_BLOCK_RESPONSE"] = "DOWNLOAD_BY_ROOT_ERROR_MISSING_BLOCK_RESPONSE";
|
|
313
|
+
DownloadByRootErrorCode["MISSING_BLOB_RESPONSE"] = "DOWNLOAD_BY_ROOT_ERROR_MISSING_BLOB_RESPONSE";
|
|
314
|
+
DownloadByRootErrorCode["MISSING_COLUMN_RESPONSE"] = "DOWNLOAD_BY_ROOT_ERROR_MISSING_COLUMN_RESPONSE";
|
|
315
|
+
DownloadByRootErrorCode["Z"] = "DOWNLOAD_BY_ROOT_ERROR_Z";
|
|
316
|
+
})(DownloadByRootErrorCode || (DownloadByRootErrorCode = {}));
|
|
317
|
+
export class DownloadByRootError extends LodestarError {
|
|
318
|
+
}
|
|
319
|
+
//# sourceMappingURL=downloadByRoot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"downloadByRoot.js","sourceRoot":"","sources":["../../../src/sync/utils/downloadByRoot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import { RootHex } from "@lodestar/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare function getAllDescendantBlocks(blockRootHex: RootHex, blocks: Map<RootHex,
|
|
4
|
-
export declare function getDescendantBlocks(blockRootHex: RootHex, blocks: Map<RootHex,
|
|
2
|
+
import { BlockInputSyncCacheItem, PendingBlockInput } from "../types.js";
|
|
3
|
+
export declare function getAllDescendantBlocks(blockRootHex: RootHex, blocks: Map<RootHex, BlockInputSyncCacheItem>): BlockInputSyncCacheItem[];
|
|
4
|
+
export declare function getDescendantBlocks(blockRootHex: RootHex, blocks: Map<RootHex, BlockInputSyncCacheItem>): BlockInputSyncCacheItem[];
|
|
5
|
+
export type UnknownAndAncestorBlocks = {
|
|
6
|
+
unknowns: BlockInputSyncCacheItem[];
|
|
7
|
+
ancestors: PendingBlockInput[];
|
|
8
|
+
};
|
|
5
9
|
/**
|
|
10
|
+
* Returns two arrays.
|
|
11
|
+
* The first one has the earliest blocks that are not linked to fork-choice yet, meaning they require parent blocks to be pulled.
|
|
12
|
+
* The second one has the earliest blocks that are linked to fork-choice, meaning they are ready to be processed.
|
|
13
|
+
*
|
|
6
14
|
* Given this chain segment unknown block n => downloaded block n + 1 => downloaded block n + 2
|
|
7
|
-
* return `{
|
|
15
|
+
* return `{incomplete: [n], ancestors: []}`
|
|
8
16
|
*
|
|
9
17
|
* Given this chain segment: downloaded block n => downloaded block n + 1 => downloaded block n + 2
|
|
10
|
-
* return {
|
|
18
|
+
* return {incomplete: [], ancestors: [n]}
|
|
11
19
|
*/
|
|
12
|
-
export declare function getUnknownAndAncestorBlocks(blocks: Map<RootHex,
|
|
20
|
+
export declare function getUnknownAndAncestorBlocks(blocks: Map<RootHex, BlockInputSyncCacheItem>): UnknownAndAncestorBlocks;
|
|
13
21
|
//# sourceMappingURL=pendingBlocksTree.d.ts.map
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { MapDef } from "@lodestar/utils";
|
|
2
|
-
import {
|
|
3
|
-
import { PendingBlockStatus, } from "../interface.js";
|
|
2
|
+
import { PendingBlockInputStatus, getBlockInputSyncCacheItemRootHex, isPendingBlockInput, } from "../types.js";
|
|
4
3
|
export function getAllDescendantBlocks(blockRootHex, blocks) {
|
|
5
4
|
// Do one pass over all blocks to index by parent
|
|
6
5
|
const byParent = new MapDef(() => []);
|
|
7
6
|
for (const block of blocks.values()) {
|
|
8
|
-
if (block
|
|
9
|
-
byParent.getOrDefault(block.
|
|
7
|
+
if (isPendingBlockInput(block)) {
|
|
8
|
+
byParent.getOrDefault(block.blockInput.parentRootHex).push(block);
|
|
10
9
|
}
|
|
11
10
|
}
|
|
12
11
|
// Then, do a second pass recursively to get `blockRootHex` child blocks
|
|
@@ -18,7 +17,7 @@ function addToDescendantBlocks(childBlockRootHex, byParent, descendantBlocks = [
|
|
|
18
17
|
if (firstDescendantBlocks) {
|
|
19
18
|
for (const firstDescendantBlock of firstDescendantBlocks) {
|
|
20
19
|
descendantBlocks.push(firstDescendantBlock);
|
|
21
|
-
addToDescendantBlocks(firstDescendantBlock
|
|
20
|
+
addToDescendantBlocks(getBlockInputSyncCacheItemRootHex(firstDescendantBlock), byParent, descendantBlocks);
|
|
22
21
|
}
|
|
23
22
|
}
|
|
24
23
|
return descendantBlocks;
|
|
@@ -26,33 +25,40 @@ function addToDescendantBlocks(childBlockRootHex, byParent, descendantBlocks = [
|
|
|
26
25
|
export function getDescendantBlocks(blockRootHex, blocks) {
|
|
27
26
|
const descendantBlocks = [];
|
|
28
27
|
for (const block of blocks.values()) {
|
|
29
|
-
if (block.
|
|
28
|
+
if ((isPendingBlockInput(block) ? block.blockInput.parentRootHex : undefined) === blockRootHex) {
|
|
30
29
|
descendantBlocks.push(block);
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
32
|
return descendantBlocks;
|
|
34
33
|
}
|
|
35
34
|
/**
|
|
35
|
+
* Returns two arrays.
|
|
36
|
+
* The first one has the earliest blocks that are not linked to fork-choice yet, meaning they require parent blocks to be pulled.
|
|
37
|
+
* The second one has the earliest blocks that are linked to fork-choice, meaning they are ready to be processed.
|
|
38
|
+
*
|
|
36
39
|
* Given this chain segment unknown block n => downloaded block n + 1 => downloaded block n + 2
|
|
37
|
-
* return `{
|
|
40
|
+
* return `{incomplete: [n], ancestors: []}`
|
|
38
41
|
*
|
|
39
42
|
* Given this chain segment: downloaded block n => downloaded block n + 1 => downloaded block n + 2
|
|
40
|
-
* return {
|
|
43
|
+
* return {incomplete: [], ancestors: [n]}
|
|
41
44
|
*/
|
|
42
45
|
export function getUnknownAndAncestorBlocks(blocks) {
|
|
43
|
-
const unknowns =
|
|
44
|
-
const ancestors =
|
|
46
|
+
const unknowns = new Map();
|
|
47
|
+
const ancestors = new Map();
|
|
45
48
|
for (const block of blocks.values()) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
(block
|
|
49
|
-
parentHex == null) {
|
|
50
|
-
unknowns.push(block);
|
|
49
|
+
if (block.status === PendingBlockInputStatus.pending &&
|
|
50
|
+
(isPendingBlockInput(block) ? !block.blockInput.hasBlockAndAllData() : true)) {
|
|
51
|
+
unknowns.set(getBlockInputSyncCacheItemRootHex(block), block);
|
|
51
52
|
}
|
|
52
|
-
if (block
|
|
53
|
-
|
|
53
|
+
else if (isPendingBlockInput(block) &&
|
|
54
|
+
block.status === PendingBlockInputStatus.downloaded &&
|
|
55
|
+
!blocks.has(block.blockInput.parentRootHex)) {
|
|
56
|
+
ancestors.set(block.blockInput.blockRootHex, block);
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
|
-
return {
|
|
59
|
+
return {
|
|
60
|
+
unknowns: Array.from(unknowns.values()),
|
|
61
|
+
ancestors: Array.from(ancestors.values()),
|
|
62
|
+
};
|
|
57
63
|
}
|
|
58
64
|
//# sourceMappingURL=pendingBlocksTree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pendingBlocksTree.js","sourceRoot":"","sources":["../../../src/sync/utils/pendingBlocksTree.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"pendingBlocksTree.js","sourceRoot":"","sources":["../../../src/sync/utils/pendingBlocksTree.ts"],"names":[],"mappings":"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"}
|
package/lib/util/array.js
CHANGED
|
@@ -14,9 +14,10 @@ export function findLastIndex(array, predicate) {
|
|
|
14
14
|
* The node for LinkedList below
|
|
15
15
|
*/
|
|
16
16
|
class Node {
|
|
17
|
+
data;
|
|
18
|
+
next = null;
|
|
19
|
+
prev = null;
|
|
17
20
|
constructor(data) {
|
|
18
|
-
this.next = null;
|
|
19
|
-
this.prev = null;
|
|
20
21
|
this.data = data;
|
|
21
22
|
}
|
|
22
23
|
}
|
|
@@ -26,8 +27,11 @@ class Node {
|
|
|
26
27
|
* The shift() method should be cheaper than regular array.
|
|
27
28
|
*/
|
|
28
29
|
export class LinkedList {
|
|
30
|
+
_length;
|
|
31
|
+
head;
|
|
32
|
+
tail;
|
|
33
|
+
pointer = null;
|
|
29
34
|
constructor() {
|
|
30
|
-
this.pointer = null;
|
|
31
35
|
this._length = 0;
|
|
32
36
|
this.head = null;
|
|
33
37
|
this.tail = null;
|
package/lib/util/array.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/util/array.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,aAAa,CAAI,KAAU,EAAE,SAAgC;IAC3E,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,EAAE,CAAC;QACX,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,IAAI;
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/util/array.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,aAAa,CAAI,KAAU,EAAE,SAAgC;IAC3E,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,EAAE,CAAC;QACX,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,IAAI;IACR,IAAI,CAAI;IACR,IAAI,GAAmB,IAAI,CAAC;IAC5B,IAAI,GAAmB,IAAI,CAAC;IAE5B,YAAY,IAAO;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACb,OAAO,CAAS;IAChB,IAAI,CAAiB;IACrB,IAAI,CAAiB;IACrB,OAAO,GAAmB,IAAI,CAAC;IAEvC;QACE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,IAAO;QACV,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7B,oBAAoB;YACpB,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAO;QACb,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7B,oBAAoB;YACpB,MAAM,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,KAAQ,EAAE,IAAO;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACpB,IAAI,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,GAAG;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACrC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACrC,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,KAAK;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACrC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACrC,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;IACjC,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAO;QACjB,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI;oBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC9C,IAAI,IAAI,CAAC,IAAI;oBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1C,IAAI,IAAI,CAAC,IAAI;oBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAO;QAChB,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI;oBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC9C,IAAI,IAAI,CAAC,IAAI;oBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1C,IAAI,IAAI,CAAC,IAAI;oBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,IAAO;QAChB,8BAA8B;QAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,IAAO;QAClB,wCAAwC;QACxC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;gBACjC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;gBAC3B,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;gBAC3B,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3B,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,0BAA0B;gBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC;QACxC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACjC,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;IAC9B,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,OAAO;QACL,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,OAAO,IAAI,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,GAAG,CAAI,EAAe;QACpB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,OAAO,IAAI,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACxB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,IAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACtC,CAAC;IAEO,QAAQ,CAAC,IAAO;QACtB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -7,11 +7,12 @@ export var IteratorEventType;
|
|
|
7
7
|
IteratorEventType["error"] = "iterator.error";
|
|
8
8
|
})(IteratorEventType || (IteratorEventType = {}));
|
|
9
9
|
export class AsyncIterableBridgeCaller {
|
|
10
|
+
events;
|
|
11
|
+
nextRequestId = 0;
|
|
12
|
+
// TODO: Consider expiring the requests after no reply for long enough, t
|
|
13
|
+
pending = new Map();
|
|
10
14
|
constructor(events) {
|
|
11
15
|
this.events = events;
|
|
12
|
-
this.nextRequestId = 0;
|
|
13
|
-
// TODO: Consider expiring the requests after no reply for long enough, t
|
|
14
|
-
this.pending = new Map();
|
|
15
16
|
events.onResponse(this.onResponse.bind(this));
|
|
16
17
|
}
|
|
17
18
|
get pendingCount() {
|
|
@@ -89,6 +90,8 @@ export class AsyncIterableBridgeCaller {
|
|
|
89
90
|
}
|
|
90
91
|
}
|
|
91
92
|
export class AsyncIterableBridgeHandler {
|
|
93
|
+
events;
|
|
94
|
+
handler;
|
|
92
95
|
constructor(events, handler) {
|
|
93
96
|
this.events = events;
|
|
94
97
|
this.handler = handler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncIterableToEvents.js","sourceRoot":"","sources":["../../src/util/asyncIterableToEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AACtC,OAAO,EAAsB,uBAAuB,EAAE,qBAAqB,EAAC,MAAM,YAAY,CAAC;AAO/F,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,2CAAsB,CAAA;IACtB,2CAAsB,CAAA;IACtB,6CAAwB,CAAA;AAC1B,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAqBD,MAAM,OAAO,yBAAyB;
|
|
1
|
+
{"version":3,"file":"asyncIterableToEvents.js","sourceRoot":"","sources":["../../src/util/asyncIterableToEvents.ts"],"names":[],"mappings":"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"}
|
package/lib/util/binarySearch.js
CHANGED
|
@@ -34,6 +34,8 @@ export class ErrorNoValues extends ErrorBinarySearch {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
export class ErrorNoValueMinValue extends ErrorBinarySearch {
|
|
37
|
+
value;
|
|
38
|
+
minValue;
|
|
37
39
|
constructor(value, minValue) {
|
|
38
40
|
super(`Target value ${value} is less than min value ${minValue}`);
|
|
39
41
|
this.value = value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binarySearch.js","sourceRoot":"","sources":["../../src/util/binarySearch.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAI,KAAU,EAAE,KAAa,EAAE,MAA2B;IACvF,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,aAAa,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,gCAAgC;IAChC,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,0CAA0C;IAC1C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,OAAO,GAAG,GAAG,GAAG,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;YAChC,GAAG,GAAG,GAAG,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;CAAG;AAE/C,MAAM,OAAO,aAAc,SAAQ,iBAAiB;IAClD;QACE,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,iBAAiB;
|
|
1
|
+
{"version":3,"file":"binarySearch.js","sourceRoot":"","sources":["../../src/util/binarySearch.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAI,KAAU,EAAE,KAAa,EAAE,MAA2B;IACvF,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,aAAa,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,gCAAgC;IAChC,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QACrB,MAAM,IAAI,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,0CAA0C;IAC1C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,OAAO,GAAG,GAAG,GAAG,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;YAChC,GAAG,GAAG,GAAG,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;CAAG;AAE/C,MAAM,OAAO,aAAc,SAAQ,iBAAiB;IAClD;QACE,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,iBAAiB;IACzD,KAAK,CAAS;IACd,QAAQ,CAAS;IACjB,YAAY,KAAa,EAAE,QAAgB;QACzC,KAAK,CAAC,gBAAgB,KAAK,2BAA2B,QAAQ,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
|
package/lib/util/blobs.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { ForkName } from "@lodestar/params";
|
|
|
3
3
|
import { BeaconBlockBody, SignedBeaconBlock, deneb, fulu } from "@lodestar/types";
|
|
4
4
|
type VersionHash = Uint8Array;
|
|
5
5
|
export declare function kzgCommitmentToVersionedHash(kzgCommitment: deneb.KZGCommitment): VersionHash;
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function computePreFuluKzgCommitmentsInclusionProof(fork: ForkName, body: BeaconBlockBody, index: number): deneb.KzgCommitmentInclusionProof;
|
|
7
7
|
/**
|
|
8
8
|
* SPEC FUNCTION get_blob_sidecars
|
|
9
9
|
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/deneb/validator.md#sidecar
|
|
@@ -13,7 +13,7 @@ export declare function getBlobSidecars(config: ChainForkConfig, signedBlock: Si
|
|
|
13
13
|
* If the node obtains 50%+ of all the columns, it SHOULD reconstruct the full data matrix via the recover_matrix helper
|
|
14
14
|
* See https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#recover_matrix
|
|
15
15
|
*/
|
|
16
|
-
export declare function
|
|
16
|
+
export declare function dataColumnMatrixRecovery(partialSidecars: Map<number, fulu.DataColumnSidecar>): Promise<fulu.DataColumnSidecars | null>;
|
|
17
17
|
/**
|
|
18
18
|
* Reconstruct blobs from a set of data columns, at least 50%+ of all the columns
|
|
19
19
|
* must be provided to allow to reconstruct the full data matrix
|