Properties file introduced
This commit is contained in:
parent
23250da8eb
commit
9483936a2b
|
@ -0,0 +1,95 @@
|
|||
package org.ethereum.config;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Properties;
|
||||
|
||||
/**
|
||||
* www.ethereumJ.com
|
||||
* User: Roman Mandeleil
|
||||
* Created on: 22/05/2014 19:22
|
||||
*/
|
||||
|
||||
public class SystemProperties {
|
||||
|
||||
Properties prop = new Properties();
|
||||
InputStream input = null;
|
||||
|
||||
public static SystemProperties config = new SystemProperties();
|
||||
|
||||
public SystemProperties() {
|
||||
|
||||
|
||||
try {
|
||||
|
||||
String filename = "system.properties";
|
||||
input = SystemProperties.class.getClassLoader().getResourceAsStream(filename);
|
||||
if(input==null){
|
||||
System.out.println("Sorry, unable to find " + filename);
|
||||
return;
|
||||
}
|
||||
|
||||
//load a properties file from class path, inside static method
|
||||
prop.load(input);
|
||||
|
||||
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
} finally{
|
||||
if(input!=null){
|
||||
try {
|
||||
input.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public boolean peerDiscovery(){
|
||||
|
||||
if(prop.isEmpty()) return true;
|
||||
|
||||
boolean result =
|
||||
Boolean.parseBoolean( prop.getProperty("peer.discovery") );
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public int peerDiscoveryWorkers(){
|
||||
if(prop.isEmpty()) return 2;
|
||||
|
||||
int result =
|
||||
Integer.parseInt( prop.getProperty("peer.discovery") );
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public String toString(){
|
||||
|
||||
Enumeration<?> e = prop.propertyNames();
|
||||
while (e.hasMoreElements()) {
|
||||
String key = (String) e.nextElement();
|
||||
String value = prop.getProperty(key);
|
||||
|
||||
if (!key.equals("null"))
|
||||
System.out.println("Key : " + key + ", Value : " + value);
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
public static void main(String args[]){
|
||||
|
||||
SystemProperties systemProperties = new SystemProperties();
|
||||
System.out.println(systemProperties.toString());
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package org.ethereum.gui;
|
||||
|
||||
import org.ethereum.config.SystemProperties;
|
||||
import org.ethereum.manager.MainData;
|
||||
|
||||
import java.awt.*;
|
||||
|
@ -15,6 +16,8 @@ import javax.swing.SwingConstants;
|
|||
import javax.swing.table.DefaultTableCellRenderer;
|
||||
import javax.swing.table.TableCellRenderer;
|
||||
|
||||
import static org.ethereum.config.SystemProperties.config;
|
||||
|
||||
/**
|
||||
* www.ethereumJ.com
|
||||
* User: Roman Mandeleil
|
||||
|
@ -81,7 +84,8 @@ public class PeersTableWindow extends JFrame{
|
|||
}
|
||||
}, 1000, 1000);
|
||||
|
||||
MainData.instance.startPeerDiscovery();
|
||||
if (config.peerDiscovery())
|
||||
MainData.instance.startPeerDiscovery();
|
||||
}
|
||||
|
||||
public static void main(String args[]) {
|
||||
|
|
|
@ -5,6 +5,7 @@ import io.netty.channel.ChannelHandlerContext;
|
|||
import io.netty.channel.ChannelInboundHandlerAdapter;
|
||||
import io.netty.channel.ChannelOption;
|
||||
import io.netty.channel.FixedRecvByteBufAllocator;
|
||||
import org.ethereum.crypto.HashUtil;
|
||||
import org.ethereum.gui.PeerListener;
|
||||
import org.ethereum.manager.MainData;
|
||||
import org.ethereum.net.Command;
|
||||
|
@ -46,13 +47,21 @@ public class EthereumPeerTasterHandler extends ChannelInboundHandlerAdapter {
|
|||
@Override
|
||||
public void channelActive(final ChannelHandlerContext ctx) {
|
||||
|
||||
final ByteBuf buffer = ctx.alloc().buffer(HELLO_MESSAGE.length + 8);
|
||||
// Here we send the hello message with random id each time
|
||||
// to not interrupt active peer
|
||||
|
||||
byte[] peerIdBytes = HashUtil.randomPeerId();
|
||||
HelloMessage helloMessage = new HelloMessage((byte)0x11, (byte)0x00, "EthereumJ [v0.5.1] by RomanJ ",
|
||||
(byte)0b00000111, (short)30303, peerIdBytes);
|
||||
byte[] helloLength =ByteUtil.calcPacketLength(helloMessage.getPayload());
|
||||
|
||||
final ByteBuf buffer = ctx.alloc().buffer(helloMessage.getPayload().length + 8);
|
||||
timer = new Timer();
|
||||
|
||||
buffer.writeBytes(MAGIC_PREFIX);
|
||||
buffer.writeBytes(HELLO_MESSAGE_LEN);
|
||||
buffer.writeBytes(HELLO_MESSAGE);
|
||||
System.out.println("Send: " + StaticMessages.HELLO_MESSAGE.toString());
|
||||
buffer.writeBytes(helloLength);
|
||||
buffer.writeBytes(helloMessage.getPayload());
|
||||
System.out.println("Send: " + helloMessage.toString());
|
||||
ctx.writeAndFlush(buffer);
|
||||
|
||||
// sample for pinging in background
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
package org.ethereum.net.peerdiscovery;
|
||||
|
||||
|
||||
import org.ethereum.config.SystemProperties;
|
||||
import org.ethereum.net.client.PeerData;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.*;
|
||||
|
||||
import static org.ethereum.config.SystemProperties.config;
|
||||
|
||||
/**
|
||||
* www.ethereumJ.com
|
||||
* User: Roman Mandeleil
|
||||
|
@ -35,7 +38,7 @@ public class PeerDiscovery {
|
|||
threadFactory = Executors.defaultThreadFactory();
|
||||
|
||||
//creating the ThreadPoolExecutor
|
||||
executorPool = new ThreadPoolExecutor(1, 5, 10, TimeUnit.SECONDS,
|
||||
executorPool = new ThreadPoolExecutor(1, config.peerDiscoveryWorkers(), 10, TimeUnit.SECONDS,
|
||||
new ArrayBlockingQueue<Runnable>(2), threadFactory, rejectionHandler);
|
||||
|
||||
//start the monitoring thread
|
||||
|
@ -64,43 +67,5 @@ public class PeerDiscovery {
|
|||
return started;
|
||||
}
|
||||
|
||||
// todo: this main here for test erase it once upon a time
|
||||
public static void main(String args[]) throws InterruptedException{
|
||||
|
||||
//RejectedExecutionHandler implementation
|
||||
RejectedExecutionHandlerImpl rejectionHandler = new RejectedExecutionHandlerImpl();
|
||||
|
||||
//Get the ThreadFactory implementation to use
|
||||
ThreadFactory threadFactory = Executors.defaultThreadFactory();
|
||||
|
||||
//creating the ThreadPoolExecutor
|
||||
ThreadPoolExecutor executorPool = new ThreadPoolExecutor(2, 4, 10, TimeUnit.SECONDS,
|
||||
new ArrayBlockingQueue<Runnable>(2), threadFactory, rejectionHandler);
|
||||
|
||||
//start the monitoring thread
|
||||
PeerDiscoveryMonitorThread monitor = new PeerDiscoveryMonitorThread(executorPool, 3);
|
||||
Thread monitorThread = new Thread(monitor);
|
||||
monitorThread.start();
|
||||
|
||||
//submit work to the thread pool
|
||||
PeerData peer = new PeerData(new byte[]{54, (byte)211, 14, 10}, (short) 30303, new byte[]{00});
|
||||
executorPool.execute(new WorkerThread(peer, executorPool));
|
||||
|
||||
PeerData peer2 = new PeerData(new byte[]{54 , (byte)201, 28, 117}, (short) 30303, new byte[]{00});
|
||||
executorPool.execute(new WorkerThread(peer2, executorPool));
|
||||
|
||||
PeerData peer3 = new PeerData(new byte[]{54, (byte)211, 14, 10}, (short) 40404, new byte[]{00});
|
||||
executorPool.execute(new WorkerThread(peer3, executorPool));
|
||||
|
||||
Thread.sleep(30000);
|
||||
//shut down the pool
|
||||
executorPool.shutdown();
|
||||
//shut down the monitor thread
|
||||
Thread.sleep(5000);
|
||||
monitor.shutdown();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -16,11 +16,14 @@ server.acceptConnections = false
|
|||
connection.timeout = 10
|
||||
|
||||
|
||||
|
||||
# specify if the mechanism
|
||||
# to discover more and more
|
||||
# peers and check the already
|
||||
# discovered peers is on [true/false]
|
||||
# discovered peers is on
|
||||
# if peer discovery is off
|
||||
# the peer window will show
|
||||
# only what retrieved by active
|
||||
# peer [true/false]
|
||||
peer.discovery = true
|
||||
|
||||
# number of workers that
|
||||
|
|
Loading…
Reference in New Issue