public VotingManagerTests()
        {
            string dir          = TestBase.CreateTestDir(this);
            var    keyValueRepo = new KeyValueRepository(dir, new DBreezeSerializer(this.network));

            this.votingManager = new VotingManager(this.federationManager, this.loggerFactory, keyValueRepo, this.slotsManager);
        }
        public TestPoAMiner(
            IConsensusManager consensusManager,
            IDateTimeProvider dateTimeProvider,
            Network network,
            INodeLifetime nodeLifetime,
            ILoggerFactory loggerFactory,
            IInitialBlockDownloadState ibdState,
            BlockDefinition blockDefinition,
            ISlotsManager slotsManager,
            IConnectionManager connectionManager,
            PoABlockHeaderValidator poaHeaderValidator,
            IFederationManager federationManager,
            IIntegrityValidator integrityValidator,
            IWalletManager walletManager,
            INodeStats nodeStats,
            VotingManager votingManager,
            PoAMinerSettings poAMinerSettings,
            IAsyncProvider asyncProvider) : base(consensusManager, dateTimeProvider, network, nodeLifetime, loggerFactory, ibdState, blockDefinition, slotsManager,
                                                 connectionManager, poaHeaderValidator, federationManager, integrityValidator, walletManager, nodeStats, votingManager, poAMinerSettings, asyncProvider)
        {
            this.timeProvider = dateTimeProvider as EditableTimeProvider;

            this.cancellation     = new CancellationTokenSource();
            this.slotsManager     = slotsManager;
            this.consensusManager = consensusManager;
        }
Ejemplo n.º 3
0
        public void AddAWriteInCanididate()
        {
            var _context = new VotingContext();
            var _manager = new VotingManager();

            var builder = new RankingVoteTicketBuilder();

            var RankingVoteItem = new RankingVoteItem
            {
                RankingVoteItemId  = Guid.NewGuid(),
                PrimeCandidateItem = new VotingApp.Models.CandidateItem()
                {
                    CandidateId = Guid.NewGuid(),
                    Name        = "Test",
                    JobId       = Guid.Parse("521C573E-91E8-47CA-ACBC-BF3D63706F29")
                },
                SubCandidateItem = new VotingApp.Models.CandidateItem()
                {
                    CandidateId = Guid.NewGuid(),
                    Name        = "Vice Test",
                    JobId       = Guid.Parse("057A2ED5-CDE9-44DB-9697-041B0F09555F")
                },
                Ranking = 1
            };

            _manager.Context.RankingVotes.Add(builder.GetEntity(RankingVoteItem));
            _manager.Context.SaveChanges();
        }
Ejemplo n.º 4
0
        public void GetSingleVoteItems()
        {
            var _context = new VotingContext();
            var _manager = new VotingManager();

            var canidates = _manager.SingleVoteManager.GetSingleVoteItems();
        }
Ejemplo n.º 5
0
 public SmartContractPoARuleEngine(
     ICallDataSerializer callDataSerializer,
     ConcurrentChain chain,
     ICheckpoints checkpoints,
     ConsensusSettings consensusSettings,
     IDateTimeProvider dateTimeProvider,
     IContractExecutorFactory executorFactory,
     ILoggerFactory loggerFactory,
     Network network,
     NodeDeployments nodeDeployments,
     IStateRepositoryRoot originalStateRoot,
     IReceiptRepository receiptRepository,
     ISenderRetriever senderRetriever,
     ICoinView utxoSet,
     IChainState chainState,
     IInvalidBlockHashStore invalidBlockHashStore,
     INodeStats nodeStats,
     SlotsManager slotsManager,
     PoABlockHeaderValidator poaHeaderValidator,
     VotingManager votingManager,
     FederationManager federationManager)
     : base(network, loggerFactory, dateTimeProvider, chain, nodeDeployments, consensusSettings, checkpoints, utxoSet, chainState,
            invalidBlockHashStore, nodeStats, slotsManager, poaHeaderValidator, votingManager, federationManager)
 {
     this.CallDataSerializer = callDataSerializer;
     this.ExecutorFactory    = executorFactory;
     this.OriginalStateRoot  = originalStateRoot;
     this.ReceiptRepository  = receiptRepository;
     this.SenderRetriever    = senderRetriever;
 }
        /// <summary>Loads saved collection of federation members from the database.</summary>
        private void LoadFederation()
        {
            VotingManager votingManager = this.fullNode.NodeService <VotingManager>();

            this.federationMembers = votingManager.GetFederationFromExecutedPolls();
            this.UpdateMultisigMiners(this.GetMultisigMinersApplicabilityHeight() != null);
        }
