Skip to content

Commit

Permalink
Renaming Trasanction in PoolItem for clarity.
Browse files Browse the repository at this point in the history
  • Loading branch information
jsolman committed Jan 18, 2019
1 parent 76fa6b6 commit 0ad4493
Showing 1 changed file with 28 additions and 28 deletions.
56 changes: 28 additions & 28 deletions neo/Ledger/MemoryPool.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,33 @@ public class MemoryPool : IReadOnlyCollection<Transaction>
{
private class PoolItem : IComparable<PoolItem>
{
public readonly Transaction Transaction;
public readonly Transaction Tx;
public readonly DateTime Timestamp;
public DateTime LastBroadcastTimestamp;

public PoolItem(Transaction tx)
{
Transaction = tx;
Tx = tx;
Timestamp = DateTime.UtcNow;
LastBroadcastTimestamp = Timestamp;
}

public int CompareTo(Transaction tx)
public int CompareTo(Transaction otherTx)
{
if (tx == null) return 1;
if (otherTx == null) return 1;
// Fees sorted ascending
int ret = Transaction.FeePerByte.CompareTo(tx.FeePerByte);
int ret = Tx.FeePerByte.CompareTo(otherTx.FeePerByte);
if (ret != 0) return ret;
ret = Transaction.NetworkFee.CompareTo(tx.NetworkFee);
ret = Tx.NetworkFee.CompareTo(otherTx.NetworkFee);
if (ret != 0) return ret;
// Transaction hash sorted descending
return tx.Hash.CompareTo(Transaction.Hash);
return otherTx.Hash.CompareTo(Tx.Hash);
}

public int CompareTo(PoolItem otherItem)
{
if (otherItem == null) return 1;
return CompareTo(otherItem.Transaction);
return CompareTo(otherItem.Tx);
}
}

Expand Down Expand Up @@ -180,7 +180,7 @@ public bool TryGetValue(UInt256 hash, out Transaction tx)
{
bool ret = _unsortedTransactions.TryGetValue(hash, out PoolItem item)
|| _unverifiedTransactions.TryGetValue(hash, out item);
tx = ret ? item.Transaction : null;
tx = ret ? item.Tx : null;
return ret;
}
finally
Expand All @@ -195,8 +195,8 @@ public IEnumerator<Transaction> GetEnumerator()
_txRwLock.EnterReadLock();
try
{
return _unsortedTransactions.Select(p => p.Value.Transaction)
.Concat(_unverifiedTransactions.Select(p => p.Value.Transaction))
return _unsortedTransactions.Select(p => p.Value.Tx)
.Concat(_unverifiedTransactions.Select(p => p.Value.Tx))
.ToList()
.GetEnumerator();
}
Expand All @@ -213,7 +213,7 @@ public IEnumerable<Transaction> GetVerifiedTransactions()
_txRwLock.EnterReadLock();
try
{
return _unsortedTransactions.Select(p => p.Value.Transaction).ToArray();
return _unsortedTransactions.Select(p => p.Value.Tx).ToArray();
}
finally
{
Expand All @@ -227,10 +227,10 @@ public void GetVerifiedAndUnverifiedTransactions(out IEnumerable<Transaction> ve
_txRwLock.EnterReadLock();
try
{
verifiedTransactions = _sortedHighPrioTransactions.Reverse().Select(p => p.Transaction)
.Concat(_sortedLowPrioTransactions.Reverse().Select(p => p.Transaction)).ToArray();
unverifiedTransactions = _unverifiedSortedHighPriorityTransactions.Reverse().Select(p => p.Transaction)
.Concat(_unverifiedSortedLowPriorityTransactions.Reverse().Select(p => p.Transaction)).ToArray();
verifiedTransactions = _sortedHighPrioTransactions.Reverse().Select(p => p.Tx)
.Concat(_sortedLowPrioTransactions.Reverse().Select(p => p.Tx)).ToArray();
unverifiedTransactions = _unverifiedSortedHighPriorityTransactions.Reverse().Select(p => p.Tx)
.Concat(_unverifiedSortedLowPriorityTransactions.Reverse().Select(p => p.Tx)).ToArray();
}
finally
{
Expand All @@ -243,8 +243,8 @@ public IEnumerable<Transaction> GetSortedVerifiedTransactions()
_txRwLock.EnterReadLock();
try
{
return _sortedHighPrioTransactions.Reverse().Select(p => p.Transaction)
.Concat(_sortedLowPrioTransactions.Reverse().Select(p => p.Transaction))
return _sortedHighPrioTransactions.Reverse().Select(p => p.Tx)
.Concat(_sortedLowPrioTransactions.Reverse().Select(p => p.Tx))
.ToArray();
}
finally
Expand Down Expand Up @@ -341,7 +341,7 @@ private void RemoveOverCapacity()
{
PoolItem minItem = GetLowestFeeTransaction(out var unsortedPool, out var sortedPool);

unsortedPool.Remove(minItem.Transaction.Hash);
unsortedPool.Remove(minItem.Tx.Hash);
sortedPool.Remove(minItem);
}
}
Expand All @@ -353,7 +353,7 @@ private bool TryRemoveVerified(UInt256 hash, out PoolItem item)
return false;

_unsortedTransactions.Remove(hash);
SortedSet<PoolItem> pool = item.Transaction.IsLowPriority
SortedSet<PoolItem> pool = item.Tx.IsLowPriority
? _sortedLowPrioTransactions : _sortedHighPrioTransactions;
pool.Remove(item);
return true;
Expand All @@ -366,7 +366,7 @@ private bool TryRemoveUnVerified(UInt256 hash, out PoolItem item)
return false;

_unverifiedTransactions.Remove(hash);
SortedSet<PoolItem> pool = item.Transaction.IsLowPriority
SortedSet<PoolItem> pool = item.Tx.IsLowPriority
? _unverifiedSortedLowPriorityTransactions : _unverifiedSortedHighPriorityTransactions;
pool.Remove(item);
return true;
Expand All @@ -388,13 +388,13 @@ internal void UpdatePoolForBlockPersisted(Block block, Snapshot snapshot)
// Add all the previously verified transactions back to the unverified transactions
foreach (PoolItem item in _sortedHighPrioTransactions)
{
if (_unverifiedTransactions.TryAdd(item.Transaction.Hash, item))
if (_unverifiedTransactions.TryAdd(item.Tx.Hash, item))
_unverifiedSortedHighPriorityTransactions.Add(item);
}

foreach (PoolItem item in _sortedLowPrioTransactions)
{
if (_unverifiedTransactions.TryAdd(item.Transaction.Hash, item))
if (_unverifiedTransactions.TryAdd(item.Tx.Hash, item))
_unverifiedSortedLowPriorityTransactions.Add(item);
}

Expand Down Expand Up @@ -435,7 +435,7 @@ private int ReverifyTransactions(SortedSet<PoolItem> verifiedSortedTxPool,
// Since unverifiedSortedTxPool is ordered in an ascending manner, we take from the end.
foreach (PoolItem item in unverifiedSortedTxPool.Reverse().Take(count))
{
if (item.Transaction.Verify(snapshot, _unsortedTransactions.Select(p => p.Value.Transaction)))
if (item.Tx.Verify(snapshot, _unsortedTransactions.Select(p => p.Value.Tx)))
reverifiedItems.Add(item);
else // Transaction no longer valid -- it will be removed from unverifiedTxPool.
invalidItems.Add(item);
Expand All @@ -456,24 +456,24 @@ private int ReverifyTransactions(SortedSet<PoolItem> verifiedSortedTxPool,
-Blockchain.SecondsPerBlock * blocksTillRebroadcast);
foreach (PoolItem item in reverifiedItems)
{
if (_unsortedTransactions.TryAdd(item.Transaction.Hash, item))
if (_unsortedTransactions.TryAdd(item.Tx.Hash, item))
{
verifiedSortedTxPool.Add(item);

if (item.LastBroadcastTimestamp < rebroadcastCutOffTime)
{
_system.LocalNode.Tell(new LocalNode.RelayDirectly { Inventory = item.Transaction }, _system.Blockchain);
_system.LocalNode.Tell(new LocalNode.RelayDirectly { Inventory = item.Tx }, _system.Blockchain);
item.LastBroadcastTimestamp = DateTime.UtcNow;
}
}

_unverifiedTransactions.Remove(item.Transaction.Hash);
_unverifiedTransactions.Remove(item.Tx.Hash);
unverifiedSortedTxPool.Remove(item);
}

foreach (PoolItem item in invalidItems)
{
_unverifiedTransactions.Remove(item.Transaction.Hash);
_unverifiedTransactions.Remove(item.Tx.Hash);
unverifiedSortedTxPool.Remove(item);
}
}
Expand Down

0 comments on commit 0ad4493

Please sign in to comment.