Пример #1
0
        private void MineTransactions()
        {
            var enqueueTime = DateTime.UtcNow;

            _queue.EnqueueTask(token => new Task(() =>
            {
                var transactions = _transactionStorage.PendingTransactions.Values
                                   .OrderBy(t => t.TransactionMessage != null ? 0 : 1).ThenByDescending(t => t.Fee)
                                   .Take(BlockchainNodeConfiguration.BlockSize).ToList();
                transactions.ForEach(t => _transactionStorage.PendingTransactions.TryRemove(t.Id, out _));
                _miningService.MineBlock(transactions.ToHashSet(), enqueueTime, token);
            }, token));
        }