コード例 #1
0
ファイル: MultiValidator.cs プロジェクト: phahulin/nethermind
 private void SetCurrentValidator(long finalizedAtBlockNumber, AuRaParameters.Validator validator)
 {
     _currentValidator?.SetFinalizationManager(null);
     _currentValidator = _validatorFactory.CreateValidatorProcessor(validator, finalizedAtBlockNumber + 1);
     _currentValidator.SetFinalizationManager(_blockFinalizationManager);
 }
コード例 #2
0
ファイル: MultiValidator.cs プロジェクト: fosfuan/nethermind
 private IAuRaValidatorProcessor CreateValidator(long finalizedAtBlockNumber, AuRaParameters.Validator validator)
 {
     return(_validatorFactory.CreateValidatorProcessor(validator, finalizedAtBlockNumber + 1));
 }
コード例 #3
0
        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));
        }