Skip to content

Commit 77af0e5

Browse files
committed
Version 1.0.8
Updated Extasys library
1 parent 9b23283 commit 77af0e5

File tree

9 files changed

+53
-47
lines changed

9 files changed

+53
-47
lines changed
Binary file not shown.
Binary file not shown.

RabbitMiner/nbproject/project.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,17 @@ dist.jlink.dir=${dist.dir}/jlink
3636
dist.jlink.output=${dist.jlink.dir}/RabbitMiner
3737
endorsed.classpath=
3838
excludes=
39-
file.reference.Extasys_NT_1.0.3.jar=ExternalLibraries/Extasys/Extasys_NT_1.0.3.jar
39+
file.reference.Extasys_NT_1.0.4.jar=ExternalLibraries/Extasys_NT_1.0.4.jar
4040
file.reference.jna-5.8.0.jar=ExternalLibraries/jna-5.8.0.jar
4141
file.reference.sojo-1.0.0.jar=ExternalLibraries/sojo-1.0.0.jar
4242
includes=**
4343
jar.archive.disabled=${jnlp.enabled}
4444
jar.compress=false
4545
jar.index=${jnlp.enabled}
4646
javac.classpath=\
47-
${file.reference.Extasys_NT_1.0.3.jar}:\
4847
${file.reference.jna-5.8.0.jar}:\
4948
${file.reference.sojo-1.0.0.jar}:\
49+
${file.reference.Extasys_NT_1.0.4.jar}:\
5050
${libs.absolutelayout.classpath}
5151
# Space-separated list of extra javac options
5252
javac.compilerargs=

RabbitMiner/src/rabbitminer/Cluster/Server/ClusterServer.java

Lines changed: 41 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@
2424
package rabbitminer.Cluster.Server;
2525

