Exemple #1
0
        public PollResultExecutor(IFederationManager federationManager, ILoggerFactory loggerFactory, IWhitelistedHashesRepository whitelistedHashesRepository, Network network)
        {
            this.federationManager           = federationManager;
            this.whitelistedHashesRepository = whitelistedHashesRepository;
            this.consensusFactory            = network.Consensus.ConsensusFactory as PoAConsensusFactory;

            this.logger = loggerFactory.CreateLogger(this.GetType().FullName);
        }
        public PollResultExecutor(IFederationManager federationManager, ILoggerFactory loggerFactory, IWhitelistedHashesRepository whitelistedHashesRepository, Network network)
        {
            this.federationManager           = federationManager;
            this.whitelistedHashesRepository = whitelistedHashesRepository;
            this.consensusFactory            = network.Consensus.ConsensusFactory as PoAConsensusFactory;

            this.logger = loggerFactory.CreateLogger("Impleum.Bitcoin.Fullnode");
        }
Exemple #3
0
        public IdleFederationMembersKicker(Network network, IKeyValueRepository keyValueRepository, IConsensusManager consensusManager, IAsyncProvider asyncProvider,
                                           IFederationManager federationManager, VotingManager votingManager, IFederationHistory federationHistory, ILoggerFactory loggerFactory)
        {
            this.network           = network;
            this.votingManager     = votingManager;
            this.federationHistory = federationHistory;

            this.consensusFactory = this.network.Consensus.ConsensusFactory as PoAConsensusFactory;
            this.logger           = loggerFactory.CreateLogger(this.GetType().FullName);
            this.federationMemberMaxIdleTimeSeconds = ((PoAConsensusOptions)network.Consensus.Options).FederationMemberMaxIdleTimeSeconds;
            this.lockObject = new object();
        }
Exemple #4
0
        public IdleFederationMembersKicker(ISignals signals, Network network, IKeyValueRepository keyValueRepository, IConsensusManager consensusManager,
                                           IFederationManager federationManager, VotingManager votingManager, IFederationHistory federationHistory, ILoggerFactory loggerFactory)
        {
            this.signals            = signals;
            this.network            = network;
            this.keyValueRepository = keyValueRepository;
            this.consensusManager   = consensusManager;
            this.federationManager  = federationManager;
            this.votingManager      = votingManager;
            this.federationHistory  = federationHistory;

            this.consensusFactory = this.network.Consensus.ConsensusFactory as PoAConsensusFactory;
            this.logger           = loggerFactory.CreateLogger(this.GetType().FullName);
            this.federationMemberMaxIdleTimeSeconds = ((PoAConsensusOptions)network.Consensus.Options).FederationMemberMaxIdleTimeSeconds;
        }
        /// <inheritdoc />
        public override void Initialize()
        {
            base.Initialize();

            var 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.consensusFactory  = (PoAConsensusFactory)this.Parent.Network.Consensus.ConsensusFactory;

            this.maxReorg      = this.Parent.Network.Consensus.MaxReorgLength;
            this.votingEnabled = ((PoAConsensusOptions)this.Parent.Network.Consensus.Options).VotingEnabled;
        }
        public IdleFederationMembersKicker(ISignals signals, Network network, IKeyValueRepository keyValueRepository, IConsensusManager consensusManager,
                                           IFederationManager federationManager, ISlotsManager slotsManager, VotingManager votingManager, ILoggerFactory loggerFactory, IDateTimeProvider timeProvider)
        {
            this.signals            = signals;
            this.network            = network;
            this.keyValueRepository = keyValueRepository;
            this.consensusManager   = consensusManager;
            this.federationManager  = federationManager;
            this.slotsManager       = slotsManager;
            this.votingManager      = votingManager;
            this.timeProvider       = timeProvider;

            this.consensusFactory = this.network.Consensus.ConsensusFactory as PoAConsensusFactory;
            this.logger           = loggerFactory.CreateLogger("Impleum.Bitcoin.Fullnode");
            this.federationMemberMaxIdleTimeSeconds = ((PoAConsensusOptions)network.Consensus.Options).FederationMemberMaxIdleTimeSeconds;
        }
Exemple #7
0
        public void CanSerializeAndDeserialize()
        {
            var factory = new PoAConsensusFactory();

            var headers = new List <PoABlockHeader>()
            {
                new PoABlockHeader()
                {
                    Version = 1
                },
                new PoABlockHeader()
                {
                    Version = 2
                },
                new PoABlockHeader()
                {
                    Version = 3
                }
            };

            var payload = new PoAHeadersPayload(headers);

            // Serialize.
            var memoryStream           = new MemoryStream();
            var bitcoinSerializeStream = new BitcoinStream(memoryStream, true)
            {
                ConsensusFactory = factory
            };

            payload.ReadWriteCore(bitcoinSerializeStream);

            // Deserialize.
            memoryStream.Seek(0, SeekOrigin.Begin);
            var bitcoinDeserializeStream = new BitcoinStream(memoryStream, false)
            {
                ConsensusFactory = factory
            };

            var deserializedPayload = new PoAHeadersPayload();

            deserializedPayload.ReadWriteCore(bitcoinDeserializeStream);

            Assert.Equal(payload.Headers.Count, deserializedPayload.Headers.Count);
        }