Skip to content

Commit ac4f33a

Browse files
authored
Merge pull request #854 from tronprotocol/develop
merge develop
2 parents c4f4e1f + eb2f919 commit ac4f33a

File tree

176 files changed

+11956
-2764
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

176 files changed

+11956
-2764
lines changed

.travis.yml

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
sudo: required
22
language: java
33
jdk: oraclejdk8
4-
script:
5-
- sh tron.sh
6-
- ./gradlew lint
7-
- ./gradlew test
84
addons:
95
ssh_known_hosts:
106
- 47.93.9.236:22008
7+
sonarcloud:
8+
organization: tron-zhaohong
9+
token:
10+
secure: "KXWEeQ1elAoQ0XfR54TQWfhrIdDP0+2CYPv2X9aWpU/YDl7hqZBAjcCOAUGvlbyM54jtG6YMaWwG48jlrOwwl5l/VjWSnUXF+7ixQy5ki0Ci9s7Y1pTQwV9SpL8TLIK2TYqabN8Mw+FJULASXLjYr9GerbbcUbCPTmcL6mQKw6ivxxpNPmz4eNoKAEuOzruO9fTXGAV3yr8Nn85c+mVxV8EUhkR17zpE9O8fvzOtSnYArWNOSCgDBn0EG45UNNPF2vn44s1c3h3gX1m3WK6PeCXPgy3hPqRn3wTG+xglnbqthGpo2wt1rJ83af+BwdYwvPEcUq84yLgXcE/aMkTKcVAfPWBP/6vblaoI90jxCeFji+MdMimKZAqIXt7oLqDZVmIq65de5YC5s7QTSbzJNY/tsAu3dqzSfbUJY6CRNFDcoenVpvgQkqb37TkDah4mJM8EUjbu2A9Q2HSFbyCVsQJtdasuu9cBOf6azK3U0XgFNBc0y2aziZrTnX30q7bi+5L/mbTnRdXrDqBOqyPeGtT77UZfcajHHmEWU/e6gYWiA/c+K25n13DD53Au6gpnnQ6ALeUl/1gDwz3fPBebJ5bVWrkIcLj7bbysjzfOvQmDS6G13RNz58Hm0/B7bVtZTr1E1q6Z1zEJwbuJYEJASNcezAfK5x/hIfZTGNqT3M8="
11+
cache:
12+
directories:
13+
- '$HOME/.sonar/cache'
14+
script:
15+
- sh tron.sh
16+
- "./gradlew build"
17+
- sonar-scanner
1118
skip_build:
1219
- README.md:
1320
- LICENSE
@@ -17,6 +24,5 @@ deploy:
1724
on:
1825
branch: develop
1926
after_deploy:
20-
- ./gradlew stest
21-
27+
- "./gradlew stest"
2228

build.gradle

Lines changed: 34 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
buildscript {
2+
repositories {
3+
maven { url 'http://mvnrepository.com' }
4+
mavenCentral()
5+
jcenter()
6+
}
7+
dependencies {
8+
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.3'
9+
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2'
10+
}
11+
}
12+
plugins {
13+
id "org.sonarqube" version "2.6"
14+
}
15+
116
group 'org.tron'
217
version '1.0.0'
318

@@ -8,7 +23,6 @@ apply plugin: 'checkstyle'
823
apply plugin: 'com.github.johnrengelman.shadow'
924
apply plugin: "jacoco"
1025

11-
1226
sourceCompatibility = 1.8
1327
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
1428
mainClassName = 'org.tron.program.FullNode'
@@ -18,19 +32,6 @@ repositories {
1832
mavenLocal()
1933
mavenCentral()
2034
}
21-
22-
buildscript {
23-
repositories {
24-
maven { url 'http://mvnrepository.com' }
25-
mavenCentral()
26-
jcenter()
27-
}
28-
dependencies {
29-
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.3'
30-
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2'
31-
}
32-
}
33-
3435
def versions = [
3536
checkstyle: '8.7',
3637
]
@@ -143,17 +144,15 @@ checkstyle {
143144
}
144145