2626
import Extasys.DataFrame;
27+
import Extasys.Encryption.Base64Encryptor;
2728
import Extasys.ManualResetEvent;
2829
import Extasys.Network.TCP.Server.Listener.Exceptions.ClientIsDisconnectedException;
2930
import Extasys.Network.TCP.Server.Listener.Exceptions.OutgoingPacketFailedException;
3031
import Extasys.Network.TCP.Server.Listener.TCPClientConnection;
32+
import Extasys.Network.TCP.Server.Listener.TCPListener;
3133
import java.util.HashMap;
3234
import java.util.LinkedHashMap;
3335
import rabbitminer.Cluster.ClusterCommunicationCommons;
@@ -45,17 +47,19 @@
4547
*/
4648
public class ClusterServer extends Extasys.Network.TCP.Server.ExtasysTCPServer
4749
{
48-
50+
4951
private final RabbitCluster fMyCluster;
5052
private final Object fClientsConnectOrDisconnectLock = new Object();
5153
private final HashMap<String, TCPClientConnection> fConnectedClients;
5254
private final Thread fPingConnectedClientsThread;
53-
55+
5456
public ClusterServer(RabbitCluster myCluster, ClusterServerSettings clusterServerSettings)
5557
{
5658
super("", "", Computer.getComputerCPUCoresCount(), Computer.getComputerCPUCoresCount() * 2);
57-
super.AddListener("", clusterServerSettings.getIPAddress(), clusterServerSettings.getPort(), 60000, 10240, 30000, 150, ClusterCommunicationCommons.fETX);
58-
59+
TCPListener listener = super.AddListener("", clusterServerSettings.getIPAddress(), clusterServerSettings.getPort(), 60000, 10240, 30000, 150, ClusterCommunicationCommons.fETX);
60+
listener.setAutoApplyMessageSplitterState(true);
61+
listener.setConnectionEncryptor(new Base64Encryptor());
62+
5963
fMyCluster = myCluster;
6064
fConnectedClients = new HashMap<>();
6165

@@ -73,22 +77,22 @@ public ClusterServer(RabbitCluster myCluster, ClusterServerSettings clusterServe
7377
}
7478
catch (Exception ex)
7579
{
76-
80+
7781
}
7882
evt.Reset();
7983
}
8084
});
8185
fPingConnectedClientsThread.start();
8286
}
83-
87+
8488
@Override
8589
public void OnDataReceive(TCPClientConnection sender, DataFrame data)
8690
{
8791
try
8892
{
8993
String incomingStr = new String(data.getBytes(), "UTF-8");
9094
String[] parts = incomingStr.split(ClusterCommunicationCommons.fMessageSplitter);
91-
95+
9296
switch (parts[0])
9397
{
9498
case "LOGIN":
@@ -106,41 +110,41 @@ public void OnDataReceive(TCPClientConnection sender, DataFrame data)
106110
sender.setTag(var);
107111

108112
// Ειδοποιούμε το Node οτι συνδέθηκε
109-
sender.SendData("AUTHORIZED" + ClusterCommunicationCommons.fMessageSplitter + ClusterCommunicationCommons.fETX);
113+
sender.SendData("AUTHORIZED" + ClusterCommunicationCommons.fMessageSplitter);
110114
}
111115
else
112116
{
113-
sender.SendData("WRONG_PASSWORD" + ClusterCommunicationCommons.fMessageSplitter + ClusterCommunicationCommons.fETX);
117+
sender.SendData("WRONG_PASSWORD" + ClusterCommunicationCommons.fMessageSplitter);
114118
}
115119
break;
116-
120+
117121
case "GET_JOB":
118122
if (CheckIfClientIsAuthorized(sender))
119123
{
120124
// Ζήτα απο το Cluster να φτιάξει ένα
121125
// job για να το δώσουμε στο Node
122126
StratumJob job = fMyCluster.GiveNodeAJobToDo(sender);
123-
127+
124128
if (job != null)
125129
{
126-
sender.SendData("JOB" + ClusterCommunicationCommons.fMessageSplitter + job.toJSON() + ClusterCommunicationCommons.fETX);
130+
sender.SendData("JOB" + ClusterCommunicationCommons.fMessageSplitter + job.toJSON());
127131
}
128132
else
129133
{
130134
// Δεν υπάρχει Job....
131-
sender.SendData("NO_JOB" + ClusterCommunicationCommons.fMessageSplitter + ClusterCommunicationCommons.fETX);
135+
sender.SendData("NO_JOB" + ClusterCommunicationCommons.fMessageSplitter);
132136
}
133137
}
134138
break;
135-
139+
136140
case "JOB_SOLVED":
137141
if (CheckIfClientIsAuthorized(sender))
138142
{
139143
final String jobID = parts[1];
140144
final String extranonce2 = parts[2];
141145
final String nTime = parts[3];
142146
final String nonce = parts[4];
143-
147+
144148
String submitJobStr = "{\"params\": [\"#WORKER_NAME#\", \"#JOB_ID#\", \"#EXTRANONCE_2#\", \"#NTIME#\", \"#NONCE#\"], \"id\": #STRATUM_MESSAGE_ID#, \"method\": \"mining.submit\"}";
145149
submitJobStr = submitJobStr.replace("#WORKER_NAME#", fMyCluster.getStratumPoolSettings().getUsername());
146150
submitJobStr = submitJobStr.replace("#JOB_ID#", jobID);
@@ -158,49 +162,49 @@ public void OnDataReceive(TCPClientConnection sender, DataFrame data)
158162
fMyCluster.fJobsSubmitted += 1;
159163
}
160164
break;
161-
165+
162166
case "JOB_SOLVED_RANDOMX":
163167
if (CheckIfClientIsAuthorized(sender))
164168
{
165169
StratumJob_RandomX randomXJobSolved = new StratumJob_RandomX(parts[1]);
166-
170+
167171
LinkedHashMap solvedJobParams = new LinkedHashMap();
168172
solvedJobParams.put("id", Parser_RandomX.fPoolLoginID);
169173
solvedJobParams.put("job_id", randomXJobSolved.getJobID());
170174
solvedJobParams.put("nonce", randomXJobSolved.getSolution_NonceHexlifyByteArray());
171175
solvedJobParams.put("result", randomXJobSolved.getSolution_HashHexlifyByteArray());
172-
176+
173177
LinkedHashMap messageToPool = new LinkedHashMap();
174178
messageToPool.put("id", 1);
175179
messageToPool.put("jsonrpc", "2.0");
176180
messageToPool.put("method", "submit");
177181
messageToPool.put("params", solvedJobParams);
178-
182+
179183
String dataToSend = JSONSerializer.SerializeObject(messageToPool);
180-
184+
181185
System.err.println(dataToSend);
182-
186+
183187
fMyCluster.getStratumClient().SendData(dataToSend + "\n");
184188
System.out.println("SOLVED!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
185189

186190
// Καποιο Node ολοκλήρωσε ενα job με επιτυχία!
187191
// Στειλε το αποτέλεσμα στον Stratum Server
188192
fMyCluster.setCurrentStratumJob(null, false);
189193
}
190-
194+
191195
break;
192-
196+
193197
case "PONG":
194198
if (CheckIfClientIsAuthorized(sender))
195199
{
196-
200+
197201
}
198202
break;
199203
}
200204
}
201205
catch (Exception ex)
202206
{
203-
207+
204208
}
205209
}
206210

