public async Task Cannot_Retrigger_Sync()
        {
            await _syncStateService.StartSyncAsync();

            await _syncStateService.UpdateSyncStateAsync();

            _syncStateService.SyncState.ShouldBe(SyncState.Finished);
        }
Ejemplo n.º 2
0
        public Task HandleEventAsync(BlockAcceptedEvent eventData)
        {
            if (_syncStateService.SyncState == SyncState.Finished)
            {
                // if sync is finished we announce the block
                _networkService.BroadcastAnnounceAsync(eventData.Block.Header);
            }
            else if (_syncStateService.SyncState == SyncState.Syncing)
            {
                // if syncing and the block is higher the current target, try and update.
                if (_syncStateService.GetCurrentSyncTarget() <= eventData.Block.Header.Height)
                {
                    _taskQueueManager.Enqueue(async() => { await _syncStateService.UpdateSyncStateAsync(); },
                                              OSConstants.InitialSyncQueueName);
                }
            }

            return(Task.CompletedTask);
        }