Beispiel #1
0
 public PoAConsensusRuleEngine(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ChainIndexer chainIndexer,
                               NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints, ICoinView utxoSet, IChainState chainState,
                               IInvalidBlockHashStore invalidBlockHashStore, INodeStats nodeStats, ISlotsManager slotsManager, PoABlockHeaderValidator poaHeaderValidator,
                               VotingManager votingManager, IFederationManager federationManager, IAsyncProvider asyncProvider)
     : base(network, loggerFactory, dateTimeProvider, chainIndexer, nodeDeployments, consensusSettings, checkpoints, utxoSet, chainState, invalidBlockHashStore, nodeStats, asyncProvider)
 {
     this.SlotsManager       = slotsManager;
     this.PoaHeaderValidator = poaHeaderValidator;
     this.VotingManager      = votingManager;
     this.FederationManager  = federationManager;
 }
Beispiel #2
0
        /// <summary>
        /// Initializes an instance of the object.
        /// </summary>
        protected ConsensusRules(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ConcurrentChain chain, NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints)
        {
            Guard.NotNull(network, nameof(network));
            Guard.NotNull(loggerFactory, nameof(loggerFactory));
            Guard.NotNull(dateTimeProvider, nameof(dateTimeProvider));
            Guard.NotNull(chain, nameof(chain));
            Guard.NotNull(nodeDeployments, nameof(nodeDeployments));
            Guard.NotNull(consensusSettings, nameof(consensusSettings));
            Guard.NotNull(checkpoints, nameof(checkpoints));

            this.Network = network;

            this.Chain              = chain;
            this.Checkpoints        = checkpoints;
            this.ConsensusParams    = this.Network.Consensus;
            this.ConsensusSettings  = consensusSettings;
            this.DateTimeProvider   = dateTimeProvider;
            this.loggerFactory      = loggerFactory;
            this.logger             = loggerFactory.CreateLogger(this.GetType().FullName);
            this.NodeDeployments    = nodeDeployments;
            this.PerformanceCounter = new ConsensusPerformanceCounter(this.DateTimeProvider);

            this.consensusRules           = new Dictionary <string, ConsensusRule>();
            this.partialValidationRules   = new List <ConsensusRuleDescriptor>();
            this.headerValidationRules    = new List <ConsensusRuleDescriptor>();
            this.fullValidationRules      = new List <ConsensusRuleDescriptor>();
            this.integrityValidationRules = new List <ConsensusRuleDescriptor>();
        }
 public TestContractRulesEngine(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ConcurrentChain chain, NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints, ICoinView utxoSet, ILookaheadBlockPuller puller)
     : base(network, loggerFactory, dateTimeProvider, chain, nodeDeployments, consensusSettings, checkpoints, utxoSet, puller)
 {
 }
Beispiel #4
0
 /// <summary>
 /// Initializes an instance of the object.
 /// </summary>
 public PowConsensusRules(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ConcurrentChain chain, NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints)
     : base(network, loggerFactory, dateTimeProvider, chain, nodeDeployments, consensusSettings, checkpoints)
 {
 }
 /// <summary>
 /// Creates a new instance of the <see cref="InitialBlockDownloadState" /> class.
 /// </summary>
 /// <param name="chainState">Information about node's chain.</param>
 /// <param name="network">Specification of the network the node runs on - regtest/testnet/mainnet.</param>
 /// <param name="nodeSettings">User defined node settings.</param>
 /// <param name="checkpoints">Provider of block header hash checkpoints.</param>
 public InitialBlockDownloadState(IChainState chainState, Network network, NodeSettings nodeSettings, ICheckpoints checkpoints)
 {
     this.network          = network;
     this.nodeSettings     = nodeSettings;
     this.chainState       = chainState;
     this.checkpoints      = checkpoints;
     this.dateTimeProvider = DateTimeProvider.Default;
 }
Beispiel #6
0
        public PowConsensusRuleEngine(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ChainIndexer chainIndexer,
                                      NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints, ICoinView utxoSet, IChainState chainState,
                                      IInvalidBlockHashStore invalidBlockHashStore, INodeStats nodeStats, IAsyncProvider asyncProvider, ConsensusRulesContainer consensusRulesContainer)
            : base(network, loggerFactory, dateTimeProvider, chainIndexer, nodeDeployments, consensusSettings, checkpoints, chainState, invalidBlockHashStore, nodeStats, consensusRulesContainer)
        {
            this.logger = loggerFactory.CreateLogger(this.GetType().FullName);

            this.UtxoSet    = utxoSet;
            this.prefetcher = new CoinviewPrefetcher(this.UtxoSet, chainIndexer, loggerFactory, asyncProvider, checkpoints);
        }
 /// <summary>
 /// Creates a new instance of the <see cref="InitialBlockDownloadState" /> class.
 /// </summary>
 /// <param name="chainState">Information about node's chain.</param>
 /// <param name="network">Specification of the network the node runs on - regtest/testnet/mainnet.</param>
 /// <param name="consensusSettings">Configurable settings for the consensus feature.</param>
 /// <param name="checkpoints">Provider of block header hash checkpoints.</param>
 /// <param name="loggerFactory">Provides us with a logger.</param>
 public InitialBlockDownloadState(IChainState chainState, Network network, ConsensusSettings consensusSettings, ICheckpoints checkpoints, ILoggerFactory loggerFactory)
 {
     this.network           = network;
     this.consensusSettings = consensusSettings;
     this.chainState        = chainState;
     this.checkpoints       = checkpoints;
     this.dateTimeProvider  = DateTimeProvider.Default;
     this.logger            = loggerFactory.CreateLogger(this.GetType().FullName);
 }