145146
checkstyleMain {
146-
source 'src'
147-
include '**/*.java'
148-
exclude '**/gen/**'
147+
source = 'src/main/java'
149148
}
150149

151150
task lint(type: Checkstyle) {
152151
// Cleaning the old log because of the creation of the new ones (not sure if totaly needed)
153152
delete fileTree(dir: "${project.rootDir}/app/build/reports")
154153
source 'src'
155154
include '**/*.java'
156-
exclude '**/gen/**'
155+
exclude 'main/gen/**'
157156
// empty classpath
158157
classpath = files()
159158
//Failing the build
@@ -186,6 +185,7 @@ protobuf {
186185
protoc {
187186
artifact = "com.google.protobuf:protoc:3.5.1-1"
188187
}
188+
189189
plugins {
190190
grpc {
191191
artifact = 'io.grpc:protoc-gen-grpc-java:1.9.0'
@@ -223,14 +223,22 @@ test {
223223
exceptionFormat = 'full'
224224
}
225225
jacoco {
226-
append = false
226+
append = true
227227
destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
228228
}
229229
}
230230

231-
task stest(type:Test){
232-
useTestNG{
233-
suites( file('src/test/resources/testng.xml') )
231+
jacocoTestReport {
232+
reports {
233+
xml.enabled false
234+
csv.enabled false
235+
html.destination file("${buildDir}/jacocoHtml")
236+
}
237+
}
238+
239+
task stest(type: Test) {
240+
useTestNG {
241+
suites(file('src/test/resources/testng.xml'))
234242
}
235243

236244
testLogging {
@@ -239,7 +247,7 @@ task stest(type:Test){
239247
}
240248
}
241249

242-
def binaryRelease(taskName,jarName,mainClass) {
250+
def binaryRelease(taskName, jarName, mainClass) {
243251
return tasks.create("${taskName}", Jar) {
244252
baseName = jarName
245253
version = null
@@ -259,7 +267,8 @@ def binaryRelease(taskName,jarName,mainClass) {
259267
}
260268
}
261269

270+
262271
artifacts {
263-
archives(binaryRelease('buildSolidityNodeJar','SolidityNode','org.tron.program.SolidityNode'),
264-
binaryRelease('buildFullNodeJar','FullNode','org.tron.program.FullNode'))
272+
archives(binaryRelease('buildSolidityNodeJar', 'SolidityNode', 'org.tron.program.SolidityNode'),
273+
binaryRelease('buildFullNodeJar', 'FullNode', 'org.tron.program.FullNode'))
265274
}

sonar-project.properties

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
sonar.projectKey=java-tron
2+
sonar.projectName=java-tron
3+
sonar.projectVersion=2.1
4+
# =====================================================
5+
# Meta-data for the project
6+
# =====================================================
7+
sonar.links.homepage=https://github.com/tronprotocol/java-tron
8+
sonar.links.ci=https://travis-ci.org/tronprotocol/java-tron
9+
sonar.links.scm=https://github.com/tronprotocol/java-tron
10+
sonar.links.issue=https://github.com/tronprotocol/java-tron/issues
11+
# =====================================================
12+
# Properties that will be shared amongst all modules
13+
# =====================================================
14+
# SQ standard properties
15+
sonar.sources=src/main
16+
sonar.tests=src/test
17+
sonar.java.binaries=build/classes
18+
# =====================================================
19+
# Properties that will be shared amongst all modules

src/main/java/org/tron/common/overlay/client/DatabaseGrpcClient.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ public Block getBlock(long blockNum) {
3737
return databaseBlockingStub.getBlockByNum(builder.build());
3838
}
3939

40+
public void shutdown() {
41+
channel.shutdown();
42+
}
43+
4044
public DynamicProperties getDynamicProperties() {
4145
return databaseBlockingStub.getDynamicProperties(EmptyMessage.newBuilder().build());
4246
}

src/main/java/org/tron/common/overlay/client/PeerClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
import org.springframework.stereotype.Component;
1919
import org.tron.common.overlay.discover.Node;
2020
import org.tron.common.overlay.discover.NodeHandler;
21-
import org.tron.common.overlay.message.ReasonCode;
2221
import org.tron.common.overlay.server.TronChannelInitializer;
2322
import org.tron.core.config.args.Args;
2423
import org.tron.core.net.node.NodeImpl;
24+
import org.tron.protos.Protocol.ReasonCode;
2525

2626
@Component
2727
public class PeerClient {

src/main/java/org/tron/common/overlay/discover/DiscoverListener.java

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,23 @@
2424
*/
2525
public interface DiscoverListener {
2626

27-
/**
28-
* Invoked whenever a new node appeared which meets criteria specified
29-
* in the {@link NodeManager#addDiscoverListener} method
30-
*/
31-
void nodeAppeared(NodeHandler handler);
27+
/**
28+
* Invoked whenever a new node appeared which meets criteria specified in the {@link
29+
* NodeManager#addDiscoverListener} method
30+
*/
31+
void nodeAppeared(NodeHandler handler);
3232

33-
/**
34-
* Invoked whenever a node stops meeting criteria.
35-
*/
36-
void nodeDisappeared(NodeHandler handler);
33+
/**
34+
* Invoked whenever a node stops meeting criteria.
35+
*/
36+
void nodeDisappeared(NodeHandler handler);
3737

38-
class Adapter implements DiscoverListener {
39-
public void nodeAppeared(NodeHandler handler) {}
40-
public void nodeDisappeared(NodeHandler handler) {}
38+
class Adapter implements DiscoverListener {
39+
40+
public void nodeAppeared(NodeHandler handler) {
41+
}
42+
43+
public void nodeDisappeared(NodeHandler handler) {
4144
}
45+
}
4246
}

src/main/java/org/tron/common/overlay/discover/DiscoverTask.java

Lines changed: 61 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -17,78 +17,84 @@
1717
*/
1818
package org.tron.common.overlay.discover;
1919

20+
import java.util.ArrayList;
21+
import java.util.List;
2022
import org.slf4j.Logger;
2123
import org.slf4j.LoggerFactory;
2224
import org.tron.common.overlay.discover.table.KademliaOptions;
2325
import org.tron.common.overlay.discover.table.NodeEntry;
2426

25-
import java.util.ArrayList;
26-
import java.util.List;
27-
2827
public class DiscoverTask implements Runnable {
29-
private static final Logger logger = LoggerFactory.getLogger("DiscoverTask");
3028

31-
NodeManager nodeManager;
29+
private static final Logger logger = LoggerFactory.getLogger("DiscoverTask");
3230

33-
byte[] nodeId;
31+
NodeManager nodeManager;
3432

35-
public DiscoverTask(NodeManager nodeManager) {
36-
this.nodeManager = nodeManager;
37-
nodeId = nodeManager.homeNode.getId();
38-
}
33+
byte[] nodeId;
3934

40-
@Override
41-
public void run() {
42-
discover(nodeId, 0, new ArrayList<Node>());
43-
}
35+
public DiscoverTask(NodeManager nodeManager) {
36+
this.nodeManager = nodeManager;
37+
nodeId = nodeManager.homeNode.getId();
38+
}
39+
40+
@Override
41+
public void run() {
42+
discover(nodeId, 0, new ArrayList<Node>());
43+
}
4444

45-
public synchronized void discover(byte[] nodeId, int round, List<Node> prevTried) {
45+
public synchronized void discover(byte[] nodeId, int round, List<Node> prevTried) {
4646

47-
try {
48-
if (round == KademliaOptions.MAX_STEPS) {
49-
logger.debug("Node table contains [{}] peers", nodeManager.getTable().getNodesCount());
50-
logger.debug("{}", String.format("(KademliaOptions.MAX_STEPS) Terminating discover after %d rounds.", round));
51-
logger.trace("{}\n{}", String.format("Nodes discovered %d ", nodeManager.getTable().getNodesCount()), dumpNodes());
52-
return;
53-
}
47+
try {
48+
if (round == KademliaOptions.MAX_STEPS) {
49+
logger.debug("Node table contains [{}] peers", nodeManager.getTable().getNodesCount());
50+
logger.debug("{}", String
51+
.format("(KademliaOptions.MAX_STEPS) Terminating discover after %d rounds.", round));
52+
logger.trace("{}\n{}",
53+
String.format("Nodes discovered %d ", nodeManager.getTable().getNodesCount()),
54+
dumpNodes());
55+
return;
56+
}
5457

55-
List<Node> closest = nodeManager.getTable().getClosestNodes(nodeId);
56-
List<Node> tried = new ArrayList<>();
57-
for (Node n : closest) {
58-
if (!tried.contains(n) && !prevTried.contains(n)) {
59-
try {
60-
nodeManager.getNodeHandler(n).sendFindNode(nodeId);
61-
tried.add(n);
62-
Thread.sleep(50);
63-
}catch (InterruptedException e) {
64-
} catch (Exception ex) {
65-
logger.error("Unexpected Exception " + ex, ex);
66-
}
67-
}
68-
if (tried.size() == KademliaOptions.ALPHA) {
69-
break;
70-
}
71-
}
58+
List<Node> closest = nodeManager.getTable().getClosestNodes(nodeId);
59+
List<Node> tried = new ArrayList<>();
60+
for (Node n : closest) {
61+
if (!tried.contains(n) && !prevTried.contains(n)) {
62+
try {
63+
nodeManager.getNodeHandler(n).sendFindNode(nodeId);
64+
tried.add(n);
65+
Thread.sleep(50);
66+
} catch (InterruptedException e) {
67+
} catch (Exception ex) {
68+
logger.error("Unexpected Exception " + ex, ex);
69+
}
70+
}
71+
if (tried.size() == KademliaOptions.ALPHA) {
72+
break;
73+
}
74+
}
7275

73-
if (tried.isEmpty()) {
74-
logger.debug("{}", String.format("(tried.isEmpty()) Terminating discover after %d rounds.", round));
75-
logger.trace("{}\n{}", String.format("Nodes discovered %d ", nodeManager.getTable().getNodesCount()), dumpNodes());
76-
return;
77-
}
76+
if (tried.isEmpty()) {
77+
logger.debug("{}",
78+
String.format("(tried.isEmpty()) Terminating discover after %d rounds.", round));
79+
logger.trace("{}\n{}",
80+
String.format("Nodes discovered %d ", nodeManager.getTable().getNodesCount()),
81+
dumpNodes());
82+
return;
83+
}
7884

79-
tried.addAll(prevTried);
85+
tried.addAll(prevTried);
8086

81-
discover(nodeId, round + 1, tried);
82-
} catch (Exception ex) {
83-
logger.error("{}", ex);
84-
}
87+
discover(nodeId, round + 1, tried);
88+
} catch (Exception ex) {
89+
logger.error("{}", ex);
8590
}
91+
}
8692

87-
private String dumpNodes() {
88-
String ret = "";
89-
for (NodeEntry entry : nodeManager.getTable().getAllNodes()) {
90-
ret += " " + entry.getNode() + "\n";
91-
}
92-
return ret;
93+
private String dumpNodes() {
94+
String ret = "";
95+
for (NodeEntry entry : nodeManager.getTable().getAllNodes()) {
96+
ret += " " + entry.getNode() + "\n";
9397
}
98+
return ret;
99+
}
94100
}

0 commit comments

Comments
 (0)