/// <summary> /// Gets a block fetcher that respects the given type of checkpoint. /// The block fetcher will return "IndexBatchSize" blocks starting at this.StoreTip + 1. /// If "this.AzureIndexer.IgnoreCheckpoints" is set then the checkpoints /// will be ignored by "GetCheckpointInternal". /// </summary> /// <param name="indexerCheckpoints">The type of checkpoint (wallets, blocks, transactions or balances).</param> /// <param name="cancellationToken">The token used for cancellation.</param> /// <returns>A block fetcher that respects the given type of checkpoint.</returns> private BlockFetcher GetBlockFetcher(IndexerCheckpoints indexerCheckpoints, CancellationToken cancellationToken) { Checkpoint checkpoint = this.AzureIndexer.GetCheckpointInternal(indexerCheckpoints); FullNodeBlocksRepository repo = new FullNodeBlocksRepository(this.FullNode); return(new BlockFetcher(checkpoint, repo, this.Chain) { NeedSaveInterval = this.indexerSettings.CheckpointInterval, FromHeight = this.StoreTip.Height + 1, ToHeight = Math.Min(this.StoreTip.Height + IndexBatchSize, this.indexerSettings.To), CancellationToken = cancellationToken }); }
/// <summary> /// Gets a block fetcher that respects the given type of checkpoint. /// The block fetcher will return "IndexBatchSize" blocks starting at this.StoreTip + 1. /// If "this.AzureIndexer.IgnoreCheckpoints" is set then the checkpoints /// will be ignored by "GetCheckpointInternal". /// </summary> /// <param name="indexerCheckpoints">The type of checkpoint (wallets, blocks, transactions or balances).</param> /// <returns>A block fetcher that respects the given type of checkpoint.</returns> private BlockFetcher GetBlockFetcher(IndexerCheckpoints indexerCheckpoints) { this.logger.LogTrace("()"); Checkpoint checkpoint = this.AzureIndexer.GetCheckpointInternal(indexerCheckpoints); FullNodeBlocksRepository repo = new FullNodeBlocksRepository(this.FullNode); var fetcher = new BlockFetcher(checkpoint, repo, this.Chain, this.Chain.FindFork(checkpoint.BlockLocator), this.loggerFactory) { NeedSaveInterval = this.indexerSettings.CheckpointInterval, FromHeight = this.StoreTip.Height + 1, ToHeight = Math.Min(this.StoreTip.Height + IndexBatchSize, this.indexerSettings.To), CancellationToken = this.nodeLifetime.ApplicationStopping }; this.logger.LogTrace("(-)"); return(fetcher); }