Beispiel #1
0
        public void IsNotReachedDownloadTarget_Test()
        {
            var targetHash = HashHelper.ComputeFrom("TargetHash");

            _blockDownloadService.IsNotReachedDownloadTarget(targetHash).ShouldBeFalse();

            _blockSyncStateProvider.SetDownloadJobTargetState(targetHash, false);
            _blockDownloadService.IsNotReachedDownloadTarget(targetHash).ShouldBeTrue();

            _blockSyncStateProvider.SetDownloadJobTargetState(targetHash, true);
            _blockDownloadService.IsNotReachedDownloadTarget(targetHash).ShouldBeFalse();
        }
Beispiel #2
0
        private bool ValidateBeforeDownload(BlockDownloadJobInfo blockDownloadJobInfo)
        {
            if (blockDownloadJobInfo == null)
            {
                return(false);
            }

            if (!_blockDownloadService.ValidateQueueAvailabilityBeforeDownload())
            {
                return(false);
            }

            if (blockDownloadJobInfo.CurrentTargetBlockHash != null &&
                _blockDownloadService.IsNotReachedDownloadTarget(blockDownloadJobInfo.CurrentTargetBlockHash) &&
                TimestampHelper.GetUtcNow() < blockDownloadJobInfo.Deadline)
            {
                return(false);
            }

            return(true);
        }