@lodestar/beacon-node 1.34.1 → 1.35.0-dev.092cc3954a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/impl/beacon/blocks/index.js +71 -53
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/pool/index.js +3 -3
- package/lib/api/impl/beacon/pool/index.js.map +1 -1
- package/lib/api/impl/debug/index.js +20 -9
- package/lib/api/impl/debug/index.js.map +1 -1
- package/lib/api/impl/errors.js +2 -0
- package/lib/api/impl/errors.js.map +1 -1
- package/lib/api/impl/index.d.ts +3 -3
- package/lib/api/impl/index.js +3 -3
- package/lib/api/impl/index.js.map +1 -1
- package/lib/api/impl/lodestar/index.js +1 -1
- package/lib/api/impl/lodestar/index.js.map +1 -1
- package/lib/api/impl/validator/index.js +2 -1
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/api/rest/activeSockets.js +3 -2
- package/lib/api/rest/activeSockets.js.map +1 -1
- package/lib/api/rest/base.d.ts +1 -1
- package/lib/api/rest/base.js +6 -2
- package/lib/api/rest/base.js.map +1 -1
- package/lib/api/rest/index.js +2 -0
- package/lib/api/rest/index.js.map +1 -1
- package/lib/api/rest/swaggerUI.js +4 -2
- package/lib/api/rest/swaggerUI.js.map +1 -1
- package/lib/bun-wrappers/prometheus-gc-stats.d.ts +2 -0
- package/lib/bun-wrappers/prometheus-gc-stats.js +8 -0
- package/lib/bun-wrappers/prometheus-gc-stats.js.map +1 -0
- package/lib/chain/ColumnReconstructionTracker.d.ts +32 -0
- package/lib/chain/ColumnReconstructionTracker.js +71 -0
- package/lib/chain/ColumnReconstructionTracker.js.map +1 -0
- package/lib/chain/GetBlobsTracker.d.ts +31 -0
- package/lib/chain/GetBlobsTracker.js +82 -0
- package/lib/chain/GetBlobsTracker.js.map +1 -0
- package/lib/chain/archiveStore/archiveStore.js +49 -38
- package/lib/chain/archiveStore/archiveStore.js.map +1 -1
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +2 -0
- package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
- package/lib/chain/archiveStore/index.d.ts +1 -1
- package/lib/chain/archiveStore/index.js +1 -1
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +5 -0
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.js +14 -7
- package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
- package/lib/chain/balancesCache.js +1 -3
- package/lib/chain/balancesCache.js.map +1 -1
- package/lib/chain/beaconProposerCache.js +1 -0
- package/lib/chain/beaconProposerCache.js.map +1 -1
- package/lib/chain/blocks/blockInput/blockInput.d.ts +19 -7
- package/lib/chain/blocks/blockInput/blockInput.js +132 -88
- package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
- package/lib/chain/blocks/blockInput/index.d.ts +1 -1
- package/lib/chain/blocks/blockInput/index.js +1 -1
- package/lib/chain/blocks/blockInput/types.d.ts +19 -10
- package/lib/chain/blocks/blockInput/types.js +1 -0
- package/lib/chain/blocks/blockInput/types.js.map +1 -1
- package/lib/chain/blocks/blockInput/utils.d.ts +0 -4
- package/lib/chain/blocks/blockInput/utils.js +6 -29
- package/lib/chain/blocks/blockInput/utils.js.map +1 -1
- package/lib/chain/blocks/importBlock.js +36 -32
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/index.d.ts +6 -5
- package/lib/chain/blocks/index.js +5 -4
- package/lib/chain/blocks/index.js.map +1 -1
- package/lib/chain/blocks/types.d.ts +3 -108
- package/lib/chain/blocks/types.js +0 -119
- package/lib/chain/blocks/types.js.map +1 -1
- package/lib/chain/blocks/utils/chainSegment.d.ts +2 -2
- package/lib/chain/blocks/utils/chainSegment.js +2 -2
- package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
- package/lib/chain/blocks/verifyBlock.d.ts +3 -3
- package/lib/chain/blocks/verifyBlock.js +15 -14
- package/lib/chain/blocks/verifyBlock.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts +7 -22
- package/lib/chain/blocks/verifyBlocksDataAvailability.js +18 -110
- package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +4 -3
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +24 -22
- package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts +4 -3
- package/lib/chain/blocks/verifyBlocksSanityChecks.js +2 -2
- package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +3 -2
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +2 -2
- package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.d.ts +3 -3
- package/lib/chain/blocks/writeBlockInputToDb.js +61 -63
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/bls/multithread/index.js +167 -163
- package/lib/chain/bls/multithread/index.js.map +1 -1
- package/lib/chain/bls/singleThread.js +1 -0
- package/lib/chain/bls/singleThread.js.map +1 -1
- package/lib/chain/chain.d.ts +13 -11
- package/lib/chain/chain.js +79 -20
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +43 -2
- package/lib/chain/emitter.js +18 -0
- package/lib/chain/emitter.js.map +1 -1
- package/lib/chain/errors/blobSidecarError.d.ts +24 -0
- package/lib/chain/errors/blobSidecarError.js +10 -0
- package/lib/chain/errors/blobSidecarError.js.map +1 -1
- package/lib/chain/errors/blockError.js +1 -0
- package/lib/chain/errors/blockError.js.map +1 -1
- package/lib/chain/errors/dataColumnSidecarError.d.ts +42 -0
- package/lib/chain/errors/dataColumnSidecarError.js +14 -0
- package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
- package/lib/chain/errors/gossipValidation.js +1 -0
- package/lib/chain/errors/gossipValidation.js.map +1 -1
- package/lib/chain/errors/index.d.ts +2 -2
- package/lib/chain/errors/index.js +2 -2
- package/lib/chain/errors/index.js.map +1 -1
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/genesis/genesis.js +16 -5
- package/lib/chain/genesis/genesis.js.map +1 -1
- package/lib/chain/index.d.ts +2 -2
- package/lib/chain/index.js +2 -2
- package/lib/chain/index.js.map +1 -1
- package/lib/chain/interface.d.ts +13 -9
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/lightClient/index.js +16 -9
- package/lib/chain/lightClient/index.js.map +1 -1
- package/lib/chain/lightClient/proofs.js.map +1 -1
- package/lib/chain/opPools/aggregatedAttestationPool.js +14 -9
- package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
- package/lib/chain/opPools/attestationPool.js +8 -3
- package/lib/chain/opPools/attestationPool.js.map +1 -1
- package/lib/chain/opPools/index.d.ts +1 -1
- package/lib/chain/opPools/index.js +1 -1
- package/lib/chain/opPools/index.js.map +1 -1
- package/lib/chain/opPools/opPool.js +10 -12
- package/lib/chain/opPools/opPool.js.map +1 -1
- package/lib/chain/opPools/syncCommitteeMessagePool.js +9 -6
- package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
- package/lib/chain/opPools/syncContributionAndProofPool.js +5 -2
- package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
- package/lib/chain/options.js +1 -1
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/prepareNextSlot.js +141 -134
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +3 -10
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/regen/errors.js +1 -0
- package/lib/chain/regen/errors.js.map +1 -1
- package/lib/chain/regen/index.d.ts +1 -1
- package/lib/chain/regen/index.js +1 -1
- package/lib/chain/regen/index.js.map +1 -1
- package/lib/chain/regen/queued.js +35 -28
- package/lib/chain/regen/queued.js.map +1 -1
- package/lib/chain/regen/regen.js +1 -0
- package/lib/chain/regen/regen.js.map +1 -1
- package/lib/chain/reprocess.js +3 -1
- package/lib/chain/reprocess.js.map +1 -1
- package/lib/chain/seenCache/index.d.ts +1 -1
- package/lib/chain/seenCache/index.js +1 -1
- package/lib/chain/seenCache/index.js.map +1 -1
- package/lib/chain/seenCache/seenAggregateAndProof.js +7 -6
- package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
- package/lib/chain/seenCache/seenAttestationData.js +5 -2
- package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
- package/lib/chain/seenCache/seenAttesters.js +2 -4
- package/lib/chain/seenCache/seenAttesters.js.map +1 -1
- package/lib/chain/seenCache/seenBlockProposers.js +2 -4
- package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
- package/lib/chain/seenCache/seenCommittee.js +1 -3
- package/lib/chain/seenCache/seenCommittee.js.map +1 -1
- package/lib/chain/seenCache/seenCommitteeContribution.js +3 -2
- package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.d.ts +74 -78
- package/lib/chain/seenCache/seenGossipBlockInput.js +235 -369
- package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
- package/lib/chain/shufflingCache.js +5 -2
- package/lib/chain/shufflingCache.js.map +1 -1
- package/lib/chain/stateCache/blockStateCacheImpl.js +13 -7
- package/lib/chain/stateCache/blockStateCacheImpl.js.map +1 -1
- package/lib/chain/stateCache/datastore/db.js +1 -0
- package/lib/chain/stateCache/datastore/db.js.map +1 -1
- package/lib/chain/stateCache/datastore/file.js +1 -0
- package/lib/chain/stateCache/datastore/file.js.map +1 -1
- package/lib/chain/stateCache/datastore/index.d.ts +1 -1
- package/lib/chain/stateCache/datastore/index.js +1 -1
- package/lib/chain/stateCache/datastore/index.js.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.js +10 -0
- package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
- package/lib/chain/stateCache/inMemoryCheckpointsCache.js +10 -4
- package/lib/chain/stateCache/inMemoryCheckpointsCache.js.map +1 -1
- package/lib/chain/stateCache/index.d.ts +1 -1
- package/lib/chain/stateCache/index.js +1 -1
- package/lib/chain/stateCache/index.js.map +1 -1
- package/lib/chain/stateCache/mapMetrics.js +4 -4
- package/lib/chain/stateCache/mapMetrics.js.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.js +14 -6
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/validation/blobSidecar.d.ts +8 -3
- package/lib/chain/validation/blobSidecar.js +73 -31
- package/lib/chain/validation/blobSidecar.js.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts +7 -9
- package/lib/chain/validation/dataColumnSidecar.js +95 -57
- package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
- package/lib/chain/validation/index.d.ts +1 -1
- package/lib/chain/validation/index.js +1 -1
- package/lib/chain/validation/index.js.map +1 -1
- package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +1 -2
- package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
- package/lib/chain/validatorMonitor.d.ts +1 -3
- package/lib/chain/validatorMonitor.js +2 -1
- package/lib/chain/validatorMonitor.js.map +1 -1
- package/lib/db/beacon.js +24 -0
- package/lib/db/beacon.js.map +1 -1
- package/lib/db/index.d.ts +1 -1
- package/lib/db/index.js.map +1 -1
- package/lib/db/repositories/blobSidecars.js.map +1 -1
- package/lib/db/repositories/blockArchive.js +4 -5
- package/lib/db/repositories/blockArchive.js.map +1 -1
- package/lib/db/repositories/blockArchiveIndex.d.ts +4 -0
- package/lib/db/repositories/blockArchiveIndex.js +13 -5
- package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
- package/lib/db/repositories/dataColumnSidecar.js +8 -7
- package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
- package/lib/db/repositories/dataColumnSidecarArchive.js +17 -7
- package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
- package/lib/db/repositories/depositDataRoot.js +1 -0
- package/lib/db/repositories/depositDataRoot.js.map +1 -1
- package/lib/db/repositories/index.d.ts +10 -10
- package/lib/db/repositories/index.js +9 -9
- package/lib/db/repositories/index.js.map +1 -1
- package/lib/db/repositories/stateArchive.js +3 -2
- package/lib/db/repositories/stateArchive.js.map +1 -1
- package/lib/db/repositories/stateArchiveIndex.d.ts +1 -0
- package/lib/db/repositories/stateArchiveIndex.js +6 -2
- package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
- package/lib/db/single/preGenesisState.d.ts +1 -0
- package/lib/db/single/preGenesisState.js +11 -4
- package/lib/db/single/preGenesisState.js.map +1 -1
- package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts +1 -0
- package/lib/db/single/preGenesisStateLastProcessedBlock.js +10 -4
- package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +1 -1
- package/lib/eth1/eth1DataCache.js +2 -0
- package/lib/eth1/eth1DataCache.js.map +1 -1
- package/lib/eth1/eth1DepositDataTracker.js +18 -5
- package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
- package/lib/eth1/eth1DepositsCache.js +3 -0
- package/lib/eth1/eth1DepositsCache.js.map +1 -1
- package/lib/eth1/eth1MergeBlockTracker.js +10 -4
- package/lib/eth1/eth1MergeBlockTracker.js.map +1 -1
- package/lib/eth1/index.js +2 -0
- package/lib/eth1/index.js.map +1 -1
- package/lib/eth1/provider/eth1Provider.d.ts +1 -2
- package/lib/eth1/provider/eth1Provider.js +6 -2
- package/lib/eth1/provider/eth1Provider.js.map +1 -1
- package/lib/eth1/provider/jsonRpcHttpClient.d.ts +1 -1
- package/lib/eth1/provider/jsonRpcHttpClient.js +16 -2
- package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
- package/lib/eth1/provider/jwt.js.map +1 -1
- package/lib/eth1/provider/utils.d.ts +5 -0
- package/lib/eth1/provider/utils.js +9 -1
- package/lib/eth1/provider/utils.js.map +1 -1
- package/lib/eth1/utils/deposits.js.map +1 -1
- package/lib/execution/builder/cache.js +6 -0
- package/lib/execution/builder/cache.js.map +1 -1
- package/lib/execution/builder/http.js +14 -8
- package/lib/execution/builder/http.js.map +1 -1
- package/lib/execution/builder/index.js.map +1 -1
- package/lib/execution/engine/disabled.js +2 -4
- package/lib/execution/engine/disabled.js.map +1 -1
- package/lib/execution/engine/http.d.ts +2 -2
- package/lib/execution/engine/http.js +43 -11
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +2 -2
- package/lib/execution/engine/interface.js.map +1 -1
- package/lib/execution/engine/mock.d.ts +1 -0
- package/lib/execution/engine/mock.js +16 -12
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/payloadIdCache.js +1 -3
- package/lib/execution/engine/payloadIdCache.js.map +1 -1
- package/lib/execution/engine/types.d.ts +5 -1
- package/lib/execution/engine/types.js +37 -8
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/execution/engine/utils.js +3 -3
- package/lib/execution/engine/utils.js.map +1 -1
- package/lib/execution/index.d.ts +2 -2
- package/lib/execution/index.js +2 -2
- package/lib/execution/index.js.map +1 -1
- package/lib/index.d.ts +6 -6
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib/metrics/index.d.ts +1 -1
- package/lib/metrics/index.js +1 -1
- package/lib/metrics/index.js.map +1 -1
- package/lib/metrics/metrics/beacon.d.ts +11 -5
- package/lib/metrics/metrics/beacon.js +40 -20
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +55 -13
- package/lib/metrics/metrics/lodestar.js +85 -8
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/metrics/metrics.d.ts +1 -1
- package/lib/metrics/metrics.js.map +1 -1
- package/lib/metrics/nodeJsMetrics.js +1 -1
- package/lib/metrics/nodeJsMetrics.js.map +1 -1
- package/lib/metrics/server/http.d.ts +1 -1
- package/lib/metrics/utils/avgMinMax.d.ts +1 -1
- package/lib/metrics/utils/avgMinMax.js +10 -6
- package/lib/metrics/utils/avgMinMax.js.map +1 -1
- package/lib/metrics/utils/gauge.d.ts +1 -1
- package/lib/metrics/utils/gauge.js +1 -4
- package/lib/metrics/utils/gauge.js.map +1 -1
- package/lib/metrics/utils/registryMetricCreator.d.ts +1 -1
- package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
- package/lib/monitoring/properties.js +4 -0
- package/lib/monitoring/properties.js.map +1 -1
- package/lib/monitoring/service.js +13 -1
- package/lib/monitoring/service.js.map +1 -1
- package/lib/monitoring/system.js +25 -27
- package/lib/monitoring/system.js.map +1 -1
- package/lib/network/core/networkCore.d.ts +2 -2
- package/lib/network/core/networkCore.js +67 -50
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/core/networkCoreWorker.js +1 -1
- package/lib/network/core/networkCoreWorker.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.d.ts +2 -2
- package/lib/network/core/networkCoreWorkerHandler.js +5 -2
- package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
- package/lib/network/discv5/index.d.ts +2 -2
- package/lib/network/discv5/index.js +5 -2
- package/lib/network/discv5/index.js.map +1 -1
- package/lib/network/discv5/worker.js +3 -3
- package/lib/network/discv5/worker.js.map +1 -1
- package/lib/network/events.d.ts +2 -18
- package/lib/network/events.js +0 -7
- package/lib/network/events.js.map +1 -1
- package/lib/network/gossip/encoding.d.ts +1 -1
- package/lib/network/gossip/encoding.js +4 -2
- package/lib/network/gossip/encoding.js.map +1 -1
- package/lib/network/gossip/errors.js +1 -0
- package/lib/network/gossip/errors.js.map +1 -1
- package/lib/network/gossip/gossipsub.d.ts +1 -1
- package/lib/network/gossip/gossipsub.js +8 -1
- package/lib/network/gossip/gossipsub.js.map +1 -1
- package/lib/network/gossip/index.d.ts +2 -2
- package/lib/network/gossip/index.js +2 -2
- package/lib/network/gossip/index.js.map +1 -1
- package/lib/network/gossip/interface.d.ts +2 -2
- package/lib/network/gossip/topic.d.ts +125 -105
- package/lib/network/gossip/topic.js +2 -1
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/index.d.ts +3 -3
- package/lib/network/index.js +3 -3
- package/lib/network/index.js.map +1 -1
- package/lib/network/interface.d.ts +3 -2
- package/lib/network/libp2p/index.js +2 -2
- package/lib/network/libp2p/index.js.map +1 -1
- package/lib/network/metadata.js +4 -0
- package/lib/network/metadata.js.map +1 -1
- package/lib/network/network.d.ts +4 -2
- package/lib/network/network.js +89 -71
- package/lib/network/network.js.map +1 -1
- package/lib/network/options.js +1 -1
- package/lib/network/options.js.map +1 -1
- package/lib/network/peers/datastore.js +8 -2
- package/lib/network/peers/datastore.js.map +1 -1
- package/lib/network/peers/discover.js +75 -66
- package/lib/network/peers/discover.js.map +1 -1
- package/lib/network/peers/peerManager.js +154 -130
- package/lib/network/peers/peerManager.js.map +1 -1
- package/lib/network/peers/peersData.d.ts +1 -1
- package/lib/network/peers/peersData.js +1 -3
- package/lib/network/peers/peersData.js.map +1 -1
- package/lib/network/peers/score/index.d.ts +1 -1
- package/lib/network/peers/score/index.js +1 -1
- package/lib/network/peers/score/index.js.map +1 -1
- package/lib/network/peers/score/score.js +6 -0
- package/lib/network/peers/score/score.js.map +1 -1
- package/lib/network/peers/score/store.js +3 -0
- package/lib/network/peers/score/store.js.map +1 -1
- package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
- package/lib/network/peers/utils/subnetMap.js +2 -4
- package/lib/network/peers/utils/subnetMap.js.map +1 -1
- package/lib/network/processor/aggregatorTracker.js +1 -3
- package/lib/network/processor/aggregatorTracker.js.map +1 -1
- package/lib/network/processor/gossipHandlers.js +145 -165
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipQueues/indexed.js +11 -9
- package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
- package/lib/network/processor/gossipQueues/linear.js +9 -8
- package/lib/network/processor/gossipQueues/linear.js.map +1 -1
- package/lib/network/processor/index.d.ts +2 -1
- package/lib/network/processor/index.js +22 -8
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.d.ts +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.js +11 -2
- package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js +1 -2
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
- package/lib/network/reqresp/index.d.ts +1 -3
- package/lib/network/reqresp/index.js +1 -3
- package/lib/network/reqresp/index.js.map +1 -1
- package/lib/network/reqresp/rateLimit.js +11 -5
- package/lib/network/reqresp/rateLimit.js.map +1 -1
- package/lib/network/reqresp/utils/dataColumnResponseValidation.js +8 -4
- package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
- package/lib/network/statusCache.js +1 -0
- package/lib/network/statusCache.js.map +1 -1
- package/lib/network/subnets/attnetsService.js +73 -65
- package/lib/network/subnets/attnetsService.js.map +1 -1
- package/lib/network/subnets/interface.js +1 -1
- package/lib/network/subnets/interface.js.map +1 -1
- package/lib/network/subnets/syncnetsService.js +29 -22
- package/lib/network/subnets/syncnetsService.js.map +1 -1
- package/lib/network/subnets/util.js +1 -2
- package/lib/network/subnets/util.js.map +1 -1
- package/lib/node/nodejs.d.ts +1 -1
- package/lib/node/nodejs.js +15 -0
- package/lib/node/nodejs.js.map +1 -1
- package/lib/node/notifier.js +1 -2
- package/lib/node/notifier.js.map +1 -1
- package/lib/node/options.js.map +1 -1
- package/lib/node/utils/interop/state.js +1 -2
- package/lib/node/utils/interop/state.js.map +1 -1
- package/lib/sync/backfill/backfill.d.ts +1 -1
- package/lib/sync/backfill/backfill.js +58 -16
- package/lib/sync/backfill/backfill.js.map +1 -1
- package/lib/sync/constants.d.ts +2 -1
- package/lib/sync/constants.js +2 -1
- package/lib/sync/constants.js.map +1 -1
- package/lib/sync/interface.d.ts +1 -59
- package/lib/sync/interface.js +0 -20
- package/lib/sync/interface.js.map +1 -1
- package/lib/sync/options.d.ts +1 -1
- package/lib/sync/range/batch.d.ts +48 -32
- package/lib/sync/range/batch.js +201 -55
- package/lib/sync/range/batch.js.map +1 -1
- package/lib/sync/range/chain.d.ts +15 -10
- package/lib/sync/range/chain.js +141 -70
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.d.ts +3 -3
- package/lib/sync/range/range.js +86 -54
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/range/utils/hashBlocks.d.ts +2 -2
- package/lib/sync/range/utils/hashBlocks.js +6 -4
- package/lib/sync/range/utils/hashBlocks.js.map +1 -1
- package/lib/sync/range/utils/peerBalancer.js +18 -13
- package/lib/sync/range/utils/peerBalancer.js.map +1 -1
- package/lib/sync/sync.d.ts +1 -2
- package/lib/sync/sync.js +95 -87
- package/lib/sync/sync.js.map +1 -1
- package/lib/sync/types.d.ts +44 -0
- package/lib/sync/types.js +34 -0
- package/lib/sync/types.js.map +1 -0
- package/lib/sync/unknownBlock.d.ts +42 -28
- package/lib/sync/unknownBlock.js +404 -458
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/sync/utils/downloadByRange.d.ts +186 -0
- package/lib/sync/utils/downloadByRange.js +457 -0
- package/lib/sync/utils/downloadByRange.js.map +1 -0
- package/lib/sync/utils/downloadByRoot.d.ts +119 -0
- package/lib/sync/utils/downloadByRoot.js +319 -0
- package/lib/sync/utils/downloadByRoot.js.map +1 -0
- package/lib/sync/utils/pendingBlocksTree.d.ts +14 -6
- package/lib/sync/utils/pendingBlocksTree.js +24 -18
- package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
- package/lib/util/array.js +7 -3
- package/lib/util/array.js.map +1 -1
- package/lib/util/asyncIterableToEvents.js +6 -3
- package/lib/util/asyncIterableToEvents.js.map +1 -1
- package/lib/util/binarySearch.js +2 -0
- package/lib/util/binarySearch.js.map +1 -1
- package/lib/util/blobs.d.ts +2 -2
- package/lib/util/blobs.js +4 -4
- package/lib/util/blobs.js.map +1 -1
- package/lib/util/bufferPool.js +7 -2
- package/lib/util/bufferPool.js.map +1 -1
- package/lib/util/clock.d.ts +1 -1
- package/lib/util/clock.js +23 -18
- package/lib/util/clock.js.map +1 -1
- package/lib/util/dataColumns.d.ts +13 -10
- package/lib/util/dataColumns.js +92 -134
- package/lib/util/dataColumns.js.map +1 -1
- package/lib/util/execution.d.ts +20 -0
- package/lib/util/execution.js +148 -0
- package/lib/util/execution.js.map +1 -0
- package/lib/util/itTrigger.js +4 -4
- package/lib/util/itTrigger.js.map +1 -1
- package/lib/util/map.js +2 -0
- package/lib/util/map.js.map +1 -1
- package/lib/util/queue/index.d.ts +1 -1
- package/lib/util/queue/index.js +1 -1
- package/lib/util/queue/index.js.map +1 -1
- package/lib/util/queue/itemQueue.js +52 -49
- package/lib/util/queue/itemQueue.js.map +1 -1
- package/lib/util/serializedCache.js +1 -3
- package/lib/util/serializedCache.js.map +1 -1
- package/lib/util/set.js +2 -0
- package/lib/util/set.js.map +1 -1
- package/lib/util/sszBytes.d.ts +1 -0
- package/lib/util/sszBytes.js +1 -1
- package/lib/util/sszBytes.js.map +1 -1
- package/lib/util/timeSeries.js +3 -1
- package/lib/util/timeSeries.js.map +1 -1
- package/lib/util/types.d.ts +1 -1
- package/lib/util/types.js +2 -2
- package/lib/util/types.js.map +1 -1
- package/lib/util/wrapError.d.ts +7 -0
- package/package.json +22 -16
- package/lib/chain/seenCache/seenBlockInput.d.ts +0 -84
- package/lib/chain/seenCache/seenBlockInput.js +0 -225
- package/lib/chain/seenCache/seenBlockInput.js.map +0 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +0 -28
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +0 -328
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +0 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +0 -49
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +0 -499
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +0 -1
package/lib/util/blobs.js
CHANGED
|
@@ -10,7 +10,7 @@ export function kzgCommitmentToVersionedHash(kzgCommitment) {
|
|
|
10
10
|
hash[0] = VERSIONED_HASH_VERSION_KZG;
|
|
11
11
|
return hash;
|
|
12
12
|
}
|
|
13
|
-
export function
|
|
13
|
+
export function computePreFuluKzgCommitmentsInclusionProof(fork, body, index) {
|
|
14
14
|
const bodyView = ssz[fork].BeaconBlockBody.toView(body);
|
|
15
15
|
const commitmentGindex = KZG_COMMITMENT_GINDEX0 + index;
|
|
16
16
|
return new Tree(bodyView.node).getSingleProof(BigInt(commitmentGindex));
|
|
@@ -29,7 +29,7 @@ export function getBlobSidecars(config, signedBlock, blobs, proofs) {
|
|
|
29
29
|
return blobKzgCommitments.map((kzgCommitment, index) => {
|
|
30
30
|
const blob = blobs[index];
|
|
31
31
|
const kzgProof = proofs[index];
|
|
32
|
-
const kzgCommitmentInclusionProof =
|
|
32
|
+
const kzgCommitmentInclusionProof = computePreFuluKzgCommitmentsInclusionProof(fork, signedBlock.message.body, index);
|
|
33
33
|
return { index, blob, kzgCommitment, kzgProof, signedBlockHeader, kzgCommitmentInclusionProof };
|
|
34
34
|
});
|
|
35
35
|
}
|
|
@@ -37,7 +37,7 @@ export function getBlobSidecars(config, signedBlock, blobs, proofs) {
|
|
|
37
37
|
* If the node obtains 50%+ of all the columns, it SHOULD reconstruct the full data matrix via the recover_matrix helper
|
|
38
38
|
* See https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#recover_matrix
|
|
39
39
|
*/
|
|
40
|
-
export async function
|
|
40
|
+
export async function dataColumnMatrixRecovery(partialSidecars) {
|
|
41
41
|
const columnCount = partialSidecars.size;
|
|
42
42
|
if (columnCount < NUMBER_OF_COLUMNS / 2) {
|
|
43
43
|
// We don't have enough columns to recover
|
|
@@ -108,7 +108,7 @@ export async function reconstructBlobs(sidecars) {
|
|
|
108
108
|
}
|
|
109
109
|
else {
|
|
110
110
|
const sidecarsByIndex = new Map(sidecars.map((sc) => [sc.index, sc]));
|
|
111
|
-
const recoveredSidecars = await
|
|
111
|
+
const recoveredSidecars = await dataColumnMatrixRecovery(sidecarsByIndex);
|
|
112
112
|
if (recoveredSidecars === null) {
|
|
113
113
|
// Should not happen because we check the column count above
|
|
114
114
|
throw Error("Failed to reconstruct the full data matrix");
|
package/lib/util/blobs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../../src/util/blobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAC,IAAI,EAAC,MAAM,mCAAmC,CAAC;AAEvD,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EAGvB,sBAAsB,EACtB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,yBAAyB,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAA+D,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAI7B,MAAM,UAAU,4BAA4B,CAAC,aAAkC;IAC7E,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IACzC,wEAAwE;IACxE,IAAI,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"blobs.js","sourceRoot":"","sources":["../../src/util/blobs.ts"],"names":[],"mappings":"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"}
|
package/lib/util/bufferPool.js
CHANGED
|
@@ -14,9 +14,11 @@ export var AllocSource;
|
|
|
14
14
|
* We can enhance and use this for other purposes in the future.
|
|
15
15
|
*/
|
|
16
16
|
export class BufferPool {
|
|
17
|
+
buffer;
|
|
18
|
+
inUse = false;
|
|
19
|
+
currentKey;
|
|
20
|
+
metrics = null;
|
|
17
21
|
constructor(size, metrics = null) {
|
|
18
|
-
this.inUse = false;
|
|
19
|
-
this.metrics = null;
|
|
20
22
|
this.buffer = new Uint8Array(Math.floor(size * GROW_RATIO));
|
|
21
23
|
this.currentKey = 0;
|
|
22
24
|
if (metrics) {
|
|
@@ -71,6 +73,9 @@ export class BufferPool {
|
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
75
|
export class BufferWithKey {
|
|
76
|
+
buffer;
|
|
77
|
+
key;
|
|
78
|
+
pool;
|
|
74
79
|
constructor(buffer, key, pool) {
|
|
75
80
|
this.buffer = buffer;
|
|
76
81
|
this.key = key;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bufferPool.js","sourceRoot":"","sources":["../../src/util/bufferPool.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,kGAAmF,CAAA;IACnF,wFAAyE,CAAA;IACzE,8CAA+B,CAAA;AACjC,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED;;;;GAIG;AACH,MAAM,OAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"bufferPool.js","sourceRoot":"","sources":["../../src/util/bufferPool.ts"],"names":[],"mappings":"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"}
|
package/lib/util/clock.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import EventEmitter from "node:events";
|
|
2
|
+
import type { StrictEventEmitter } from "strict-event-emitter-types";
|
|
2
3
|
import { ChainForkConfig } from "@lodestar/config";
|
|
3
4
|
import type { Epoch, Slot } from "@lodestar/types";
|
|
4
|
-
import type { StrictEventEmitter } from "strict-event-emitter-types";
|
|
5
5
|
export declare enum ClockEvent {
|
|
6
6
|
/**
|
|
7
7
|
* This event signals the start of a new slot, and that subsequent calls to `clock.currentSlot` will equal `slot`.
|
package/lib/util/clock.js
CHANGED
|
@@ -19,26 +19,13 @@ export var ClockEvent;
|
|
|
19
19
|
* A local clock, the clock time is assumed to be trusted
|
|
20
20
|
*/
|
|
21
21
|
export class Clock extends EventEmitter {
|
|
22
|
+
genesisTime;
|
|
23
|
+
config;
|
|
24
|
+
timeoutId;
|
|
25
|
+
signal;
|
|
26
|
+
_currentSlot;
|
|
22
27
|
constructor({ config, genesisTime, signal }) {
|
|
23
28
|
super();
|
|
24
|
-
this.onNextSlot = (slot) => {
|
|
25
|
-
const clockSlot = slot ?? getCurrentSlot(this.config, this.genesisTime);
|
|
26
|
-
// process multiple clock slots in the case the main thread has been saturated for > SECONDS_PER_SLOT
|
|
27
|
-
while (this._currentSlot < clockSlot && !this.signal.aborted) {
|
|
28
|
-
const previousSlot = this._currentSlot;
|
|
29
|
-
this._currentSlot++;
|
|
30
|
-
this.emit(ClockEvent.slot, this._currentSlot);
|
|
31
|
-
const previousEpoch = computeEpochAtSlot(previousSlot);
|
|
32
|
-
const currentEpoch = computeEpochAtSlot(this._currentSlot);
|
|
33
|
-
if (previousEpoch < currentEpoch) {
|
|
34
|
-
this.emit(ClockEvent.epoch, currentEpoch);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
if (!this.signal.aborted) {
|
|
38
|
-
//recursively invoke onNextSlot
|
|
39
|
-
this.timeoutId = setTimeout(this.onNextSlot, this.msUntilNextSlot());
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
29
|
this.config = config;
|
|
43
30
|
this.genesisTime = genesisTime;
|
|
44
31
|
this.timeoutId = setTimeout(this.onNextSlot, this.msUntilNextSlot());
|
|
@@ -125,6 +112,24 @@ export class Clock extends EventEmitter {
|
|
|
125
112
|
secFromSlot(slot, toSec = Date.now() / 1000) {
|
|
126
113
|
return toSec - (this.genesisTime + slot * this.config.SECONDS_PER_SLOT);
|
|
127
114
|
}
|
|
115
|
+
onNextSlot = (slot) => {
|
|
116
|
+
const clockSlot = slot ?? getCurrentSlot(this.config, this.genesisTime);
|
|
117
|
+
// process multiple clock slots in the case the main thread has been saturated for > SECONDS_PER_SLOT
|
|
118
|
+
while (this._currentSlot < clockSlot && !this.signal.aborted) {
|
|
119
|
+
const previousSlot = this._currentSlot;
|
|
120
|
+
this._currentSlot++;
|
|
121
|
+
this.emit(ClockEvent.slot, this._currentSlot);
|
|
122
|
+
const previousEpoch = computeEpochAtSlot(previousSlot);
|
|
123
|
+
const currentEpoch = computeEpochAtSlot(this._currentSlot);
|
|
124
|
+
if (previousEpoch < currentEpoch) {
|
|
125
|
+
this.emit(ClockEvent.epoch, currentEpoch);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (!this.signal.aborted) {
|
|
129
|
+
//recursively invoke onNextSlot
|
|
130
|
+
this.timeoutId = setTimeout(this.onNextSlot, this.msUntilNextSlot());
|
|
131
|
+
}
|
|
132
|
+
};
|
|
128
133
|
msUntilNextSlot() {
|
|
129
134
|
const milliSecondsPerSlot = this.config.SECONDS_PER_SLOT * 1000;
|
|
130
135
|
const diffInMilliSeconds = Date.now() - this.genesisTime * 1000;
|
package/lib/util/clock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/util/clock.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/util/clock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import { ChainForkConfig } from "@lodestar/config";
|
|
2
2
|
import { ForkName, ForkPostFulu } from "@lodestar/params";
|
|
3
3
|
import { BeaconBlockBody, ColumnIndex, CustodyIndex, SignedBeaconBlock, SignedBeaconBlockHeader, deneb, fulu } from "@lodestar/types";
|
|
4
|
-
import {
|
|
4
|
+
import { BlockInputColumns } from "../chain/blocks/blockInput/blockInput.js";
|
|
5
5
|
import { ChainEventEmitter } from "../chain/emitter.js";
|
|
6
|
-
import { BlockInputCacheType } from "../chain/seenCache/seenGossipBlockInput.js";
|
|
7
|
-
import { IExecutionEngine } from "../execution/engine/interface.js";
|
|
8
6
|
import { Metrics } from "../metrics/metrics.js";
|
|
9
7
|
import { NodeId } from "../network/subnets/index.js";
|
|
10
|
-
import { IClock } from "./clock.js";
|
|
11
8
|
export declare enum RecoverResult {
|
|
12
9
|
NotAttemptedLessThanHalf = "not_attempted_less_than_half",
|
|
13
10
|
NotAttemptedFull = "not_attempted_full",
|
|
@@ -82,7 +79,7 @@ export declare function computeColumnsForCustodyGroup(config: ChainForkConfig, c
|
|
|
82
79
|
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#get_custody_groups
|
|
83
80
|
*/
|
|
84
81
|
export declare function getCustodyGroups(config: ChainForkConfig, nodeId: NodeId, custodyGroupCount: number): CustodyIndex[];
|
|
85
|
-
export declare function
|
|
82
|
+
export declare function computePostFuluKzgCommitmentsInclusionProof(fork: ForkName, body: BeaconBlockBody): fulu.KzgCommitmentsInclusionProof;
|
|
86
83
|
export declare function getDataColumns(config: ChainForkConfig, nodeId: NodeId, custodyGroupCount: number): ColumnIndex[];
|
|
87
84
|
/**
|
|
88
85
|
* Computes the cells for each blob and combines them with cell proofs.
|
|
@@ -91,10 +88,10 @@ export declare function getDataColumns(config: ChainForkConfig, nodeId: NodeId,
|
|
|
91
88
|
* SPEC FUNCTION (note: spec currently computes proofs, but we already have them)
|
|
92
89
|
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#compute_matrix
|
|
93
90
|
*/
|
|
94
|
-
export declare function getCellsAndProofs(blobBundles: fulu.BlobAndProofV2[]): {
|
|
91
|
+
export declare function getCellsAndProofs(blobBundles: fulu.BlobAndProofV2[]): Promise<{
|
|
95
92
|
cells: Uint8Array[];
|
|
96
93
|
proofs: Uint8Array[];
|
|
97
|
-
}[]
|
|
94
|
+
}[]>;
|
|
98
95
|
/**
|
|
99
96
|
* Given a signed block header and the commitments, inclusion proof, cells/proofs associated with
|
|
100
97
|
* each blob in the block, assemble the sidecars which can be distributed to peers.
|
|
@@ -131,7 +128,13 @@ export declare function getDataColumnSidecarsFromColumnSidecar(sidecar: fulu.Dat
|
|
|
131
128
|
/**
|
|
132
129
|
* If we receive more than half of NUMBER_OF_COLUMNS (64) we should recover all remaining columns
|
|
133
130
|
*/
|
|
134
|
-
export declare function recoverDataColumnSidecars(
|
|
135
|
-
export declare
|
|
136
|
-
|
|
131
|
+
export declare function recoverDataColumnSidecars(blockInput: BlockInputColumns, emitter: ChainEventEmitter, metrics: Metrics | null): Promise<DataColumnReconstructionCode>;
|
|
132
|
+
export declare enum DataColumnReconstructionCode {
|
|
133
|
+
NotAttemptedAlreadyFull = "not_attempted_full",
|
|
134
|
+
NotAttemptedHaveLessThanHalf = "not_attempted_less_than_half",
|
|
135
|
+
NullReturned = "null_returned",
|
|
136
|
+
SuccessLate = "success_late",
|
|
137
|
+
SuccessResolved = "success_resolved",
|
|
138
|
+
Failed = "failed"
|
|
139
|
+
}
|
|
137
140
|
//# sourceMappingURL=dataColumns.d.ts.map
|
package/lib/util/dataColumns.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { digest } from "@chainsafe/as-sha256";
|
|
2
2
|
import { Tree } from "@chainsafe/persistent-merkle-tree";
|
|
3
|
-
import {
|
|
3
|
+
import { KZG_COMMITMENTS_GINDEX, NUMBER_OF_COLUMNS } from "@lodestar/params";
|
|
4
4
|
import { signedBlockToSignedHeader } from "@lodestar/state-transition";
|
|
5
|
-
import { ssz } from "@lodestar/types";
|
|
5
|
+
import { ssz, } from "@lodestar/types";
|
|
6
6
|
import { bytesToBigInt } from "@lodestar/utils";
|
|
7
|
-
import {
|
|
7
|
+
import { BlockInputSource } from "../chain/blocks/blockInput/types.js";
|
|
8
8
|
import { ChainEvent } from "../chain/emitter.js";
|
|
9
|
-
import {
|
|
9
|
+
import { dataColumnMatrixRecovery } from "./blobs.js";
|
|
10
10
|
import { kzg } from "./kzg.js";
|
|
11
11
|
export var RecoverResult;
|
|
12
12
|
(function (RecoverResult) {
|
|
@@ -22,6 +22,40 @@ export var RecoverResult;
|
|
|
22
22
|
RecoverResult["Failed"] = "failed";
|
|
23
23
|
})(RecoverResult || (RecoverResult = {}));
|
|
24
24
|
export class CustodyConfig {
|
|
25
|
+
/**
|
|
26
|
+
* The number of custody groups the node should subscribe to
|
|
27
|
+
*/
|
|
28
|
+
targetCustodyGroupCount;
|
|
29
|
+
/**
|
|
30
|
+
* The custody columns the node should subscribe to
|
|
31
|
+
*/
|
|
32
|
+
custodyColumns;
|
|
33
|
+
/**
|
|
34
|
+
* Custody columns map which column maps to which index in the array of columns custodied
|
|
35
|
+
* with zero representing it is not custodied
|
|
36
|
+
*/
|
|
37
|
+
custodyColumnsIndex;
|
|
38
|
+
/**
|
|
39
|
+
* The number of custody groups the node will sample
|
|
40
|
+
*/
|
|
41
|
+
sampledGroupCount;
|
|
42
|
+
/**
|
|
43
|
+
* Custody groups sampled by the node as part of custody sampling
|
|
44
|
+
*/
|
|
45
|
+
sampleGroups;
|
|
46
|
+
/**
|
|
47
|
+
* Data columns sampled by the node as part of custody sampling
|
|
48
|
+
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#custody-sampling
|
|
49
|
+
*
|
|
50
|
+
* TODO: Consider race conditions if this updates during sync/backfill
|
|
51
|
+
*/
|
|
52
|
+
sampledColumns;
|
|
53
|
+
/**
|
|
54
|
+
* Subnets sampled by the node as part of custody sampling
|
|
55
|
+
*/
|
|
56
|
+
sampledSubnets;
|
|
57
|
+
config;
|
|
58
|
+
nodeId;
|
|
25
59
|
constructor(opts) {
|
|
26
60
|
this.config = opts.config;
|
|
27
61
|
this.nodeId = opts.nodeId;
|
|
@@ -88,8 +122,8 @@ export function getValidatorsCustodyRequirement(config, effectiveBalances) {
|
|
|
88
122
|
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#compute_columns_for_custody_group
|
|
89
123
|
*/
|
|
90
124
|
export function computeColumnsForCustodyGroup(config, custodyIndex) {
|
|
91
|
-
if (custodyIndex
|
|
92
|
-
throw Error(`Invalid custody index ${custodyIndex}
|
|
125
|
+
if (custodyIndex >= config.NUMBER_OF_CUSTODY_GROUPS) {
|
|
126
|
+
throw Error(`Invalid custody index ${custodyIndex} >= ${config.NUMBER_OF_CUSTODY_GROUPS}`);
|
|
93
127
|
}
|
|
94
128
|
const columnsPerCustodyGroup = Number(NUMBER_OF_COLUMNS / config.NUMBER_OF_CUSTODY_GROUPS);
|
|
95
129
|
const columnIndexes = [];
|
|
@@ -135,7 +169,7 @@ export function getCustodyGroups(config, nodeId, custodyGroupCount) {
|
|
|
135
169
|
custodyGroups.sort((a, b) => a - b);
|
|
136
170
|
return custodyGroups;
|
|
137
171
|
}
|
|
138
|
-
export function
|
|
172
|
+
export function computePostFuluKzgCommitmentsInclusionProof(fork, body) {
|
|
139
173
|
const bodyView = ssz[fork].BeaconBlockBody.toView(body);
|
|
140
174
|
return new Tree(bodyView.node).getSingleProof(BigInt(KZG_COMMITMENTS_GINDEX));
|
|
141
175
|
}
|
|
@@ -151,11 +185,13 @@ export function getDataColumns(config, nodeId, custodyGroupCount) {
|
|
|
151
185
|
* SPEC FUNCTION (note: spec currently computes proofs, but we already have them)
|
|
152
186
|
* https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/das-core.md#compute_matrix
|
|
153
187
|
*/
|
|
154
|
-
export function getCellsAndProofs(blobBundles) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
188
|
+
export async function getCellsAndProofs(blobBundles) {
|
|
189
|
+
const blobsAndProofs = [];
|
|
190
|
+
for (const { blob, proofs } of blobBundles) {
|
|
191
|
+
const cells = await kzg.asyncComputeCells(blob);
|
|
192
|
+
blobsAndProofs.push({ cells, proofs });
|
|
193
|
+
}
|
|
194
|
+
return blobsAndProofs;
|
|
159
195
|
}
|
|
160
196
|
/**
|
|
161
197
|
* Given a signed block header and the commitments, inclusion proof, cells/proofs associated with
|
|
@@ -202,7 +238,7 @@ export function getDataColumnSidecarsFromBlock(config, signedBlock, cellsAndKzgP
|
|
|
202
238
|
}
|
|
203
239
|
const fork = config.getForkName(signedBlock.message.slot);
|
|
204
240
|
const signedBlockHeader = signedBlockToSignedHeader(config, signedBlock);
|
|
205
|
-
const kzgCommitmentsInclusionProof =
|
|
241
|
+
const kzgCommitmentsInclusionProof = computePostFuluKzgCommitmentsInclusionProof(fork, signedBlock.message.body);
|
|
206
242
|
return getDataColumnSidecars(signedBlockHeader, blobKzgCommitments, kzgCommitmentsInclusionProof, cellsAndKzgProofs);
|
|
207
243
|
}
|
|
208
244
|
/**
|
|
@@ -218,145 +254,67 @@ export function getDataColumnSidecarsFromColumnSidecar(sidecar, cellsAndKzgProof
|
|
|
218
254
|
/**
|
|
219
255
|
* If we receive more than half of NUMBER_OF_COLUMNS (64) we should recover all remaining columns
|
|
220
256
|
*/
|
|
221
|
-
export async function recoverDataColumnSidecars(
|
|
222
|
-
const
|
|
257
|
+
export async function recoverDataColumnSidecars(blockInput, emitter, metrics) {
|
|
258
|
+
const existingColumns = blockInput.getAllColumns();
|
|
259
|
+
const columnCount = existingColumns.length;
|
|
223
260
|
if (columnCount >= NUMBER_OF_COLUMNS) {
|
|
224
261
|
// We have all columns
|
|
225
|
-
return
|
|
262
|
+
return DataColumnReconstructionCode.NotAttemptedAlreadyFull;
|
|
226
263
|
}
|
|
227
264
|
if (columnCount < NUMBER_OF_COLUMNS / 2) {
|
|
228
265
|
// We don't have enough columns to recover
|
|
229
|
-
return
|
|
266
|
+
return DataColumnReconstructionCode.NotAttemptedHaveLessThanHalf;
|
|
230
267
|
}
|
|
231
|
-
|
|
232
|
-
metrics?.recoverDataColumnSidecars.custodyBeforeReconstruction.set(partialColumns);
|
|
268
|
+
metrics?.recoverDataColumnSidecars.custodyBeforeReconstruction.set(columnCount);
|
|
233
269
|
const partialSidecars = new Map();
|
|
234
|
-
for (const
|
|
270
|
+
for (const columnSidecar of existingColumns) {
|
|
235
271
|
// the more columns we put, the slower the recover
|
|
236
272
|
if (partialSidecars.size >= NUMBER_OF_COLUMNS / 2) {
|
|
237
273
|
break;
|
|
238
274
|
}
|
|
239
|
-
partialSidecars.set(
|
|
275
|
+
partialSidecars.set(columnSidecar.index, columnSidecar);
|
|
240
276
|
}
|
|
241
|
-
const timer = metrics?.
|
|
277
|
+
const timer = metrics?.recoverDataColumnSidecars.recoverTime.startTimer();
|
|
242
278
|
// if this function throws, we catch at the consumer side
|
|
243
|
-
const fullSidecars = await
|
|
279
|
+
const fullSidecars = await dataColumnMatrixRecovery(partialSidecars).catch(() => null);
|
|
244
280
|
timer?.();
|
|
245
281
|
if (fullSidecars == null) {
|
|
246
|
-
return
|
|
247
|
-
}
|
|
248
|
-
const firstDataColumn = dataColumnCache.values().next().value?.dataColumn;
|
|
249
|
-
if (firstDataColumn == null) {
|
|
250
|
-
// should not happen because we checked the size of the cache before this
|
|
251
|
-
throw new Error("No data column found in cache to recover from");
|
|
282
|
+
return DataColumnReconstructionCode.NullReturned;
|
|
252
283
|
}
|
|
253
|
-
|
|
254
|
-
const secFromSlot = clock.secFromSlot(slot);
|
|
255
|
-
metrics?.recoverDataColumnSidecars.elapsedTimeTillReconstructed.observe(secFromSlot);
|
|
256
|
-
if (dataColumnCache.size === NUMBER_OF_COLUMNS) {
|
|
284
|
+
if (blockInput.getAllColumns().length === NUMBER_OF_COLUMNS) {
|
|
257
285
|
// either gossip or getBlobsV2 resolved availability while we were recovering
|
|
258
|
-
return
|
|
259
|
-
}
|
|
260
|
-
//
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
286
|
+
return DataColumnReconstructionCode.SuccessLate;
|
|
287
|
+
}
|
|
288
|
+
// Once the node obtains a column through reconstruction,
|
|
289
|
+
// the node MUST expose the new column as if it had received it over the network.
|
|
290
|
+
// If the node is subscribed to the subnet corresponding to the column,
|
|
291
|
+
// it MUST send the reconstructed DataColumnSidecar to its topic mesh neighbors.
|
|
292
|
+
// If instead the node is not subscribed to the corresponding subnet,
|
|
293
|
+
// it SHOULD still expose the availability of the DataColumnSidecar as part of the gossip emission process.
|
|
294
|
+
// After exposing the reconstructed DataColumnSidecar to the network,
|
|
295
|
+
// the node MAY delete the DataColumnSidecar if it is not part of the node's custody requirement.
|
|
296
|
+
const sidecarsToPublish = [];
|
|
297
|
+
for (const columnSidecar of fullSidecars) {
|
|
298
|
+
if (!blockInput.hasColumn(columnSidecar.index)) {
|
|
299
|
+
blockInput.addColumn({
|
|
300
|
+
blockRootHex: blockInput.blockRootHex,
|
|
301
|
+
columnSidecar,
|
|
302
|
+
seenTimestampSec: Date.now(),
|
|
303
|
+
source: BlockInputSource.recovery,
|
|
304
|
+
});
|
|
305
|
+
sidecarsToPublish.push(columnSidecar);
|
|
269
306
|
}
|
|
270
|
-
dataColumnCache.set(columnIndex, { dataColumn: sidecar, dataColumnBytes: null });
|
|
271
|
-
metrics?.peerDas.reconstructedColumns.inc(NUMBER_OF_COLUMNS - partialColumns);
|
|
272
|
-
}
|
|
273
|
-
return RecoverResult.SuccessResolved;
|
|
274
|
-
}
|
|
275
|
-
export function hasSampledDataColumns(custodyConfig, dataColumnCache) {
|
|
276
|
-
return (dataColumnCache.size >= custodyConfig.sampledColumns.length &&
|
|
277
|
-
custodyConfig.sampledColumns.reduce((acc, columnIndex) => acc && dataColumnCache.has(columnIndex), true));
|
|
278
|
-
}
|
|
279
|
-
export async function getDataColumnsFromExecution(config, custodyConfig, executionEngine, emitter, blockCache, metrics) {
|
|
280
|
-
if (blockCache.fork !== ForkName.fulu) {
|
|
281
|
-
return false;
|
|
282
|
-
}
|
|
283
|
-
if (!blockCache.cachedData) {
|
|
284
|
-
// this condition should never get hit... just a sanity check
|
|
285
|
-
throw new Error("invalid blockCache");
|
|
286
|
-
}
|
|
287
|
-
if (blockCache.cachedData.fork !== ForkName.fulu) {
|
|
288
|
-
return false;
|
|
289
|
-
}
|
|
290
|
-
// If already have all columns, exit
|
|
291
|
-
if (hasSampledDataColumns(custodyConfig, blockCache.cachedData.dataColumnsCache)) {
|
|
292
|
-
return true;
|
|
293
|
-
}
|
|
294
|
-
let commitments;
|
|
295
|
-
if (blockCache.block) {
|
|
296
|
-
const block = blockCache.block;
|
|
297
|
-
commitments = block.message.body.blobKzgCommitments;
|
|
298
|
-
}
|
|
299
|
-
else {
|
|
300
|
-
const firstSidecar = blockCache.cachedData.dataColumnsCache.values().next().value;
|
|
301
|
-
commitments = firstSidecar?.dataColumn.kzgCommitments;
|
|
302
|
-
}
|
|
303
|
-
if (!commitments) {
|
|
304
|
-
throw new Error("blockInputCache missing both block and cachedData");
|
|
305
|
-
}
|
|
306
|
-
// Return if block has no blobs
|
|
307
|
-
if (commitments.length === 0) {
|
|
308
|
-
return true;
|
|
309
|
-
}
|
|
310
|
-
// Process KZG commitments into versioned hashes
|
|
311
|
-
const versionedHashes = commitments.map(kzgCommitmentToVersionedHash);
|
|
312
|
-
// Get blobs from execution engine
|
|
313
|
-
metrics?.peerDas.getBlobsV2Requests.inc();
|
|
314
|
-
const timer = metrics?.peerDas.getBlobsV2RequestDuration.startTimer();
|
|
315
|
-
const blobs = await executionEngine.getBlobs(blockCache.fork, versionedHashes);
|
|
316
|
-
timer?.();
|
|
317
|
-
// Execution engine was unable to find one or more blobs
|
|
318
|
-
if (blobs === null) {
|
|
319
|
-
return false;
|
|
320
|
-
}
|
|
321
|
-
metrics?.peerDas.getBlobsV2Responses.inc();
|
|
322
|
-
// Return if we received all data columns while waiting for getBlobs
|
|
323
|
-
if (hasSampledDataColumns(custodyConfig, blockCache.cachedData.dataColumnsCache)) {
|
|
324
|
-
return true;
|
|
325
|
-
}
|
|
326
|
-
let dataColumnSidecars;
|
|
327
|
-
const cellsAndProofs = getCellsAndProofs(blobs);
|
|
328
|
-
if (blockCache.block) {
|
|
329
|
-
dataColumnSidecars = getDataColumnSidecarsFromBlock(config, blockCache.block, cellsAndProofs);
|
|
330
|
-
}
|
|
331
|
-
else {
|
|
332
|
-
const firstSidecar = blockCache.cachedData.dataColumnsCache.values().next().value;
|
|
333
|
-
if (!firstSidecar) {
|
|
334
|
-
throw new Error("blockInputCache missing both block and data column sidecar");
|
|
335
|
-
}
|
|
336
|
-
dataColumnSidecars = getDataColumnSidecarsFromColumnSidecar(firstSidecar.dataColumn, cellsAndProofs);
|
|
337
|
-
}
|
|
338
|
-
// Publish columns if and only if subscribed to them
|
|
339
|
-
const sampledColumns = custodyConfig.sampledColumns.map((columnIndex) => dataColumnSidecars[columnIndex]);
|
|
340
|
-
// for columns that we already seen, it will be ignored through `ignoreDuplicatePublishError` gossip option
|
|
341
|
-
emitter.emit(ChainEvent.publishDataColumns, sampledColumns);
|
|
342
|
-
for (const column of sampledColumns) {
|
|
343
|
-
blockCache.cachedData.dataColumnsCache.set(column.index, { dataColumn: column, dataColumnBytes: null });
|
|
344
|
-
}
|
|
345
|
-
const allDataColumns = getBlockInputDataColumns(blockCache.cachedData.dataColumnsCache, custodyConfig.sampledColumns);
|
|
346
|
-
// TODO: Add metrics
|
|
347
|
-
// metrics?.syncUnknownBlock.resolveAvailabilitySource.inc({source: BlockInputAvailabilitySource.GOSSIP});
|
|
348
|
-
const blockData = {
|
|
349
|
-
fork: blockCache.cachedData.fork,
|
|
350
|
-
...allDataColumns,
|
|
351
|
-
dataColumnsSource: DataColumnsSource.engine,
|
|
352
|
-
};
|
|
353
|
-
const partialColumns = blockCache.cachedData.dataColumnsCache.size;
|
|
354
|
-
blockCache.cachedData.resolveAvailability(blockData);
|
|
355
|
-
metrics?.dataColumns.bySource.inc({ source: DataColumnsSource.engine }, NUMBER_OF_COLUMNS - partialColumns);
|
|
356
|
-
if (blockCache.block !== undefined) {
|
|
357
|
-
const blockInput = getBlockInput.availableData(config, blockCache.block, BlockSource.gossip, blockData);
|
|
358
|
-
blockCache.resolveBlockInput(blockInput);
|
|
359
307
|
}
|
|
360
|
-
|
|
308
|
+
emitter.emit(ChainEvent.publishDataColumns, sidecarsToPublish);
|
|
309
|
+
return DataColumnReconstructionCode.SuccessResolved;
|
|
361
310
|
}
|
|
311
|
+
export var DataColumnReconstructionCode;
|
|
312
|
+
(function (DataColumnReconstructionCode) {
|
|
313
|
+
DataColumnReconstructionCode["NotAttemptedAlreadyFull"] = "not_attempted_full";
|
|
314
|
+
DataColumnReconstructionCode["NotAttemptedHaveLessThanHalf"] = "not_attempted_less_than_half";
|
|
315
|
+
DataColumnReconstructionCode["NullReturned"] = "null_returned";
|
|
316
|
+
DataColumnReconstructionCode["SuccessLate"] = "success_late";
|
|
317
|
+
DataColumnReconstructionCode["SuccessResolved"] = "success_resolved";
|
|
318
|
+
DataColumnReconstructionCode["Failed"] = "failed";
|
|
319
|
+
})(DataColumnReconstructionCode || (DataColumnReconstructionCode = {}));
|
|
362
320
|
//# sourceMappingURL=dataColumns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,mCAAmC,CAAC;AAEvD,OAAO,EAAU,QAAQ,EAAgB,sBAAsB,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAC5G,OAAO,EAAC,yBAAyB,EAAC,MAAM,4BAA4B,CAAC;AAWrE,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAEL,WAAW,EAEX,iBAAiB,EACjB,aAAa,EACb,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,UAAU,EAAoB,MAAM,qBAAqB,CAAC;AAKlE,OAAO,EAAC,4BAA4B,EAAE,yBAAyB,IAAI,OAAO,EAAC,MAAM,YAAY,CAAC;AAE9F,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAE7B,MAAM,CAAN,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,yFAAyF;IACzF,0EAAyD,CAAA;IACzD,gEAAgE;IAChE,wDAAuC,CAAA;IACvC,6DAA6D;IAC7D,qDAAoC,CAAA;IACpC,0GAA0G;IAC1G,6CAA4B,CAAA;IAC5B,qBAAqB;IACrB,kCAAiB,CAAA;AACnB,CAAC,EAXW,aAAa,KAAb,aAAa,QAWxB;AAQD,MAAM,OAAO,aAAa;IA2CxB,YAAY,IAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;QAChG,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC7F,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9F,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAC5D,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,6BAA6B,CAAC,uBAA+B;QAC3D,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC7F,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5E,+FAA+F;QAC/F,uEAAuE;QACvE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9F,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAC5D,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CACrD,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAAC,cAA6B;QAC1D,yFAAyF;QACzF,6CAA6C;QAC7C,MAAM,mBAAmB,GAAG,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE,CAAC;YACzC,mBAAmB,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC;YAClD,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CACF;AAED,SAAS,0BAA0B,CAAC,MAAuB,EAAE,WAAwB;IACnF,OAAO,WAAW,GAAG,MAAM,CAAC,gCAAgC,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,MAAuB,EAAE,iBAA2B;IAClG,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE;QACrF,OAAO,KAAK,GAAG,gBAAgB,CAAC;IAClC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,6FAA6F;IAC7F,IAAI,4BAA4B,GAAG,IAAI,CAAC,KAAK,CAC3C,yBAAyB,GAAG,MAAM,CAAC,oCAAoC,CACxE,CAAC;IAEF,yFAAyF;IACzF,4BAA4B,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,6BAA6B,CAAC,CAAC;IAE5G,oDAAoD;IACpD,4BAA4B,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAEvG,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAuB,EAAE,YAA0B;IAC/F,IAAI,YAAY,GAAG,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACnD,MAAM,KAAK,CAAC,yBAAyB,YAAY,MAAM,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,sBAAsB,GAAG,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC3F,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IACzE,CAAC;IACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAuB,EAAE,MAAc,EAAE,iBAAyB;IACjG,IAAI,iBAAiB,GAAG,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACxD,MAAM,KAAK,CAAC,+BAA+B,iBAAiB,MAAM,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,+CAA+C;IAC/C,IAAI,iBAAiB,KAAK,MAAM,CAAC,wBAAwB,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,+DAA+D;IAC/D,IAAI,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,OAAO,aAAa,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAChD,qBAAqB;QACrB,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CACzB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CACvG,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC;QACtF,IAAI,YAAY,EAAE,CAAC;YACjB,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,IAAc,EACd,IAAqB;IAErB,MAAM,QAAQ,GAAI,GAAG,CAAC,IAAI,CAAC,CAAC,eAA2D,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrG,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAuB,EAAE,MAAc,EAAE,iBAAyB;IAC/F,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;SACvD,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,6BAA6B,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;SAC9E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAkC;IAClE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,iBAA0C,EAC1C,cAAqC,EACrC,4BAA+D,EAC/D,iBAAgE;IAEhE,IAAI,iBAAiB,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;QACvD,MAAM,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,iBAAiB,EAAE,WAAW,EAAE,EAAE,CAAC;QACzE,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,IAAI,iBAAiB,EAAE,CAAC;YAChD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YACrC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,WAAW;YACnB,cAAc;YACd,SAAS,EAAE,YAAY;YACvB,iBAAiB;YACjB,4BAA4B;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC5C,MAAuB,EACvB,WAA4C,EAC5C,iBAAgE;IAEhE,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAEvE,+DAA+D;IAC/D,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEzE,MAAM,4BAA4B,GAAG,mCAAmC,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzG,OAAO,qBAAqB,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,iBAAiB,CAAC,CAAC;AACvH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sCAAsC,CACpD,OAA+B,EAC/B,iBAAgE;IAEhE,OAAO,qBAAqB,CAC1B,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,4BAA4B,EACpC,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,eAAoC,EACpC,KAAa,EACb,OAAuB;IAEvB,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;IACzC,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAAC;QACrC,sBAAsB;QACtB,OAAO,aAAa,CAAC,gBAAgB,CAAC;IACxC,CAAC;IAED,IAAI,WAAW,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACxC,0CAA0C;QAC1C,OAAO,aAAa,CAAC,wBAAwB,CAAC;IAChD,CAAC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC;IAC5C,OAAO,EAAE,yBAAyB,CAAC,2BAA2B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkC,CAAC;IAClE,KAAK,MAAM,CAAC,WAAW,EAAE,EAAC,UAAU,EAAC,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;QACpE,kDAAkD;QAClD,IAAI,eAAe,CAAC,IAAI,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM;QACR,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,EAAE,OAAO,CAAC,6BAA6B,CAAC,UAAU,EAAE,CAAC;IAC1E,yDAAyD;IACzD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IACpD,KAAK,EAAE,EAAE,CAAC;IACV,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,OAAO,aAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;IAC1E,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;QAC5B,yEAAyE;QACzE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;IAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,EAAE,yBAAyB,CAAC,4BAA4B,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAErF,IAAI,eAAe,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC/C,6EAA6E;QAC7E,OAAO,aAAa,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,+DAA+D;IAC/D,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,iBAAiB,EAAE,WAAW,EAAE,EAAE,CAAC;QACzE,IAAI,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,8BAA8B;YAC9B,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,uCAAuC,WAAW,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,EAAC,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC;QAC/E,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,iBAAiB,GAAG,cAAc,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,aAAa,CAAC,eAAe,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,aAA4B,EAAE,eAAoC;IACtG,OAAO,CACL,eAAe,CAAC,IAAI,IAAI,aAAa,CAAC,cAAc,CAAC,MAAM;QAC3D,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CACzG,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAuB,EACvB,aAA4B,EAC5B,eAAiC,EACjC,OAA0B,EAC1B,UAA+B,EAC/B,OAAuB;IAEvB,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC3B,6DAA6D;QAC7D,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC;IACpC,IAAI,qBAAqB,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,WAAqC,CAAC;IAC1C,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,UAAU,CAAC,KAA+B,CAAC;QACzD,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAClF,WAAW,GAAG,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,+BAA+B;IAC/B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gDAAgD;IAChD,MAAM,eAAe,GAAiB,WAAW,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAEpF,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,UAAU,EAAE,CAAC;IACtE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC/E,KAAK,EAAE,EAAE,CAAC;IAEV,wDAAwD;IACxD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;IAE3C,oEAAoE;IACpE,IAAI,qBAAqB,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,kBAA2C,CAAC;IAChD,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,kBAAkB,GAAG,8BAA8B,CACjD,MAAM,EACN,UAAU,CAAC,KAA+B,EAC1C,cAAc,CACf,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAClF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,kBAAkB,GAAG,sCAAsC,CAAC,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACvG,CAAC;IAED,oDAAoD;IACpD,MAAM,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;IAE1G,2GAA2G;IAC3G,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAE5D,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAC,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,cAAc,GAAG,wBAAwB,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACtH,oBAAoB;IACpB,0GAA0G;IAC1G,MAAM,SAAS,GAA0B;QACvC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI;QAChC,GAAG,cAAc;QACjB,iBAAiB,EAAE,iBAAiB,CAAC,MAAM;KAC5C,CAAC;IACF,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACnE,UAAU,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACrD,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC,CAAC;IAE1G,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAExG,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,mCAAmC,CAAC;AAEvD,OAAO,EAAkC,sBAAsB,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAC5G,OAAO,EAAC,yBAAyB,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EASL,GAAG,GACJ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAC,gBAAgB,EAAC,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAC,UAAU,EAAoB,MAAM,qBAAqB,CAAC;AAGlE,OAAO,EAAC,wBAAwB,EAAC,MAAM,YAAY,CAAC;AACpD,OAAO,EAAC,GAAG,EAAC,MAAM,UAAU,CAAC;AAE7B,MAAM,CAAN,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,yFAAyF;IACzF,0EAAyD,CAAA;IACzD,gEAAgE;IAChE,wDAAuC,CAAA;IACvC,6DAA6D;IAC7D,qDAAoC,CAAA;IACpC,0GAA0G;IAC1G,6CAA4B,CAAA;IAC5B,qBAAqB;IACrB,kCAAiB,CAAA;AACnB,CAAC,EAXW,aAAa,KAAb,aAAa,QAWxB;AAQD,MAAM,OAAO,aAAa;IACxB;;OAEG;IACH,uBAAuB,CAAS;IAEhC;;OAEG;IACH,cAAc,CAAgB;IAE9B;;;OAGG;IACH,mBAAmB,CAAa;IAEhC;;OAEG;IACH,iBAAiB,CAAS;IAE1B;;OAEG;IACH,YAAY,CAAiB;IAE7B;;;;;OAKG;IACH,cAAc,CAAgB;IAE9B;;OAEG;IACH,cAAc,CAAW;IAEjB,MAAM,CAAkB;IACxB,MAAM,CAAS;IAEvB,YAAY,IAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;QAChG,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC7F,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9F,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAC5D,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CACrD,CAAC;IACJ,CAAC;IAED,6BAA6B,CAAC,uBAA+B;QAC3D,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC7F,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5E,+FAA+F;QAC/F,uEAAuE;QACvE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC9F,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAC5D,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CACrD,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAAC,cAA6B;QAC1D,yFAAyF;QACzF,6CAA6C;QAC7C,MAAM,mBAAmB,GAAG,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE,CAAC;YACzC,mBAAmB,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC;YAClD,cAAc,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CACF;AAED,SAAS,0BAA0B,CAAC,MAAuB,EAAE,WAAwB;IACnF,OAAO,WAAW,GAAG,MAAM,CAAC,gCAAgC,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,MAAuB,EAAE,iBAA2B;IAClG,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE;QACrF,OAAO,KAAK,GAAG,gBAAgB,CAAC;IAClC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEN,6FAA6F;IAC7F,IAAI,4BAA4B,GAAG,IAAI,CAAC,KAAK,CAC3C,yBAAyB,GAAG,MAAM,CAAC,oCAAoC,CACxE,CAAC;IAEF,yFAAyF;IACzF,4BAA4B,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,6BAA6B,CAAC,CAAC;IAE5G,oDAAoD;IACpD,4BAA4B,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAEvG,OAAO,4BAA4B,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAuB,EAAE,YAA0B;IAC/F,IAAI,YAAY,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACpD,MAAM,KAAK,CAAC,yBAAyB,YAAY,OAAO,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,sBAAsB,GAAG,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC3F,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IACzE,CAAC;IACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAuB,EAAE,MAAc,EAAE,iBAAyB;IACjG,IAAI,iBAAiB,GAAG,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACxD,MAAM,KAAK,CAAC,+BAA+B,iBAAiB,MAAM,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,+CAA+C;IAC/C,IAAI,iBAAiB,KAAK,MAAM,CAAC,wBAAwB,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,+DAA+D;IAC/D,IAAI,SAAS,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,OAAO,aAAa,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAChD,qBAAqB;QACrB,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CACzB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CACvG,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC;QACtF,IAAI,YAAY,EAAE,CAAC;YACjB,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,2CAA2C,CACzD,IAAc,EACd,IAAqB;IAErB,MAAM,QAAQ,GAAI,GAAG,CAAC,IAAI,CAAC,CAAC,eAA2D,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrG,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAuB,EAAE,MAAc,EAAE,iBAAyB;IAC/F,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC;SACvD,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,6BAA6B,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;SAC9E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAkC;IAElC,MAAM,cAAc,GAAkD,EAAE,CAAC;IACzE,KAAK,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,IAAI,WAAW,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAChD,cAAc,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,iBAA0C,EAC1C,cAAqC,EACrC,4BAA+D,EAC/D,iBAAgE;IAEhE,IAAI,iBAAiB,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;QACvD,MAAM,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,iBAAiB,EAAE,WAAW,EAAE,EAAE,CAAC;QACzE,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,IAAI,iBAAiB,EAAE,CAAC;YAChD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YACrC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,WAAW;YACnB,cAAc;YACd,SAAS,EAAE,YAAY;YACvB,iBAAiB;YACjB,4BAA4B;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC5C,MAAuB,EACvB,WAA4C,EAC5C,iBAAgE;IAEhE,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAEvE,+DAA+D;IAC/D,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEzE,MAAM,4BAA4B,GAAG,2CAA2C,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjH,OAAO,qBAAqB,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,iBAAiB,CAAC,CAAC;AACvH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sCAAsC,CACpD,OAA+B,EAC/B,iBAAgE;IAEhE,OAAO,qBAAqB,CAC1B,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,4BAA4B,EACpC,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,UAA6B,EAC7B,OAA0B,EAC1B,OAAuB;IAEvB,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;IACnD,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC;IAC3C,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAAC;QACrC,sBAAsB;QACtB,OAAO,4BAA4B,CAAC,uBAAuB,CAAC;IAC9D,CAAC;IAED,IAAI,WAAW,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACxC,0CAA0C;QAC1C,OAAO,4BAA4B,CAAC,4BAA4B,CAAC;IACnE,CAAC;IAED,OAAO,EAAE,yBAAyB,CAAC,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAChF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkC,CAAC;IAClE,KAAK,MAAM,aAAa,IAAI,eAAe,EAAE,CAAC;QAC5C,kDAAkD;QAClD,IAAI,eAAe,CAAC,IAAI,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM;QACR,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,EAAE,yBAAyB,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IAC1E,yDAAyD;IACzD,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACvF,KAAK,EAAE,EAAE,CAAC;IACV,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,OAAO,4BAA4B,CAAC,YAAY,CAAC;IACnD,CAAC;IAED,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QAC5D,6EAA6E;QAC7E,OAAO,4BAA4B,CAAC,WAAW,CAAC;IAClD,CAAC;IAED,yDAAyD;IACzD,iFAAiF;IACjF,uEAAuE;IACvE,gFAAgF;IAChF,qEAAqE;IACrE,2GAA2G;IAC3G,qEAAqE;IACrE,iGAAiG;IACjG,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,KAAK,MAAM,aAAa,IAAI,YAAY,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,UAAU,CAAC,SAAS,CAAC;gBACnB,YAAY,EAAE,UAAU,CAAC,YAAY;gBACrC,aAAa;gBACb,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE;gBAC5B,MAAM,EAAE,gBAAgB,CAAC,QAAQ;aAClC,CAAC,CAAC;YACH,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;IAE/D,OAAO,4BAA4B,CAAC,eAAe,CAAC;AACtD,CAAC;AAED,MAAM,CAAN,IAAY,4BAOX;AAPD,WAAY,4BAA4B;IACtC,8EAA8C,CAAA;IAC9C,6FAA6D,CAAA;IAC7D,8DAA8B,CAAA;IAC9B,4DAA4B,CAAA;IAC5B,oEAAoC,CAAA;IACpC,iDAAiB,CAAA;AACnB,CAAC,EAPW,4BAA4B,KAA5B,4BAA4B,QAOvC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ChainForkConfig } from "@lodestar/config";
|
|
2
|
+
import { IBlockInput } from "../chain/blocks/blockInput/types.js";
|
|
3
|
+
import { ChainEventEmitter } from "../chain/emitter.js";
|
|
4
|
+
import { IExecutionEngine } from "../execution/index.js";
|
|
5
|
+
import { Metrics } from "../metrics/index.js";
|
|
6
|
+
export declare enum DataColumnEngineResult {
|
|
7
|
+
PreFulu = "pre_fulu",
|
|
8
|
+
NotAttemptedFull = "not_attempted_full",
|
|
9
|
+
NotAttemptedNoBlobs = "not_attempted_no_blobs",
|
|
10
|
+
NullResponse = "null_response",
|
|
11
|
+
SuccessResolved = "success_resolved",
|
|
12
|
+
SuccessLate = "success_late",
|
|
13
|
+
Failed = "failed"
|
|
14
|
+
}
|
|
15
|
+
export declare function getBlobSidecarsFromExecution(config: ChainForkConfig, executionEngine: IExecutionEngine, metrics: Metrics | null, emitter: ChainEventEmitter, blockInput: IBlockInput): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Post fulu, call getBlobsV2 from execution engine once per slot whenever we see either beacon_block or data_column_sidecar gossip message
|
|
18
|
+
*/
|
|
19
|
+
export declare function getDataColumnSidecarsFromExecution(config: ChainForkConfig, executionEngine: IExecutionEngine, emitter: ChainEventEmitter, blockInput: IBlockInput, metrics: Metrics | null, blobAndProofBuffers?: Uint8Array[]): Promise<DataColumnEngineResult>;
|
|
20
|
+
//# sourceMappingURL=execution.d.ts.map
|