Skip to content

Commit

Permalink
Only resnapshot on change
Browse files Browse the repository at this point in the history
  • Loading branch information
benaadams committed Mar 15, 2023
1 parent a662f4d commit 30dc500
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/Nethermind/Nethermind.TxPool/TxPool.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ public class TxPool : ITxPool, IDisposable
private ulong _txIndex;

private readonly ITimer? _timer;
private Transaction[]? _transactionSnapshot;

/// <summary>
/// This class stores all known pending transactions that can be used for block production
Expand Down Expand Up @@ -159,6 +160,8 @@ private void OnHeadChange(object? sender, BlockReplacementEventArgs e)
{
_hashCache.ClearCurrentBlockCache();
_accounts.ClearCache();
// Clear snapshot
_transactionSnapshot = null;
_headBlocksChannel.Writer.TryWrite(e);
}
catch (Exception exception)
Expand Down Expand Up @@ -263,7 +266,7 @@ public void AddPeer(ITxPoolPeer peer)
PeerInfo peerInfo = new(peer);
if (_broadcaster.AddPeer(peerInfo))
{
_broadcaster.BroadcastOnce(peerInfo, _transactions.GetSnapshot());
_broadcaster.BroadcastOnce(peerInfo, _transactionSnapshot ??= _transactions.GetSnapshot());

if (_logger.IsTrace) _logger.Trace($"Added a peer to TX pool: {peer}");
}
Expand Down Expand Up @@ -306,6 +309,11 @@ public AcceptTxResult SubmitTx(Transaction tx, TxHandlingOptions handlingOptions
else
{
accepted = AddCore(tx, state, startBroadcast);
if (accepted)
{
// Clear snapshot
_transactionSnapshot = null;
}
}

TxFilteringState.Return(state);
Expand Down

0 comments on commit 30dc500

Please sign in to comment.