Beispiel #8
0
 /// <summary>
 /// Initializes an instance of the object.
 /// </summary>
 public PosConsensusRules(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ConcurrentChain chain, NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints, CoinView utxoSet, ILookaheadBlockPuller puller, IStakeChain stakeChain, IStakeValidator stakeValidator)
     : base(network, loggerFactory, dateTimeProvider, chain, nodeDeployments, consensusSettings, checkpoints, utxoSet, puller)
 {
     this.StakeChain     = stakeChain;
     this.StakeValidator = stakeValidator;
 }
        public InitialBlockDownloadState(IChainState chainState, Network network, ConsensusSettings consensusSettings, ICheckpoints checkpoints, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider)
        {
            Guard.NotNull(chainState, nameof(chainState));

            this.network           = network;
            this.consensusSettings = consensusSettings;
            this.chainState        = chainState;
            this.checkpoints       = checkpoints;
            this.dateTimeProvider  = dateTimeProvider;

            this.lastCheckpointHeight = this.checkpoints.GetLastCheckpointHeight();
            this.minimumChainWork     = this.network.Consensus.MinimumChainWork ?? uint256.Zero;

            this.logger = loggerFactory.CreateLogger(this.GetType().FullName);
        }
 public TestPosConsensusRules(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ChainIndexer chainIndexer,
                              NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints, ICoinView uxtoSet, IStakeChain stakeChain,
                              IStakeValidator stakeValidator, IChainState chainState, IInvalidBlockHashStore invalidBlockHashStore, INodeStats nodeStats, IRewindDataIndexCache rewindDataIndexCache, IAsyncProvider asyncProvider, IRewardValidator rewardValidator)
     : base(network, loggerFactory, dateTimeProvider, chainIndexer, nodeDeployments, consensusSettings, checkpoints, uxtoSet, stakeChain, stakeValidator, chainState, invalidBlockHashStore, nodeStats, rewindDataIndexCache, asyncProvider, rewardValidator)
 {
     this.ruleRegistrationHelper = new RuleRegistrationHelper();
 }
Beispiel #11
0
 /// <summary>
 /// Initializes an instance of the object.
 /// </summary>
 public PowConsensusRules(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ConcurrentChain chain, NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints, CoinView utxoSet, ILookaheadBlockPuller puller)
     : base(network, loggerFactory, dateTimeProvider, chain, nodeDeployments, consensusSettings, checkpoints)
 {
     this.UtxoSet = utxoSet;
     this.Puller  = puller;
 }
 public TestConsensusRules(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ChainIndexer chainIndexer, NodeDeployments nodeDeployments,
                           ConsensusSettings consensusSettings, ICheckpoints checkpoints, IChainState chainState, IInvalidBlockHashStore invalidBlockHashStore, INodeStats nodeStats)
     : base(network, loggerFactory, dateTimeProvider, chainIndexer, nodeDeployments, consensusSettings, checkpoints, chainState, invalidBlockHashStore, nodeStats)
 {
     this.ruleRegistrationHelper = new RuleRegistrationHelper();
 }
Beispiel #13
0
 public InitialBlockDownloadStateMock(IChainState chainState, Network network, ConsensusSettings consensusSettings, ICheckpoints checkpoints)
 {
 }