@@ -217,10 +221,10 @@ private boolean CheckIfClientIsAuthorized(TCPClientConnection client)
217221
NodeTCPConnectionVariables var = (NodeTCPConnectionVariables) client.getTag();
218222
return var.isClientAuthorized();
219223
}
220-
224+
221225
return false;
222226
}
223-
227+
224228
@Override
225229
public void OnClientConnect(TCPClientConnection client)
226230
{
@@ -232,7 +236,7 @@ public void OnClientConnect(TCPClientConnection client)
232236
frmClusterControl.ACTIVE_INSTANCE.NodeConnected(client);
233237
}
234238
}
235-
239+
236240
@Override
237241
public void OnClientDisconnect(TCPClientConnection client)
238242
{
@@ -247,7 +251,7 @@ public void OnClientDisconnect(TCPClientConnection client)
247251
}
248252
}
249253
}
250-
254+
251255
public void InformClientsToCleanJobs()
252256
{
253257
synchronized (fClientsConnectOrDisconnectLock)
@@ -256,14 +260,14 @@ public void InformClientsToCleanJobs()
256260
{
257261
try
258262
{
259-
client.SendData("CLEAN_JOBS" + ClusterCommunicationCommons.fMessageSplitter + ClusterCommunicationCommons.fETX);
263+
client.SendData("CLEAN_JOBS" + ClusterCommunicationCommons.fMessageSplitter);
260264
}
261265
catch (ClientIsDisconnectedException | OutgoingPacketFailedException ex)
262266
{
263267
}
264268
});
265269
}
266-
270+
267271
}
268272

