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(); }
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); }
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>(); }