Ejemplo n.º 7
0
        // GET: Index
        public ActionResult Index()
        {
            ArticlesManager articlesManager = new ArticlesManager();
            var             articles        = articlesManager.GetData()
                                              .Select(item => new Article {
                ArticleName = item.ArticleName, ArticleText = item.ArticleText
            })
                                              .ToList();

            ViewBag.VoteType = "Vote";
            if (Request.HttpMethod == "POST")
            {
                ViewBag.VoteType = "Result";
                VotingManager votesManager = new VotingManager();
                var           genderValue  = Request.Form["gender"];
                if (genderValue == "Male")
                {
                    votesManager.AddMaleVote();
                }
                else if (genderValue == "Female")
                {
                    votesManager.AddFemaleVote();
                }
                Voting votes = votesManager.GetData();
                ViewBag.Female = votes.Female;
                ViewBag.Male   = votes.Male;
                return(View(articles));
            }
            return(View(articles));
        }
Ejemplo n.º 8
0
        public CollateralVotingController(IFederationManager fedManager, ILoggerFactory loggerFactory, VotingManager votingManager, Network network)
        {
            this.fedManager    = fedManager;
            this.votingManager = votingManager;
            this.network       = network;

            this.logger = loggerFactory.CreateLogger("Impleum.Bitcoin.Fullnode");
        }
Ejemplo n.º 9
0
 public BotController(Bot _bot, ScopesManager _sManager, VotingManager _vManager, ChatCommandManager _ccm)
 {
     bot      = _bot;
     sManager = _sManager;
     vManager = _vManager;
     //userManager = _userManager;
     ccm = _ccm;
 }
Ejemplo n.º 10
0
 // Request the start of a vote
 public override void PrimaryInteraction(Character voteLeader)
 {
     if (votingManager == null)
     {
         votingManager = GameObject.Find("/VotingManager").GetComponent <VotingManager>();
     }
     votingManager.InitVote(View.ViewID, voteLeader.GetComponent <PhotonView>().ViewID);
 }
        public CollateralVotingController(IFederationManager fedManager, VotingManager votingManager, Network network)
        {
            this.fedManager    = fedManager;
            this.votingManager = votingManager;
            this.network       = network;

            this.logger = LogManager.GetCurrentClassLogger();
        }
        public CollateralVotingController(IFederationManager fedManager, ILoggerFactory loggerFactory, VotingManager votingManager, Network network)
        {
            this.fedManager    = fedManager;
            this.votingManager = votingManager;
            this.network       = network;

            this.logger = loggerFactory.CreateLogger(this.GetType().FullName);
        }
 public JoinFederationRequestMonitor(VotingManager votingManager, Network network, CounterChainNetworkWrapper counterChainNetworkWrapper, ISignals signals, ILoggerFactory loggerFactory)
 {
     this.signals             = signals;
     this.loggerFactory       = loggerFactory;
     this.logger              = loggerFactory.CreateLogger(this.GetType().FullName);
     this.votingManager       = votingManager;
     this.network             = network;
     this.counterChainNetwork = counterChainNetworkWrapper.CounterChainNetwork;
 }
 public VotingRequestFullValidationRule(IInitialBlockDownloadState ibdState, Network network, CounterChainNetworkWrapper counterChainNetwork, IFederationManager federationManager, VotingManager votingManager) : base()
 {
     this.ibdState            = ibdState;
     this.network             = network;
     this.counterChainNetwork = counterChainNetwork.CounterChainNetwork;
     this.encoder             = new JoinFederationRequestEncoder();
     this.federationManager   = federationManager;
     this.votingManager       = votingManager;
 }
 public JoinFederationRequestMonitor(VotingManager votingManager, Network network, CounterChainNetworkWrapper counterChainNetworkWrapper, IFederationManager federationManager, ISignals signals)
 {
     this.signals             = signals;
     this.logger              = LogManager.GetCurrentClassLogger();
     this.votingManager       = votingManager;
     this.network             = network;
     this.counterChainNetwork = counterChainNetworkWrapper.CounterChainNetwork;
     this.federationManager   = federationManager;
 }
