Increase CoinJoinClient robustness
MODIFY
WalletWasabi/Tor/Socks5/Pool/TorHttpPool.cs
WalletWasabi/Tor/Socks5/Pool/TorHttpPool.cs
@@ -40,7 +40,7 @@ namespace WalletWasabi.Tor.Socks5.Pool
{
/// <summary>Maximum number of <see cref="TorTcpConnection"/>s per URI host.</summary>
/// <remarks>This parameter affects maximum parallelization for given URI host.</remarks>
- public const int MaxConnectionsPerHost = 10;
+ public const int MaxConnectionsPerHost = 100;
private bool _disposedValue;

MODIFY
WalletWasabi/WabiSabi/Client/CoinJoinClient.cs
WalletWasabi/WabiSabi/Client/CoinJoinClient.cs
@@ -69,17 +69,20 @@ namespace WalletWasabi.WabiSabi.Client
{
return true;
}
- else
- {
- var blameRoundState = await RoundStatusUpdater.CreateRoundAwaiter(roundState => roundState.BlameOf == currentRoundState.Id, cancellationToken).ConfigureAwait(false);
+
+ using CancellationTokenSource waitForBlameRound = new(TimeSpan.FromMinutes(5));
+ using CancellationTokenSource linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(waitForBlameRound.Token, cancellationToken);
+
+ var blameRoundState = await RoundStatusUpdater
+ .CreateRoundAwaiter(roundState => roundState.BlameOf == currentRoundState.Id && roundState.Phase == Phase.InputRegistration, linkedTokenSource.Token)
+ .ConfigureAwait(false);
currentRoundState = blameRoundState;
}
- }
return false;
}
- /// <summary>Attempt to participate in a specified dround.</summary>
+ /// <summary>Attempt to participate in a specified round.</summary>
/// <param name="roundState">Defines the round parameter and state information to use.</param>
/// <returns>Whether or not the round resulted in a successful transaction.</returns>
public async Task<bool> StartRoundAsync(IEnumerable<SmartCoin> smartCoins, RoundState roundState, CancellationToken cancellationToken)

Increase CoinJoinClient robustness