示例#1
0
 public BlockVerifier(INetworkParameters parameters, ISignatureService signatureService, IEnumerable <ITransactionRule> txnRules, IEnumerable <IBlockRule> blockRules, IEnumerable <ValidInstructionType> validTxnTypes, IMerkleTreeBuilder merkleTreeBuilder, ITransactionKeyResolver transactionKeyResolver, IConsensusMethod consensusMethod, IHasher hasher, IInstructionRepository instructionRepository)
 {
     _parameters             = parameters;
     _signatureService       = signatureService;
     _txnRules               = txnRules;
     _blockRules             = blockRules;
     _merkleTreeBuilder      = merkleTreeBuilder;
     _transactionKeyResolver = transactionKeyResolver;
     _consensusMethod        = consensusMethod;
     _hasher = hasher;
     _instructionRepository = instructionRepository;
 }
示例#2
0
 public BlockMiner(ITransactionKeyResolver transactionKeyResolver, IMerkleTreeBuilder merkleTreeBuilder, INetworkParameters networkParameters, IBlockbaseTransactionBuilder blockbaseBuilder, IPeerNetwork peerNetwork, IConsensusMethod consensusMethod, IUnconfirmedTransactionPool unconfirmedTransactionPool, IBlockRepository blockRepository, IReceiver blockReciever, IDifficultyCalculator difficultyCalculator, ILoggerFactory loggerFactory)
 {
     _networkParameters      = networkParameters;
     _peerNetwork            = peerNetwork;
     _blockbaseBuilder       = blockbaseBuilder;
     _blockReciever          = blockReciever;
     _consensusMethod        = consensusMethod;
     _difficultyCalculator   = difficultyCalculator;
     _transactionKeyResolver = transactionKeyResolver;
     _merkleTreeBuilder      = merkleTreeBuilder;
     _logger                              = loggerFactory.CreateLogger <BlockMiner>();
     _blockRepository                     = blockRepository;
     _unconfirmedTransactionPool          = unconfirmedTransactionPool;
     _unconfirmedTransactionPool.Changed += UnconfirmedTransactionPoolChanged;
 }
        public BlockchainNodeTests()
        {
            _receiver   = A.Fake <IReceiver>();
            _parameters = new StaticNetworkParameters()
            {
                BlockTime = TimeSpan.FromSeconds(1)
            };
            _loggerFactory              = A.Fake <ILoggerFactory>();
            _blockRepository            = A.Fake <IBlockRepository>();
            _blockVerifier              = A.Fake <IBlockVerifier>();
            _forkRebaser                = A.Fake <IForkRebaser>();
            _peerNetwork                = A.Fake <IPeerNetwork>();
            _unconfirmedTransactionPool = A.Fake <IUnconfirmedTransactionPool>();
            _difficultyCalculator       = A.Fake <IDifficultyCalculator>();

            _subject = new BlockchainNode(_blockRepository, _blockVerifier, _receiver, _loggerFactory, _forkRebaser, _parameters, _unconfirmedTransactionPool, _peerNetwork, _difficultyCalculator);
            _subject.PollTimer.Dispose();
        }
示例#4
0
        public BlockchainNode(IBlockRepository blockRepository, IBlockVerifier blockVerifier, IReceiver receiver, ILoggerFactory loggerFactory, IForkRebaser forkRebaser, INetworkParameters parameters, IUnconfirmedTransactionPool unconfirmedTransactionPool, IPeerNetwork peerNetwork, IDifficultyCalculator difficultyCalculator)
        {
            _blockRepository            = blockRepository;
            _blockVerifier              = blockVerifier;
            _receiver                   = receiver;
            _parameters                 = parameters;
            _forkRebaser                = forkRebaser;
            _unconfirmedTransactionPool = unconfirmedTransactionPool;
            _peerNetwork                = peerNetwork;
            _difficultyCalculator       = difficultyCalculator;
            //_expectedBlockList = expectedBlockList;
            _logger = loggerFactory.CreateLogger <BlockchainNode>();

            _receiver.OnReceiveBlock       += RecieveBlock;
            _receiver.OnRecieveTransaction += RecieveTransaction;

            PollTimer = new Timer(GetMissingBlocks, null, TimeSpan.FromSeconds(5), _parameters.BlockTime);
        }
示例#5
0
 public ProofOfWorkConsensus(IHasher hasher, INetworkParameters networkParameters, IHashTester hashTester)
 {
     _hasher            = hasher;
     _networkParameters = networkParameters;
     _hashTester        = hashTester;
 }
示例#6
0
 public void UseParameters(INetworkParameters parameters)
 {
     Services.AddSingleton <INetworkParameters>(parameters);
 }
示例#7
0
 public ExpectedBlockList(INetworkParameters parameters)
 {
     _parameters = parameters;
     _timer      = new Timer(ExpireUnconfirmed, null, _parameters.BlockTime, _parameters.BlockTime);
 }
 public DifficultyCalculator(IBlockRepository blockRepository, INetworkParameters parameters)
 {
     _blockRepository = blockRepository;
     _parameters      = parameters;
 }