Ejemplo n.º 16
0
        public override void Initialize()
        {
            this.votingDataEncoder = new VotingDataEncoder(this.Parent.LoggerFactory);
            this.ruleEngine        = (PoAConsensusRuleEngine)this.Parent;
            this.federationManager = this.ruleEngine.FederationManager;
            this.votingManager     = this.ruleEngine.VotingManager;
            this.slotsManager      = this.ruleEngine.SlotsManager;

            base.Initialize();
        }
 public JoinFederationRequestService(ICounterChainSettings counterChainSettings, IFullNode fullNode, IHttpClientFactory httpClientFactory, ILoggerFactory loggerFactory, Network network, NodeSettings nodeSettings, VotingManager votingManager)
 {
     this.counterChainSettings = counterChainSettings;
     this.fullNode             = fullNode;
     this.httpClientFactory    = httpClientFactory;
     this.loggerFactory        = loggerFactory;
     this.network       = network as PoANetwork;
     this.nodeSettings  = nodeSettings;
     this.votingManager = votingManager;
 }
 public CollateralPoAMiner(IConsensusManager consensusManager, IDateTimeProvider dateTimeProvider, Network network, INodeLifetime nodeLifetime, ILoggerFactory loggerFactory,
                           IInitialBlockDownloadState ibdState, BlockDefinition blockDefinition, ISlotsManager slotsManager, IConnectionManager connectionManager,
                           PoABlockHeaderValidator poaHeaderValidator, IFederationManager federationManager, IIntegrityValidator integrityValidator, IWalletManager walletManager,
                           INodeStats nodeStats, VotingManager votingManager, PoAMinerSettings poAMinerSettings, ICollateralChecker collateralChecker, IAsyncProvider asyncProvider)
     : base(consensusManager, dateTimeProvider, network, nodeLifetime, loggerFactory, ibdState, blockDefinition, slotsManager, connectionManager,
            poaHeaderValidator, federationManager, integrityValidator, walletManager, nodeStats, votingManager, poAMinerSettings, asyncProvider)
 {
     this.collateralChecker = collateralChecker;
     this.encoder           = new CollateralHeightCommitmentEncoder();
 }
Ejemplo n.º 19
0
 private void Awake()
 {
     if (Instance == null)
     {
         Instance = this;
     }
     else
     {
         Destroy(gameObject);
     }
 }
Ejemplo n.º 20
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, SlotsManager slotsManager, PoABlockHeaderValidator poaHeaderValidator,
                               VotingManager votingManager, FederationManager federationManager)
     : base(network, loggerFactory, dateTimeProvider, chainIndexer, nodeDeployments, consensusSettings, checkpoints, utxoSet, chainState, invalidBlockHashStore, nodeStats)
 {
     this.SlotsManager       = slotsManager;
     this.PoaHeaderValidator = poaHeaderValidator;
     this.VotingManager      = votingManager;
     this.FederationManager  = federationManager;
 }
