From 5a1536df3b7be28652562157465180fe0ef61211 Mon Sep 17 00:00:00 2001 From: Sean Gilligan Date: Thu, 28 Jul 2022 16:17:01 -0700 Subject: [PATCH] TransactionBroadcast: rename private `future` to `seenFuture`, add comments --- .../org/bitcoinj/core/TransactionBroadcast.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/core/TransactionBroadcast.java b/core/src/main/java/org/bitcoinj/core/TransactionBroadcast.java index 35be675ef..420c43fdf 100644 --- a/core/src/main/java/org/bitcoinj/core/TransactionBroadcast.java +++ b/core/src/main/java/org/bitcoinj/core/TransactionBroadcast.java @@ -49,7 +49,8 @@ import static com.google.common.base.Preconditions.checkState; public class TransactionBroadcast { private static final Logger log = LoggerFactory.getLogger(TransactionBroadcast.class); - private final CompletableFuture future = new ListenableCompletableFuture<>(); + // This future completes when we have verified that more than numWaitingFor Peers have seen the broadcast + private final CompletableFuture seenFuture = new ListenableCompletableFuture<>(); private final PeerGroup peerGroup; private final Transaction tx; private int minConnections; @@ -94,8 +95,11 @@ public class TransactionBroadcast { }; } + /** + * @return future that completes when some number of remote peers has rebroadcast the transaction + */ public ListenableCompletableFuture future() { - return ListenableCompletableFuture.of(future); + return ListenableCompletableFuture.of(seenFuture); } public void setMinConnections(int minConnections) { @@ -117,7 +121,7 @@ public class TransactionBroadcast { long threshold = Math.round(numWaitingFor / 2.0); if (size > threshold) { log.warn("Threshold for considering broadcast rejected has been reached ({}/{})", size, threshold); - future.completeExceptionally(new RejectedTransactionException(tx, rejectMessage)); + seenFuture.completeExceptionally(new RejectedTransactionException(tx, rejectMessage)); peerGroup.removePreMessageReceivedEventListener(this); } } @@ -175,7 +179,7 @@ public class TransactionBroadcast { } } }, Threading.SAME_THREAD); - return ListenableCompletableFuture.of(future); + return ListenableCompletableFuture.of(seenFuture); } /** @@ -222,7 +226,7 @@ public class TransactionBroadcast { log.info("broadcastTransaction: {} complete", tx.getTxId()); peerGroup.removePreMessageReceivedEventListener(rejectionListener); conf.removeEventListener(this); - future.complete(tx); // RE-ENTRANCY POINT + seenFuture.complete(tx); // RE-ENTRANCY POINT } } }