Switch to using DNS for testnet discovery, as LFnet has gone away.

Put DNS seeds into NetworkParams.
Deprecate IrcDiscovery and remove the unit tests for it.
Update examples and tools to use DNS for everything.
Resolves issue 299.
This commit is contained in:
Mike Hearn
2013-03-29 17:38:17 +00:00
parent 41ce887652
commit 3d6691c82a
9 changed files with 41 additions and 113 deletions

View File

@@ -19,7 +19,6 @@ package com.google.bitcoin.examples;
import com.google.bitcoin.core.*;
import com.google.bitcoin.crypto.KeyCrypterException;
import com.google.bitcoin.discovery.DnsDiscovery;
import com.google.bitcoin.discovery.IrcDiscovery;
import com.google.bitcoin.store.BlockStore;
import com.google.bitcoin.store.SPVBlockStore;
import com.google.bitcoin.utils.BriefLogFormatter;
@@ -101,11 +100,7 @@ public class PingService {
chain = new BlockChain(params, wallet, blockStore);
peerGroup = new PeerGroup(params, chain);
peerGroup.setUserAgent("PingService", "1.0");
if (testNet) {
peerGroup.addPeerDiscovery(new IrcDiscovery("#bitcoinTEST3"));
} else {
peerGroup.addPeerDiscovery(new DnsDiscovery(params));
}
peerGroup.addPeerDiscovery(new DnsDiscovery(params));
peerGroup.addWallet(wallet);
// We want to know when the balance changes.

View File

@@ -20,7 +20,6 @@ import com.google.bitcoin.core.NetworkParameters;
import com.google.bitcoin.core.TCPNetworkConnection;
import com.google.bitcoin.core.VersionMessage;
import com.google.bitcoin.discovery.DnsDiscovery;
import com.google.bitcoin.discovery.IrcDiscovery;
import com.google.bitcoin.discovery.PeerDiscoveryException;
import com.google.bitcoin.utils.BriefLogFormatter;
import com.google.common.collect.Lists;
@@ -35,10 +34,10 @@ import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* Prints a list of IP addresses connected to the rendezvous point on the LFnet IRC channel.
* Prints a list of IP addresses obtained from DNS.
*/
public class PrintPeers {
private static InetSocketAddress[] dnsPeers, ircPeers;
private static InetSocketAddress[] dnsPeers;
private static void printElapsed(long start) {
long now = System.currentTimeMillis();
@@ -48,28 +47,10 @@ public class PrintPeers {
private static void printPeers(InetSocketAddress[] addresses) {
for (InetSocketAddress address : addresses) {
String hostAddress = address.getAddress().getHostAddress();
System.out.println(String.format("%s:%d", hostAddress.toString(), address.getPort()));
System.out.println(String.format("%s:%d", hostAddress, address.getPort()));
}
}
private static void printIRC() throws PeerDiscoveryException {
long start = System.currentTimeMillis();
IrcDiscovery d = new IrcDiscovery("#bitcoinTEST3") {
@Override
protected void onIRCReceive(String message) {
System.out.println("<- " + message);
}
@Override
protected void onIRCSend(String message) {
System.out.println("-> " + message);
}
};
ircPeers = d.getPeers(10, TimeUnit.SECONDS);
printPeers(ircPeers);
printElapsed(start);
}
private static void printDNS() throws PeerDiscoveryException {
long start = System.currentTimeMillis();
DnsDiscovery dns = new DnsDiscovery(NetworkParameters.prodNet());
@@ -80,15 +61,12 @@ public class PrintPeers {
public static void main(String[] args) throws Exception {
BriefLogFormatter.init();
System.out.println("=== IRC ===");
printIRC();
System.out.println("=== DNS ===");
printDNS();
System.out.println("=== Version/chain heights ===");
ArrayList<InetAddress> addrs = new ArrayList<InetAddress>();
for (InetSocketAddress peer : dnsPeers) addrs.add(peer.getAddress());
for (InetSocketAddress peer : ircPeers) addrs.add(peer.getAddress());
System.out.println("Scanning " + addrs.size() + " peers:");
final NetworkParameters params = NetworkParameters.prodNet();

View File

@@ -18,8 +18,6 @@ package com.google.bitcoin.examples.toywallet;
import com.google.bitcoin.core.*;
import com.google.bitcoin.discovery.DnsDiscovery;
import com.google.bitcoin.discovery.IrcDiscovery;
import com.google.bitcoin.store.BoundedOverheadBlockStore;
import com.google.bitcoin.store.H2FullPrunedBlockStore;
import com.google.bitcoin.store.SPVBlockStore;
import com.google.bitcoin.utils.BriefLogFormatter;
@@ -174,11 +172,7 @@ public class ToyWallet {
peerGroup = new PeerGroup(params, chain);
peerGroup.setUserAgent("ToyWallet", "1.0");
if (testnet) {
peerGroup.addPeerDiscovery(new IrcDiscovery("#bitcoinTEST3"));
} else {
peerGroup.addPeerDiscovery(new DnsDiscovery(params));
}
peerGroup.addPeerDiscovery(new DnsDiscovery(params));
peerGroup.addWallet(wallet);
// Watch for peers coming and going so we can update the UI.