private void SetCurrentValidator(long finalizedAtBlockNumber, AuRaParameters.Validator validator) { _currentValidator?.SetFinalizationManager(null); _currentValidator = _validatorFactory.CreateValidatorProcessor(validator, finalizedAtBlockNumber + 1); _currentValidator.SetFinalizationManager(_blockFinalizationManager); }
private IAuRaValidatorProcessor CreateValidator(long finalizedAtBlockNumber, AuRaParameters.Validator validator) { return(_validatorFactory.CreateValidatorProcessor(validator, finalizedAtBlockNumber + 1)); }
public MultiValidator(AuRaParameters.Validator validator, IAuRaAdditionalBlockProcessorFactory validatorFactory, ILogManager logManager) { if (validator == null) { throw new ArgumentNullException(nameof(validator)); } if (validatorFactory == null) { throw new ArgumentNullException(nameof(validatorFactory)); } if (validator.ValidatorType != AuRaParameters.ValidatorType.Multi) { throw new ArgumentException("Wrong validator type.", nameof(validator)); } _validators = validator.Validators?.Count > 0 ? validator.Validators .Select(kvp => new KeyValuePair <long, IAuRaValidatorProcessor>(kvp.Key, validatorFactory.CreateValidatorProcessor(kvp.Value, Math.Max(1, kvp.Key)))) // we need to make init block at least 1 as 0 is genesis. .ToArray() : throw new ArgumentException("Multi validator cannot be empty.", nameof(validator.Validators)); _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); }