Beispiel #14
0
 /// <summary>
 /// Initializes an instance of the object.
 /// </summary>
 protected ConsensusRules(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ConcurrentChain chain, NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints)
 {
     this.Network           = network;
     this.DateTimeProvider  = dateTimeProvider;
     this.Chain             = chain;
     this.NodeDeployments   = nodeDeployments;
     this.loggerFactory     = loggerFactory;
     this.ConsensusSettings = consensusSettings;
     this.Checkpoints       = checkpoints;
     this.ConsensusParams   = this.Network.Consensus;
     this.logger            = loggerFactory.CreateLogger(this.GetType().FullName);
     this.consensusRules    = new Dictionary <string, ConsensusRule>();
 }
 public TestPosConsensusRules(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ConcurrentChain chain, NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints, CoinView uxtoSet, ILookaheadBlockPuller lookaheadBlockPuller, IStakeChain stakeChain, IStakeValidator stakeValidator)
     : base(network, loggerFactory, dateTimeProvider, chain, nodeDeployments, consensusSettings, checkpoints, uxtoSet, lookaheadBlockPuller, stakeChain, stakeValidator)
 {
     this.ruleRegistration = new Mock <IRuleRegistration>();
 }
 public ProvenHeadersBlockStoreBehavior(Network network, ChainIndexer chainIndexer, IChainState chainState,
                                        ILoggerFactory loggerFactory, IConsensusManager consensusManager, ICheckpoints checkpoints,
                                        IBlockStoreQueue blockStoreQueue)
     : base(chainIndexer, chainState, loggerFactory, consensusManager, blockStoreQueue)
 {
     this.network     = Guard.NotNull(network, nameof(network));
     this.checkpoints = Guard.NotNull(checkpoints, nameof(checkpoints));
 }
 public TestConsensusRules(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ConcurrentChain chain, NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints)
     : base(network, loggerFactory, dateTimeProvider, chain, nodeDeployments, consensusSettings, checkpoints)
 {
     this.ruleRegistration = new Mock <IRuleRegistration>();
 }
Beispiel #18
0
 public TestContractRulesEngine(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ConcurrentChain chain, NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints, ICoinView utxoSet, IChainState chainState,
                                IInvalidBlockHashStore invalidBlockHashStore, INodeStats nodeStats)
     : base(network, loggerFactory, dateTimeProvider, chain, nodeDeployments, consensusSettings, checkpoints, utxoSet, chainState, invalidBlockHashStore, nodeStats)
 {
 }
Beispiel #19
0
 /// <summary>
 /// Initializes an instance of the object.
 /// </summary>
 public PowConsensusRuleEngine(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ConcurrentChain chain,
                               NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints, ICoinView utxoSet, IChainState chainState,
                               IInvalidBlockHashStore invalidBlockHashStore, INodeStats nodeStats)
     : base(network, loggerFactory, dateTimeProvider, chain, nodeDeployments, consensusSettings, checkpoints, chainState, invalidBlockHashStore, nodeStats)
 {
     this.UtxoSet    = utxoSet;
     this.prefetcher = new CoinviewPrefetcher(this.UtxoSet, chain, loggerFactory);
 }
Beispiel #20
0
        public UnreliablePeerBehavior(Network network, IChainState chainState, ILoggerFactory loggerFactory, IPeerBanning peerBanning, NodeSettings nodeSettings, ICheckpoints checkpoints)
        {
            Guard.NotNull(network, nameof(network));
            Guard.NotNull(chainState, nameof(chainState));
            Guard.NotNull(loggerFactory, nameof(loggerFactory));
            Guard.NotNull(peerBanning, nameof(nodeSettings));
            Guard.NotNull(nodeSettings, nameof(nodeSettings));
            Guard.NotNull(checkpoints, nameof(checkpoints));

            this.network       = network;
            this.chainState    = chainState;
            this.loggerFactory = loggerFactory;
            this.peerBanning   = peerBanning;
            this.nodeSettings  = nodeSettings;
            this.checkpoints   = checkpoints;

            this.logger = loggerFactory.CreateLogger(this.GetType().FullName);
        }
Beispiel #21
0
 public CoinviewPrefetcher(ICoinView coinview, ChainIndexer chainIndexer, ILoggerFactory loggerFactory, IAsyncProvider asyncProvider, ICheckpoints checkpoints)
 {
     this.coinview       = coinview;
     this.chainIndexer   = chainIndexer;
     this.asyncProvider  = asyncProvider;
     this.checkpoints    = checkpoints;
     this.headersQueue   = asyncProvider.CreateAndRunAsyncDelegateDequeuer <ChainedHeader>($"{nameof(CoinviewPrefetcher)}-{nameof(this.headersQueue)}", this.OnHeaderEnqueued);
     this.coinviewHelper = new CoinviewHelper();
     this.logger         = loggerFactory.CreateLogger(this.GetType().FullName);
 }
Beispiel #22
0
 public TestPosConsensusRules(Network network, ILoggerFactory loggerFactory, IDateTimeProvider dateTimeProvider, ConcurrentChain chain,
                              NodeDeployments nodeDeployments, ConsensusSettings consensusSettings, ICheckpoints checkpoints, ICoinView uxtoSet, IStakeChain stakeChain,
                              IStakeValidator stakeValidator, IChainState chainState, IInvalidBlockHashStore invalidBlockHashStore)
     : base(network, loggerFactory, dateTimeProvider, chain, nodeDeployments, consensusSettings, checkpoints, uxtoSet, stakeChain, stakeValidator, chainState, invalidBlockHashStore)
 {
     this.ruleRegistrationHelper = new RuleRegistrationHelper();
 }