269273
/**
@@ -277,21 +281,21 @@ private void PingClients()
277281
{
278282
try
279283
{
280-
con.SendData("PING" + ClusterCommunicationCommons.fMessageSplitter + ClusterCommunicationCommons.fETX);
284+
con.SendData("PING" + ClusterCommunicationCommons.fMessageSplitter);
281285
}
282286
catch (ClientIsDisconnectedException | OutgoingPacketFailedException ex)
283287
{
284-
288+
285289
}
286290
});
287291
}
288292
}
289-
293+
290294
public HashMap<String, TCPClientConnection> getConnectedClients()
291295
{
292296
return fConnectedClients;
293297
}
294-
298+
295299
public void ClearRangesFromClients()
296300
{
297301
synchronized (fClientsConnectOrDisconnectLock)
@@ -304,10 +308,10 @@ public void ClearRangesFromClients()
304308
}
305309
catch (Exception ex)
306310
{
307-
311+
308312
}
309313
});
310314
}
311315
}
312-
316+
313317
}

RabbitMiner/src/rabbitminer/ClusterNode/Client/ClusterClient.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
package rabbitminer.ClusterNode.Client;
2525

2626
import Extasys.DataFrame;
27+
import Extasys.Encryption.Base64Encryptor;
2728
import Extasys.ManualResetEvent;
2829
import Extasys.Network.TCP.Client.Connectors.TCPConnector;
2930
import java.net.InetAddress;
@@ -134,7 +135,7 @@ public void OnDataReceive(TCPConnector connector, DataFrame data)
134135
case "PING":
135136
// Server sents PING.
136137
// Answer with PONG.
137-
connector.SendData("PONG" + ClusterCommunicationCommons.fMessageSplitter + ClusterCommunicationCommons.fETX);
138+
connector.SendData("PONG" + ClusterCommunicationCommons.fMessageSplitter);
138139
break;
139140

140141
}
@@ -151,7 +152,7 @@ public void OnConnect(TCPConnector connector)
151152
fMyClusterNode.setStatus("Requesting access to Cluster...");
152153
String loginStr = "LOGIN" + ClusterCommunicationCommons.fMessageSplitter;
153154
loginStr += fMyClusterNode.getClusterPassword() + ClusterCommunicationCommons.fMessageSplitter;
154-
loginStr += String.valueOf(Computer.getComputerCPUCoresCount()) + ClusterCommunicationCommons.fETX;
155+
loginStr += String.valueOf(Computer.getComputerCPUCoresCount());
155156
try
156157
{
157158
SendData(loginStr);
@@ -191,13 +192,14 @@ private void StartAutoReconnect()
191192
InetAddress serverIP = ACTIVE_INSTANCE.fMyClusterNode.getClusterIP();
192193
int serverPort = ACTIVE_INSTANCE.fMyClusterNode.getClusterPort();
193194
int readBufferSize = 10240;
194-
String messageSplitter = ClusterCommunicationCommons.fETX;
195195

196196
// Remove the old TCPConnector
197197
ClusterClient.ACTIVE_INSTANCE.RemoveConnector("");
198198

199199
// Add new connector
200-
ClusterClient.ACTIVE_INSTANCE.AddConnector("", serverIP, serverPort, readBufferSize, messageSplitter);
200+
TCPConnector conn = ClusterClient.ACTIVE_INSTANCE.AddConnector("", serverIP, serverPort, readBufferSize, ClusterCommunicationCommons.fETX);
201+
conn.setAutoApplyMessageSplitterState(true);
202+
conn.setConnectionEncryptor(new Base64Encryptor());
201203

202204
fMyClusterNode.setStatus("Trying to connect to server...");
203205
try

RabbitMiner/src/rabbitminer/ClusterNode/ClusterNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ private void AskServerForJobAndWaitForReply()
150150
{
151151
fAskServerForJobAndWaitForReplyEvent.Reset();
152152

153-
fClusterClient.SendData("GET_JOB" + ClusterCommunicationCommons.fMessageSplitter + ClusterCommunicationCommons.fETX);
153+
fClusterClient.SendData("GET_JOB" + ClusterCommunicationCommons.fMessageSplitter);
154154
try
155155
{
156156
fAskServerForJobAndWaitForReplyEvent.WaitOne(5000);

RabbitMiner/src/rabbitminer/ClusterNode/Miner/POW/POW_RandomX.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public boolean MeetsTarget(final int nonce, final int threadNo)
107107

108108
String reply = "JOB_SOLVED_RANDOMX" + ClusterCommunicationCommons.fMessageSplitter;
109109
reply += randomXJob.toJSON() + ClusterCommunicationCommons.fMessageSplitter;
110-
reply += ClusterCommunicationCommons.fETX;
110+
111111

112112
try
113113
{

RabbitMiner/src/rabbitminer/ClusterNode/Miner/POW/POW_SCrypt.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public void JobSolved(final int nonce, final String extranonce2)
145145
reply += extranonce2 + ClusterCommunicationCommons.fMessageSplitter;
146146
reply += nTime + ClusterCommunicationCommons.fMessageSplitter;
147147
reply += DecToHex.decToHex(nonce);
148-
reply += ClusterCommunicationCommons.fETX;
148+
149149

150150
try
151151
{

RabbitMiner/src/rabbitminer/Core/Settings/SettingsManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
public class SettingsManager
3636
{
3737

38-
private static final String fAppVersion = "1.0.7";
38+
private static final String fAppVersion = "1.0.8";
3939
public static final String fClusterSettingsFileExtension = "rbmcs";
4040
private static final String fSettingsFileName = "RabbitMiner.conf";
4141

0 commit comments

Comments
 (0)