Пример #1
0
        private void EnqueueBlock(IPeer peer, BlockWithTransactions blockWithTransactions)
        {
            try
            {
                var blockHash = blockWithTransactions.GetHash();

                if (peer.KnowsBlock(blockHash))
                {
                    return; // block already known to this peer
                }
                peer.EnqueueBlock(blockWithTransactions, async ex =>
                {
                    peer.TryAddKnownBlock(blockHash);

                    if (ex != null)
                    {
                        Logger.LogError(ex, $"Error while broadcasting block to {peer}.");
                        await HandleNetworkException(peer, ex);
                    }
                });
            }
            catch (NetworkException ex)
            {
                Logger.LogError(ex, $"Error while broadcasting block to {peer}.");
            }
        }
Пример #2
0
        private void EnqueueBlock(IPeer peer, BlockWithTransactions blockWithTransactions)
        {
            try
            {
                var blockHash = blockWithTransactions.GetHash();

                if (peer.KnowsBlock(blockHash))
                {
                    return; // block already known to this peer
                }
                peer.EnqueueBlock(blockWithTransactions, async ex =>
                {
                    peer.TryAddKnownBlock(blockHash);

                    if (ex != null)
                    {
                        Logger.LogWarning(ex, $"Could not broadcast block to {peer} - status {peer.ConnectionStatus}.");
                        await HandleNetworkException(peer, ex);
                    }
                });
            }
            catch (NetworkException ex)
            {
                Logger.LogWarning(ex, $"Could not enqueue block to {peer} - status {peer.ConnectionStatus}.");
            }
        }