Ejemplo n.º 21
0
        public static (IFederationManager federationManager, IFederationHistory federationHistory) CreateFederationManager(object caller, Network network, LoggerFactory loggerFactory, ISignals signals)
        {
            string dir = TestBase.CreateTestDir(caller);

            var dbreezeSerializer = new DBreezeSerializer(network.Consensus.ConsensusFactory);

            var nodeSettings = new NodeSettings(network, args: new string[] { $"-datadir={dir}" });

            Key federationKey = new Mnemonic("lava frown leave wedding virtual ghost sibling able mammal liar wide wisdom").DeriveExtKey().PrivateKey;

            new KeyTool(nodeSettings.DataFolder).SavePrivateKey(federationKey);

            var consensusManager = new Mock <IConsensusManager>();

            consensusManager.Setup(c => c.Tip).Returns(new ChainedHeader(network.GetGenesis().Header, network.GenesisHash, 0));

            var fullNode = new Mock <IFullNode>();

            fullNode.Setup(x => x.NodeService <IConsensusManager>(false)).Returns(consensusManager.Object);

            var counterChainSettings = new CounterChainSettings(nodeSettings, new CounterChainNetworkWrapper(new StraxRegTest()));

            var federationManager = new FederationManager(fullNode.Object, network, nodeSettings, signals, counterChainSettings);
            var asyncProvider     = new AsyncProvider(loggerFactory, signals);

            var chainIndexerMock = new Mock <ChainIndexer>();
            var header           = new BlockHeader();

            chainIndexerMock.Setup(x => x.Tip).Returns(new ChainedHeader(header, header.GetHash(), 0));
            var votingManager = new VotingManager(federationManager, loggerFactory,
                                                  new Mock <IPollResultExecutor>().Object, new Mock <INodeStats>().Object, nodeSettings.DataFolder, dbreezeSerializer, signals, network, null, chainIndexerMock.Object, null, nodeSettings);

            var federationHistory = new Mock <IFederationHistory>();

            federationHistory.Setup(x => x.GetFederationMemberForBlock(It.IsAny <ChainedHeader>())).Returns <ChainedHeader>((chainedHeader) =>
            {
                List <IFederationMember> members = ((PoAConsensusOptions)network.Consensus.Options).GenesisFederationMembers;
                return(members[chainedHeader.Height % members.Count]);
            });

            federationHistory.Setup(x => x.GetFederationForBlock(It.IsAny <ChainedHeader>())).Returns <ChainedHeader>((chainedHeader) =>
            {
                return(((PoAConsensusOptions)network.Consensus.Options).GenesisFederationMembers);
            });

            federationHistory.Setup(x => x.CanGetFederationForBlock(It.IsAny <ChainedHeader>())).Returns <ChainedHeader>((chainedHeader) => true);

            votingManager.Initialize(federationHistory.Object);
            fullNode.Setup(x => x.NodeService <VotingManager>(It.IsAny <bool>())).Returns(votingManager);
            federationManager.Initialize();

            return(federationManager, federationHistory.Object);
        }
Ejemplo n.º 22
0
 public VotingRequestValidationRule(Network network,
                                    ITxMempool mempool,
                                    MempoolSettings mempoolSettings,
                                    ChainIndexer chainIndexer,
                                    ILoggerFactory loggerFactory,
                                    VotingManager votingManager,
                                    IFederationManager federationManager) : base(network, mempool, mempoolSettings, chainIndexer, loggerFactory)
 {
     this.encoder           = new JoinFederationRequestEncoder(loggerFactory);
     this.votingManager     = votingManager;
     this.federationManager = federationManager;
 }
