peer discovery fixes
This commit is contained in:
parent
b70315532e
commit
e9bbc95ee5
|
@ -210,7 +210,7 @@ public class P2pHandler extends SimpleChannelInboundHandler<P2pMessage> {
|
|||
InetAddress address = ((InetSocketAddress) ctx.channel().remoteAddress()).getAddress();
|
||||
int port = msg.getListenPort();
|
||||
PeerInfo confirmedPeer = new PeerInfo(address, port, msg.getPeerId());
|
||||
confirmedPeer.setOnline(true);
|
||||
confirmedPeer.setOnline(false);
|
||||
confirmedPeer.getCapabilities().addAll(msg.getCapabilities());
|
||||
|
||||
//todo calculate the Offsets
|
||||
|
|
|
@ -49,7 +49,7 @@ public class PeerDiscovery {
|
|||
|
||||
// Initialize PeerData
|
||||
List<PeerInfo> peerDataList = parsePeerDiscoveryIpList(CONFIG.peerDiscoveryIPList());
|
||||
peers.addAll(peerDataList);
|
||||
addPeers(peerDataList);
|
||||
|
||||
for (PeerInfo peerData : this.peers) {
|
||||
executorPool.execute(new WorkerThread(peerData, executorPool));
|
||||
|
@ -91,6 +91,13 @@ public class PeerDiscovery {
|
|||
}
|
||||
}
|
||||
|
||||
public void addPeers(Collection<PeerInfo> newPeers) {
|
||||
synchronized (peers) {
|
||||
peers.addAll(newPeers);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void startWorker(PeerInfo peer) {
|
||||
logger.debug("Add new peer for discovery: {}", peer);
|
||||
executorPool.execute(new WorkerThread(peer, executorPool));
|
||||
|
|
|
@ -86,14 +86,16 @@ public class PeerInfo {
|
|||
public boolean equals(Object obj) {
|
||||
if (obj == null) return false;
|
||||
PeerInfo peerData = (PeerInfo) obj;
|
||||
return peerData.peerId.equals(this.peerId)
|
||||
|| this.getAddress().equals(peerData.getAddress());
|
||||
return peerData.hashCode() == this.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return -1; // override for equals function
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = address.hashCode();
|
||||
result = 31 * result + port;
|
||||
return result;
|
||||
}
|
||||
|
||||
public HelloMessage getHandshakeHelloMessage() {
|
||||
return handshakeHelloMessage;
|
||||
|
|
|
@ -17,6 +17,7 @@ public class WorkerThread implements Runnable {
|
|||
private PeerInfo peerInfo;
|
||||
private PeerClient clientPeer;
|
||||
private ThreadPoolExecutor poolExecutor;
|
||||
private boolean running = true;
|
||||
|
||||
public WorkerThread(PeerInfo peer, ThreadPoolExecutor poolExecutor) {
|
||||
this.peerInfo = peer;
|
||||
|
@ -26,7 +27,7 @@ public class WorkerThread implements Runnable {
|
|||
@Override
|
||||
public void run() {
|
||||
logger.debug("{} start", Thread.currentThread().getName());
|
||||
processCommand();
|
||||
processCommand();
|
||||
logger.debug("{} end", Thread.currentThread().getName());
|
||||
|
||||
poolExecutor.execute(this);
|
||||
|
@ -44,6 +45,7 @@ public class WorkerThread implements Runnable {
|
|||
|
||||
logger.info("Peer is online: [{}] ", peerInfo);
|
||||
|
||||
|
||||
} catch (Throwable e) {
|
||||
if (peerInfo.isOnline())
|
||||
logger.info("Peer: [{}] went offline, due to: [{}]", peerInfo
|
||||
|
|
|
@ -25,9 +25,10 @@ log4j.logger.block = ERROR
|
|||
log4j.logger.blockqueue = TRACE
|
||||
log4j.logger.wallet = ERROR
|
||||
log4j.logger.general = DEBUG
|
||||
log4j.logger.net = TRACE
|
||||
log4j.logger.net = ERROR
|
||||
log4j.logger.db = ERROR
|
||||
log4j.logger.peerdiscovery = TRACE
|
||||
log4j.logger.peerdiscovery = ERROR
|
||||
log4j.logger.peermonitor = ERROR
|
||||
log4j.logger.java.nio = ERROR
|
||||
log4j.logger.io.netty = ERROR
|
||||
log4j.logger.wire = ERROR
|
||||
|
|
|
@ -45,11 +45,11 @@ peer.discovery = true
|
|||
# number of workers that
|
||||
# tastes the peers for being
|
||||
# online [1..10]
|
||||
peer.discovery.workers = 10
|
||||
peer.discovery.workers = 4
|
||||
|
||||
# connection timeout for trying to
|
||||
# connect to a peer [seconds]
|
||||
peer.connection.timeout = 10
|
||||
peer.connection.timeout = 2
|
||||
|
||||
# the time we wait to the network
|
||||
# to approve the transaction, the
|
||||
|
@ -72,7 +72,7 @@ samples.dir = samples
|
|||
# the existing database will be
|
||||
# destroyed and all the data will be
|
||||
# downloaded from peers again
|
||||
database.reset = true
|
||||
database.reset = false
|
||||
|
||||
# place to save physical storage files
|
||||
database.dir = database
|
||||
|
|
|
@ -71,11 +71,9 @@
|
|||
<dependency>
|
||||
<groupId>org.ethereum</groupId>
|
||||
<artifactId>ethereumj</artifactId>
|
||||
<version>0.7.2.20141024.1409</version>
|
||||
<type>jar</type>
|
||||
<version>0.7.2.20141024.2310</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.maxmind.geoip</groupId>
|
||||
<artifactId>geoip-api</artifactId>
|
||||
|
|
|
@ -27,7 +27,7 @@ log4j.logger.net = ERROR
|
|||
log4j.logger.wire = ERROR
|
||||
log4j.logger.db = ERROR
|
||||
log4j.logger.peerdiscovery = TRACE
|
||||
log4j.logger.peermonitor = ERROR
|
||||
log4j.logger.peermonitor = TRACE
|
||||
log4j.logger.java.nio = ERROR
|
||||
log4j.logger.io.netty = ERROR
|
||||
log4j.logger.VM = ERROR
|
||||
|
|
|
@ -6,7 +6,7 @@ server.acceptConnections = false
|
|||
# the search of the online peers
|
||||
# values: [ip:port, ip:port, ip:port ...]
|
||||
peer.discovery.ip.list = poc-7.ethdev.com:30303,\
|
||||
54.204.10.41:30303
|
||||
185.43.109.23:30303
|
||||
|
||||
# Peer Server Zero (poc-7.ethdev.com)
|
||||
#peer.active.ip = 207.12.89.180
|
||||
|
@ -44,12 +44,12 @@ protocol.version = 33
|
|||
# the peer window will show
|
||||
# only what retrieved by active
|
||||
# peer [true/false]
|
||||
peer.discovery = false
|
||||
peer.discovery = true
|
||||
|
||||
# number of workers that
|
||||
# tastes the peers for being
|
||||
# online [1..10]
|
||||
peer.discovery.workers = 10
|
||||
peer.discovery.workers = 1
|
||||
|
||||
# connection timeout for trying to
|
||||
# connect to a peer [seconds]
|
||||
|
|
Loading…
Reference in New Issue