Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
        public void Init()
        {
            _blockChainPath      = Configurations.CurrentPath + "\\BlockChain\\";
            _blockChainFullPath  = $"{_blockChainPath}\\Chain\\";
            _blockInfoDbFullPath = _blockChainPath + "\\Data\\BlockInfo.sqlite";

            _logger = Services.GetService <ILogger>();
            _transactionVerifier = Services.GetService <ITransactionVerifier>();
            _blockVerifier       = Services.GetService <IBlockVerifier>();
            _server       = Services.GetService <IP2PServer>();
            _eventManager = Services.GetService <IEventManager>();
            _eventManager.RegisterEventListener(OnNewBlock, EventTypes.EventType.NewBlock);
            _mappingService = Services.GetService <IMappingService>();
            _minerService   = Services.GetService <IMinerService>();
            _walletService  = Services.GetService <IWalletService>();

            TryConnectToBlockInfoDb();
            TryLoadSavedInfo();
            _askedForRequests = new List <InvitationRequest>();
        }