Ejemplo n.º 23
0
        public CheckCollateralFullValidationRule(IInitialBlockDownloadState ibdState, ICollateralChecker collateralChecker,
                                                 ISlotsManager slotsManager, IDateTimeProvider dateTime, Network network, VotingManager votingManager)
        {
            this.network           = network;
            this.ibdState          = ibdState;
            this.collateralChecker = collateralChecker;
            this.slotsManager      = slotsManager;
            this.dateTime          = dateTime;
            this.votingManager     = votingManager;

            this.collateralCheckBanDurationSeconds = (int)(this.network.Consensus.Options as PoAConsensusOptions).TargetSpacingSeconds / 2;
        }
Ejemplo n.º 24
0
        private void InitializeCollateralChecker([CallerMemberName] string callingMethod = "")
        {
            var loggerFactory = new LoggerFactory();
            IHttpClientFactory clientFactory = new Bitcoin.Controllers.HttpClientFactory();

            Network network = CirrusNetwork.NetworksSelector.Regtest();

            this.collateralFederationMembers = new List <CollateralFederationMember>()
            {
                new CollateralFederationMember(new PubKey("036317d97f911ce899fd0a360866d19f2dca5252c7960d4652d814ab155a8342de"), false, new Money(100), "addr1"),
                new CollateralFederationMember(new PubKey("02a08d72d47b3103261163c15aa2f6b0d007e1872ad9f5fddbfbd27bdb738156e9"), false, new Money(500), "addr2"),
                new CollateralFederationMember(new PubKey("03634c79d4e8e915cfb9f7bbef57bed32d715150836b7845b1a14c93670d816ab6"), false, new Money(100_000), "addr3")
            };

            List <IFederationMember> federationMembers = (network.Consensus.Options as PoAConsensusOptions).GenesisFederationMembers;

            federationMembers.Clear();
            federationMembers.AddRange(this.collateralFederationMembers);

            var dataFolder = TestBase.CreateTestDir(callingMethod);
            FederatedPegSettings fedPegSettings = FedPegTestsHelper.CreateSettings(network, KnownNetworks.StraxRegTest, dataFolder, out NodeSettings nodeSettings);

            var counterChainSettings = new CounterChainSettings(nodeSettings, new CounterChainNetworkWrapper(Networks.Strax.Regtest()));
            var asyncMock            = new Mock <IAsyncProvider>();

            asyncMock.Setup(a => a.RegisterTask(It.IsAny <string>(), It.IsAny <Task>()));

            ISignals signals            = new Signals(loggerFactory, new DefaultSubscriptionErrorHandler(loggerFactory));
            var      dbreezeSerializer  = new DBreezeSerializer(network.Consensus.ConsensusFactory);
            var      asyncProvider      = new AsyncProvider(loggerFactory, signals);
            var      finalizedBlockRepo = new FinalizedBlockInfoRepository(new LevelDbKeyValueRepository(nodeSettings.DataFolder, dbreezeSerializer), asyncProvider);

            finalizedBlockRepo.LoadFinalizedBlockInfoAsync(network).GetAwaiter().GetResult();

            var chainIndexerMock = new Mock <ChainIndexer>();
            var header           = new BlockHeader();

            chainIndexerMock.Setup(x => x.Tip).Returns(new ChainedHeader(header, header.GetHash(), 0));
            var fullNode = new Mock <IFullNode>();

            IFederationManager federationManager = new FederationManager(fullNode.Object, network, nodeSettings, signals, counterChainSettings);
            var votingManager     = new VotingManager(federationManager, new Mock <IPollResultExecutor>().Object, new Mock <INodeStats>().Object, nodeSettings.DataFolder, dbreezeSerializer, signals, finalizedBlockRepo, network);
            var federationHistory = new FederationHistory(federationManager, votingManager);

            votingManager.Initialize(federationHistory);

            fullNode.Setup(x => x.NodeService <VotingManager>(It.IsAny <bool>())).Returns(votingManager);

            federationManager.Initialize();

            this.collateralChecker = new CollateralChecker(clientFactory, counterChainSettings, federationManager, signals, network, asyncMock.Object, (new Mock <INodeLifetime>()).Object);
        }
