private async Task OnEnqueueAsync(PartialValidationItem item, CancellationToken cancellationtoken) { ValidationContext result = await this.consensusRules.PartialValidationAsync(item.ChainedHeader, item.Block).ConfigureAwait(false); try { await item.PartialValidationCompletedAsyncCallback(result).ConfigureAwait(false); } catch (Exception exception) { this.logger.LogCritical("Partial validation callback threw an exception: {0}.", exception.ToString()); throw; } }
private async Task OnEnqueueAsync(PartialValidationItem item, CancellationToken cancellationtoken) { this.logger.LogTrace("({0}:'{1}')", nameof(item), item); var validationContext = new ValidationContext { Block = item.ChainedHeaderBlock.Block }; // TODO: pass the tip. await this.consensusRules.PartialValidationAsync(validationContext, null).ConfigureAwait(false); var partialValidationResult = new PartialValidationResult { ChainedHeaderBlock = item.ChainedHeaderBlock, BanDurationSeconds = validationContext.BanDurationSeconds, BanReason = validationContext.Error != null ? $"Invalid block received: {validationContext.Error.Message}" : string.Empty, Succeeded = validationContext.Error != null }; await item.PartialValidationCompletedAsyncCallback(partialValidationResult).ConfigureAwait(false); this.logger.LogTrace("(-)"); }