From f82f160c2c3247a83bab91af2b0fcafd91d579f9 Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Sun, 21 Dec 2014 14:03:13 +0100 Subject: [PATCH] PeerGroup: configure peer as download peer even when there is no chain, but don't configure download params as that would trigger block fetch. --- core/src/main/java/org/bitcoinj/core/PeerGroup.java | 13 +++---------- .../main/java/org/bitcoinj/tools/WatchMempool.java | 1 + 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/core/PeerGroup.java b/core/src/main/java/org/bitcoinj/core/PeerGroup.java index ba898048..db88f143 100644 --- a/core/src/main/java/org/bitcoinj/core/PeerGroup.java +++ b/core/src/main/java/org/bitcoinj/core/PeerGroup.java @@ -1251,7 +1251,6 @@ public class PeerGroup implements TransactionBroadcaster { // aren't relevant to our wallet. We may still receive some false positives, which is // OK because it helps improve wallet privacy. Old nodes will just ignore the message. if (bloomFilterMerger.getLastFilter() != null) peer.setBloomFilter(bloomFilterMerger.getLastFilter()); - // Link the peer to the memory pool so broadcast transactions have their confidence levels updated. peer.setDownloadData(false); // TODO: The peer should calculate the fast catchup time from the added wallets here. for (Wallet wallet : wallets) @@ -1320,15 +1319,8 @@ public class PeerGroup implements TransactionBroadcaster { private void setDownloadPeer(@Nullable Peer peer) { lock.lock(); try { - if (downloadPeer == peer) { + if (downloadPeer == peer) return; - } - if (chain == null) { - // PeerGroup creator did not want us to download any data. We still track the download peer for - // informational purposes. - downloadPeer = peer; - return; - } if (downloadPeer != null) { log.info("Unsetting download peer: {}", downloadPeer); if (downloadListener != null) @@ -1341,7 +1333,8 @@ public class PeerGroup implements TransactionBroadcaster { if (downloadListener != null) peer.addEventListener(downloadListener, Threading.SAME_THREAD); downloadPeer.setDownloadData(true); - downloadPeer.setDownloadParameters(fastCatchupTimeSecs, bloomFilterMerger.getLastFilter() != null); + if (chain != null) + downloadPeer.setDownloadParameters(fastCatchupTimeSecs, bloomFilterMerger.getLastFilter() != null); } } finally { lock.unlock(); diff --git a/tools/src/main/java/org/bitcoinj/tools/WatchMempool.java b/tools/src/main/java/org/bitcoinj/tools/WatchMempool.java index 9ae424a8..1e7c9351 100644 --- a/tools/src/main/java/org/bitcoinj/tools/WatchMempool.java +++ b/tools/src/main/java/org/bitcoinj/tools/WatchMempool.java @@ -36,6 +36,7 @@ public class WatchMempool { @Override public void onTransaction(Peer peer, Transaction tx) { try { + log.info("tx {}", tx.getHash()); if (tx.getOutputs().size() != 1) return; if (!tx.getOutput(0).getScriptPubKey().isSentToRawPubKey()) return; log.info("Saw raw pay to pubkey {}", tx);