Ejemplo n.º 25
0
 public CollateralPoAMiner(IConsensusManager consensusManager, IDateTimeProvider dateTimeProvider, Network network, INodeLifetime nodeLifetime, ILoggerFactory loggerFactory,
                           IInitialBlockDownloadState ibdState, BlockDefinition blockDefinition, ISlotsManager slotsManager, IConnectionManager connectionManager, JoinFederationRequestMonitor joinFederationRequestMonitor,
                           PoABlockHeaderValidator poaHeaderValidator, IFederationManager federationManager, IIntegrityValidator integrityValidator, IWalletManager walletManager, ChainIndexer chainIndexer,
                           INodeStats nodeStats, VotingManager votingManager, PoAMinerSettings poAMinerSettings, ICollateralChecker collateralChecker, IAsyncProvider asyncProvider, ICounterChainSettings counterChainSettings, IIdleFederationMembersKicker idleFederationMembersKicker)
     : base(consensusManager, dateTimeProvider, network, nodeLifetime, loggerFactory, ibdState, blockDefinition, slotsManager, connectionManager,
            poaHeaderValidator, federationManager, integrityValidator, walletManager, nodeStats, votingManager, poAMinerSettings, asyncProvider, idleFederationMembersKicker)
 {
     this.counterChainNetwork          = counterChainSettings.CounterChainNetwork;
     this.collateralChecker            = collateralChecker;
     this.encoder                      = new CollateralHeightCommitmentEncoder(this.logger);
     this.chainIndexer                 = chainIndexer;
     this.joinFederationRequestMonitor = joinFederationRequestMonitor;
 }
Ejemplo n.º 26
0
        private void CreateFederationManager(NodeSettings nodeSettings)
        {
            var fullNode = new Mock <IFullNode>();

            var counterChainSettings = new CounterChainSettings(nodeSettings, new CounterChainNetworkWrapper(new StraxRegTest()));

            this.federationManager = new FederationManager(fullNode.Object, this.network, NodeSettings.Default(this.network), this.signals, counterChainSettings);

            VotingManager votingManager = InitializeVotingManager(nodeSettings);

            fullNode.Setup(x => x.NodeService <VotingManager>(It.IsAny <bool>())).Returns(votingManager);

            this.federationManager.Initialize();
        }
Ejemplo n.º 27
0
        public void GetSingleVoteElectionResults()
        {
            var _context = new VotingContext();
            var _manager = new VotingManager();

            var canidates = _manager.GetVoteResults();



            var electionResultsForSingleVoteItems = new Dictionary <SingleVoteItem, Dictionary <bool, int> >();

            var singleVoteItems = canidates.Where(x => x.SingleVoteId != null).ToList();

            foreach (var singleVoteItem in singleVoteItems)
            {
                if (singleVoteItem.SingleVoteItem != null &&
                    electionResultsForSingleVoteItems.ContainsKey(singleVoteItem.SingleVoteItem))
                {
                    if (singleVoteItem.VotedYes != null && singleVoteItem.VotedYes.Value)
                    {
                        electionResultsForSingleVoteItems[singleVoteItem.SingleVoteItem][true]++;
                    }
                    if (singleVoteItem.VotedNo != null && singleVoteItem.VotedNo.Value)
                    {
                        electionResultsForSingleVoteItems[singleVoteItem.SingleVoteItem][false]++;
                    }
                }
                else
                {
                    var firstEntry = new Dictionary <bool, int>();
                    firstEntry.Add(true, 0);
                    firstEntry.Add(false, 0);
                    if (singleVoteItem.VotedYes != null && singleVoteItem.VotedYes.Value)
                    {
                        firstEntry[true]++;
                    }
                    if (singleVoteItem.VotedNo != null && singleVoteItem.VotedNo.Value)
                    {
                        firstEntry[false]++;
                    }
                    if (singleVoteItem.SingleVoteItem != null)
                    {
                        electionResultsForSingleVoteItems.Add(singleVoteItem.SingleVoteItem, firstEntry);
                    }
                }
            }


            var test = electionResultsForSingleVoteItems;
        }
