private bool TryUpdateValidator(Block block) { var validatorUpdated = false; // Check next validators as blocks are proceeding while (_validators.Length > _nextValidator && block.Number >= _validators[_nextValidator].Key) { _currentValidator = _validators[_nextValidator].Value; _nextValidator++; validatorUpdated = true; } // Check previous validators if reorganisation happened var currentValidator = _nextValidator - 1; while (currentValidator >= 0 && block.Number < _validators[currentValidator].Key) { _nextValidator = currentValidator; currentValidator--; _currentValidator = _validators[currentValidator].Value; validatorUpdated = true; } return(validatorUpdated); }
private void SetCurrentValidator(long finalizedAtBlockNumber, AuRaParameters.Validator validator) { _currentValidator?.SetFinalizationManager(null); _currentValidator = CreateValidator(finalizedAtBlockNumber, validator); _currentValidator.SetFinalizationManager(_blockFinalizationManager, _isProducing); }
private void SetCurrentValidator(long finalizedAtBlockNumber, AuRaParameters.Validator validator) { _currentValidator?.SetFinalizationManager(null); _currentValidator = _validatorFactory.CreateValidatorProcessor(validator, finalizedAtBlockNumber + 1); _currentValidator.SetFinalizationManager(_blockFinalizationManager); }