private void ProcessStateBlocks(CancellationToken ct) { foreach (RegistryRegisterBlock transactionRegisterBlock in _registryStateBlocks.GetConsumingEnumerable(ct)) { //TODO: add logic that will check whether received Transaction Header was already stored into blockchain bool isNew = _registryMemPool.EnqueueTransactionWitness(transactionRegisterBlock); if (isNew) { IPacketProvider packetProvider = _rawPacketProvidersFactory.Create(transactionRegisterBlock); _udpCommunicationService.PostMessage(_registryGroupState.GetAllNeighbors(), packetProvider); } } }
private void DistributeAndSaveFullBlock(RegistryFullBlock transactionsFullBlockMostConfident) { IRawPacketProvider fullBlockSerializer = _rawPacketProvidersFactory.Create(transactionsFullBlockMostConfident); IEnumerable <IKey> storageLayerKeys = _nodesResolutionService.GetStorageNodeKeys(fullBlockSerializer); _communicationService.PostMessage(storageLayerKeys, fullBlockSerializer); _registryChainDataService.Add(transactionsFullBlockMostConfident); }
private void DistributeAndSaveFullBlock(IEnumerable <RegistryFullBlock> registryFullBlocks) { if (registryFullBlocks != null) { foreach (var registryFullBlock in registryFullBlocks) { IRawPacketProvider fullBlockSerializer = _rawPacketProvidersFactory.Create(registryFullBlock); IEnumerable <IKey> storageLayerKeys = _nodesResolutionService.GetStorageNodeKeys(fullBlockSerializer); _communicationService.PostMessage(storageLayerKeys, fullBlockSerializer); _registryChainDataService.Add(registryFullBlock); } } }
private void ProcessBlocks(CancellationToken ct) { foreach (SynchronizationConfirmedBlock synchronizationBlock in _synchronizationBlocks.GetConsumingEnumerable(ct)) { if ((_synchronizationContext.LastBlockDescriptor?.BlockHeight ?? 0) >= synchronizationBlock.BlockHeight) { continue; } _synchronizationContext.UpdateLastSyncBlockDescriptor(new SynchronizationDescriptor(synchronizationBlock.BlockHeight, _hashCalculation.CalculateHash(synchronizationBlock.RawData), synchronizationBlock.ReportedTime, DateTime.Now, synchronizationBlock.Round)); _chainDataService.Add(synchronizationBlock); IPacketProvider packetProvider = _rawPacketProvidersFactory.Create(synchronizationBlock); _communicationService.PostMessage(_neighborhoodState.GetAllNeighbors(), packetProvider); } }
private void ProcessBlocks(CancellationToken ct) { foreach (ITransactionRegistryBlock transactionRegisterBlock in _registrationBlocks.GetConsumingEnumerable(ct)) { if (_timer == null) { _timer = new Timer(new TimerCallback(TimerElapsed), _registryMemPool, 120000, Timeout.Infinite); } //TODO: add logic that will check whether received Transaction Header was already stored into blockchain bool isNew = _registryMemPool.EnqueueTransactionRegisterBlock(transactionRegisterBlock); if (isNew) { IPacketProvider packetProvider = _rawPacketProvidersFactory.Create(transactionRegisterBlock); _udpCommunicationService.PostMessage(_registryGroupState.GetAllNeighbors(), packetProvider); } } }