Ejemplo n.º 28
0
        public override void Initialize()
        {
            this.votingDataEncoder = new VotingDataEncoder(this.Parent.LoggerFactory);
            this.ruleEngine        = (PoAConsensusRuleEngine)this.Parent;
            this.loggerFactory     = this.Parent.LoggerFactory;
            this.logger            = this.loggerFactory.CreateLogger(this.GetType().FullName);
            this.network           = this.Parent.Network;
            this.federationManager = this.ruleEngine.FederationManager;
            this.votingManager     = this.ruleEngine.VotingManager;
            this.slotsManager      = this.ruleEngine.SlotsManager;
            this.consensusFactory  = (CollateralPoAConsensusFactory)this.network.Consensus.ConsensusFactory;

            base.Initialize();
        }
Ejemplo n.º 29
0
        public PoAMiner(
            IConsensusManager consensusManager,
            IDateTimeProvider dateTimeProvider,
            Network network,
            INodeLifetime nodeLifetime,
            ILoggerFactory loggerFactory,
            IInitialBlockDownloadState ibdState,
            BlockDefinition blockDefinition,
            ISlotsManager slotsManager,
            IConnectionManager connectionManager,
            PoABlockHeaderValidator poaHeaderValidator,
            IFederationManager federationManager,
            IFederationHistory federationHistory,
            IIntegrityValidator integrityValidator,
            IWalletManager walletManager,
            INodeStats nodeStats,
            VotingManager votingManager,
            PoASettings poAMinerSettings,
            IAsyncProvider asyncProvider,
            IIdleFederationMembersKicker idleFederationMembersKicker,
            NodeSettings nodeSettings)
        {
            this.consensusManager            = consensusManager;
            this.dateTimeProvider            = dateTimeProvider;
            this.network                     = network as PoANetwork;
            this.ibdState                    = ibdState;
            this.blockDefinition             = blockDefinition;
            this.slotsManager                = slotsManager;
            this.connectionManager           = connectionManager;
            this.poaHeaderValidator          = poaHeaderValidator;
            this.federationManager           = federationManager;
            this.federationHistory           = federationHistory;
            this.integrityValidator          = integrityValidator;
            this.walletManager               = walletManager;
            this.votingManager               = votingManager;
            this.poaSettings                 = poAMinerSettings;
            this.asyncProvider               = asyncProvider;
            this.idleFederationMembersKicker = idleFederationMembersKicker;
            this.nodeLifetime                = nodeLifetime;

            this.logger            = loggerFactory.CreateLogger(this.GetType().FullName);
            this.cancellation      = CancellationTokenSource.CreateLinkedTokenSource(new[] { nodeLifetime.ApplicationStopping });
            this.votingDataEncoder = new VotingDataEncoder();
            this.nodeSettings      = nodeSettings;

            this.miningStatistics = new MiningStatisticsModel();

            nodeStats.RegisterStats(this.AddComponentStats, StatsType.Component, this.GetType().Name);
        }
Ejemplo n.º 30
0
        /// <inheritdoc />
        public override void Initialize()
        {
            base.Initialize();

            PoAConsensusRuleEngine engine = this.Parent as PoAConsensusRuleEngine;

            this.slotsManager      = engine.SlotsManager;
            this.validator         = engine.PoaHeaderValidator;
            this.votingManager     = engine.VotingManager;
            this.federationManager = engine.FederationManager;
            this.chainState        = engine.ChainState;

            this.maxReorg      = this.Parent.Network.Consensus.MaxReorgLength;
            this.votingEnabled = ((PoAConsensusOptions)this.Parent.Network.Consensus.Options).VotingEnabled;
        }