Skip to content

Commit 9480d63

Browse files
committed
2 parents efc32ca + 223777c commit 9480d63

File tree

354 files changed

+39278
-7135
lines changed

Some content is hidden

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

354 files changed

+39278
-7135
lines changed

.travis.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ language: java
33
jdk: oraclejdk8
44
addons:
55
ssh_known_hosts:
6-
- 47.93.9.236:22008
6+
- 47.94.231.67:22008
7+
- 47.94.10.122:22008
78
sonarcloud:
89
organization: tron-zhaohong
910
token:
@@ -14,6 +15,11 @@ cache:
1415
script:
1516
- sh tron.sh
1617
- "./gradlew build"
18+
- "./gradlew jacocoTestReport"
19+
- bash deploy.sh
20+
21+
after_success:
22+
- "bash <(curl -s https://codecov.io/bash) -t 060bb400-c6fe-4d5f-a6c8-427105c746ac -s build/reports/jacoco/"
1723

1824
skip_build:
1925
- README.md:

README.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,18 @@
1212

1313

1414
<p align="center">
15-
<a href="https://tronfoundation.slack.com/">
16-
<img src="https://img.shields.io/badge/chat-on%20slack-brightgreen.svg">
15+
<a href="https://discord.gg/GsRgsTD">
16+
<img src="https://img.shields.io/badge/chat-on%20discord-brightgreen.svg">
1717
</a>
1818

1919
<a href="https://travis-ci.org/tronprotocol/java-tron">
2020
<img src="https://travis-ci.org/tronprotocol/java-tron.svg?branch=develop">
2121
</a>
2222

23+
<a href="https://codecov.io/gh/tronprotocol/java-tron">
24+
<img src="https://codecov.io/gh/tronprotocol/java-tron/branch/develop/graph/badge.svg" />
25+
</a>
26+
2327
<a href="https://github.com/tronprotocol/java-tron/issues">
2428
<img src="https://img.shields.io/github/issues/tronprotocol/java-tron.svg">
2529
</a>
@@ -41,7 +45,7 @@
4145
<a href="#how-to-build">How to Build</a> •
4246
<a href="#running">How to Run</a> •
4347
<a href="#links">Links</a> •
44-
<a href="http://wiki.tron.network">Wiki</a> •
48+
<a href="http://developers.tron.network">Documentation</a> •
4549
<a href="CONTRIBUTING.md">Contributing</a> •
4650
<a href="#community">Community</a>
4751
</p>
@@ -332,22 +336,22 @@ Then, run `FullNode::main()` again.
332336
333337
# Quick Start
334338
335-
Read the [Quick Start](http://wiki.tron.network/en/latest/The_TRON_Network.html#how-to-build).
339+
Read the [Quick Start](https://developers.tron.network/docs/getting-started-1).
336340
337341
# Advanced Configurations
338342
339343
Read the [Advanced Configurations](src/main/java/org/tron/core/config/README.md).
340344
341345
# Developer Community
342346
343-
* [Slack](https://tronfoundation.slack.com/) Please email [email protected] for a developer invite
347+
* [Discord](https://discord.gg/GsRgsTD) Please join our Developer Discord
348+
* [Gitter](https://gitter.im/tronprotocol/allcoredev) the core dev gitter
344349
345350
# Links
346351
347352
* [Website](https://tron.network/)
348-
* [Documentation](https://github.com/tronprotocol/java-tron)
353+
* [Documentation](http://developers.tron.network)
349354
* [Blog](https://tronprotocol.github.io/tron-blog/)
350-
* [TRON Wiki](http://wiki.tron.network/en/latest/)
351355
352356
# Projects
353357

TRON_Protobuf_Protocol_document.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,8 @@ Input, transaction and block header all require signature.
703703
`TotalTransaction` takes a parameter of `EmptyMessage`, and returns `NumberMessage` object.
704704
__`getTransactionById`__:
705705
`getTransactionById` takes a parameter of `BytesMessage`, and returns `Transaction` object.
706+
__`getTransactionInfoById`__:
707+
`getTransactionInfoById` takes a parameter of `BytesMessage`, and returns `TransactionInfo` object.
706708
__`getTransactionsByTimeStamp`__:
707709
`getTransactionsByTimeStamp` takes a parameter of `TimeMessage`, and returns `TransactionList` object.
708710
__`getTransactionsFromThis`__:

build.gradle

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ apply plugin: 'com.github.johnrengelman.shadow'
2323
apply plugin: "jacoco"
2424
apply plugin: 'maven-publish'
2525

26+
jar.enabled = false
27+
shadowJar.enabled = false
28+
2629
sourceCompatibility = 1.8
2730
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
2831
mainClassName = 'org.tron.program.FullNode'
@@ -166,6 +169,8 @@ dependencies {
166169
compile 'org.eclipse.jetty:jetty-servlet:9.4.11.v20180605'
167170
compile 'com.alibaba:fastjson:1.2.47'
168171
// end http
172+
173+
compile "io.vavr:vavr:0.9.2"
169174
}
170175

171176
check.dependsOn 'lint'
@@ -267,6 +272,9 @@ task stest(type: Test) {
267272

268273
useTestNG {
269274
suites(file('src/test/resources/testng.xml'))
275+
parallel 'tests'
276+
threadCount 4
277+
270278
}
271279

272280
testLogging {
@@ -283,7 +291,7 @@ task stest(type: Test) {
283291

284292
jacocoTestReport {
285293
reports {
286-
xml.enabled false
294+
xml.enabled true
287295
csv.enabled false
288296
html.destination file("${buildDir}/jacocoHtml")
289297
}

deploy.sh

Lines changed: 55 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,72 @@
11
#!/bin/bash
2+
stestlogname="`date +%Y%m%d%H%M%S`_stest.log"
3+
#testnet=(
4+
#47.94.231.67
5+
#47.94.10.122
6+
#)
7+
stest_server=""
8+
docker_num_in_67=`ssh -p 22008 -t [email protected] 'docker ps -a | wc -l'`
9+
docker_num_in_67=`echo $docker_num_in_67 | tr -d "\r"`
10+
docker_num_in_122=`ssh -p 22008 -t [email protected] 'docker ps -a | wc -l'`
11+
docker_num_in_122=`echo $docker_num_in_122 | tr -d "\r"`
12+
if [ $docker_num_in_67 -le $docker_num_in_122 ];
13+
then
14+
docker_num=$docker_num_in_67
15+
stest_server=47.94.231.67
16+
else
17+
docker_num=$docker_num_in_122
18+
stest_server=47.94.10.122
19+
fi
20+
21+
if [[ ${docker_num} -le 4 ]];
22+
then
23+
echo $stest_server
24+
else
25+
stest_server=""
26+
fi
27+
28+
if [ "$stest_server" = "" ]
29+
then
30+
echo "All docker server is busy, stest FAILED"
31+
exit 1
32+
fi
33+
34+
change_branch_CMD="sed -i '1c branch_name_in_CI=$TRAVIS_BRANCH' /data/workspace/docker_workspace/do_stest.sh"
235

336
echo "$TRAVIS_BRANCH"
437

5-
if [ "$TRAVIS_BRANCH" = "develop" ];then
38+
if [[ "$TRAVIS_BRANCH" = "develop" || "$TRAVIS_BRANCH" = "master" || "$TRAVIS_BRANCH" = "Odyssey_v3.2.1" ]];then
639
echo "init env"
7-
ssh [email protected] -p 22008 sh /home/tron/workspace/deploy_all.sh
40+
ssh java-tron@$stest_server -p 22008 $change_branch_CMD
41+
ssh java-tron@$stest_server -p 22008 sh /data/workspace/docker_workspace/do_stest.sh >$stestlogname 2>&1
42+
if [[ `find $stestlogname -type f | xargs grep "Connection refused"` =~ "Connection refused" || `find $stestlogname -type f | xargs grep "stest FAILED"` =~ "stest FAILED" ]];
43+
then
44+
rm -f $stestlogname
45+
echo "first if"
46+
ssh java-tron@$stest_server -p 22008 $change_branch_CMD
47+
ssh java-tron@$stest_server -p 22008 sh /data/workspace/docker_workspace/do_stest.sh >$stestlogname 2>&1
48+
fi
49+
if [[ `find $stestlogname -type f | xargs grep "Connection refused"` =~ "Connection refused" || `find $stestlogname -type f | xargs grep "stest FAILED"` =~ "stest FAILED" ]];
50+
then
51+
rm -f $stestlogname
52+
echo "second if"
53+
ssh java-tron@$stest_server -p 22008 $change_branch_CMD
54+
ssh java-tron@$stest_server -p 22008 sh /data/workspace/docker_workspace/do_stest.sh >$stestlogname 2>&1
55+
fi
856
echo "stest start"
9-
./gradlew stest | tee stest.log
57+
cat $stestlogname | grep "Stest result is:" -A 10000
1058
echo "stest end"
1159

1260
echo $?
13-
ret=$(cat stest.log | grep "stest FAILED" | wc -l)
61+
ret=$(cat $stestlogname | grep "stest FAILED" | wc -l)
1462

1563
if [ $ret != 0 ];then
1664
echo $ret
65+
rm -f $stestlogname
1766
exit 1
1867
fi
19-
2068
fi
2169
echo "bye bye"
22-
70+
echo $stest_server
71+
rm -f $stestlogname
2372
exit 0

src/main/java/org/tron/common/application/ApplicationImpl.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ public class ApplicationImpl implements Application {
2424

2525
@Autowired
2626
private Manager dbManager;
27-
27+
2828
private boolean isProducer;
2929

30+
3031
private void resetP2PNode() {
3132
p2pNode.listen();
3233
p2pNode.syncFrom(null);
@@ -124,6 +125,11 @@ private void closeRevokingStore() {
124125
}
125126

126127
private void closeAllStore() {
128+
// if (dbManager.getRevokingStore().getClass() == SnapshotManager.class) {
129+
// ((SnapshotManager) dbManager.getRevokingStore()).getDbs().forEach(IRevokingDB::close);
130+
// } else {
131+
// dbManager.closeAllStore();
132+
// }
127133
dbManager.closeAllStore();
128134
}
129135

src/main/java/org/tron/common/application/TronApplicationContext.java

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,45 @@
22

33
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
44
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
5+
import org.tron.common.overlay.discover.DiscoverServer;
6+
import org.tron.common.overlay.discover.node.NodeManager;
7+
import org.tron.common.overlay.server.ChannelManager;
58
import org.tron.core.db.Manager;
69

710
public class TronApplicationContext extends AnnotationConfigApplicationContext {
811

9-
public TronApplicationContext() {
10-
}
12+
public TronApplicationContext() {
13+
}
1114

12-
public TronApplicationContext(DefaultListableBeanFactory beanFactory) {
13-
super(beanFactory);
14-
}
15+
public TronApplicationContext(DefaultListableBeanFactory beanFactory) {
16+
super(beanFactory);
17+
}
1518

16-
public TronApplicationContext(Class<?>... annotatedClasses) {
17-
super(annotatedClasses);
18-
}
19+
public TronApplicationContext(Class<?>... annotatedClasses) {
20+
super(annotatedClasses);
21+
}
1922

20-
public TronApplicationContext(String... basePackages) {
21-
super(basePackages);
22-
}
23+
public TronApplicationContext(String... basePackages) {
24+
super(basePackages);
25+
}
2326

24-
@Override
25-
public void destroy() {
27+
@Override
28+
public void destroy() {
2629

27-
Manager dbManager = getBean(Manager.class);
28-
dbManager.stopRepushThread();
30+
Application appT = ApplicationFactory.create(this);
31+
appT.shutdownServices();
32+
appT.shutdown();
2933

30-
super.destroy();
31-
}
34+
DiscoverServer discoverServer = getBean(DiscoverServer.class);
35+
discoverServer.close();
36+
ChannelManager channelManager = getBean(ChannelManager.class);
37+
channelManager.close();
38+
NodeManager nodeManager = getBean(NodeManager.class);
39+
nodeManager.close();
40+
41+
Manager dbManager = getBean(Manager.class);
42+
dbManager.stopRepushThread();
43+
44+
super.destroy();
45+
}
3246
}

src/main/java/org/tron/common/backup/BackupManager.java

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import static org.tron.common.net.udp.message.UdpMessageTypeEnum.BACKUP_KEEP_ALIVE;
77

88
import io.netty.util.internal.ConcurrentSet;
9+
import java.net.InetAddress;
910
import java.net.InetSocketAddress;
1011
import java.util.Set;
1112
import java.util.concurrent.Executors;
@@ -31,6 +32,8 @@ public class BackupManager implements EventHandler{
3132

3233
private int port = args.getBackupPort();
3334

35+
private String localIp = "";
36+
3437
private Set<String> members = new ConcurrentSet<>();
3538

3639
private ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
@@ -41,7 +44,7 @@ public class BackupManager implements EventHandler{
4144

4245
private volatile long lastKeepAliveTime;
4346

44-
private volatile long keepAliveTimeout = 3000;
47+
private volatile long keepAliveTimeout = 10_000;
4548

4649
private volatile boolean isInit = false;
4750

@@ -71,11 +74,19 @@ public void init() {
7174
}
7275
isInit = true;
7376

77+
try{
78+
localIp = InetAddress.getLocalHost().getHostAddress();
79+
}catch (Exception e){
80+
logger.warn("Get local ip failed.");
81+
}
82+
7483
for (String member : args.getBackupMembers()) {
75-
members.add(member);
84+
if (!localIp.equals(member)){
85+
members.add(member);
86+
}
7687
}
7788

78-
logger.info("Backup members: size= {}, {}", members.size(), members);
89+
logger.info("Backup localIp:{}, members: size= {}, {}", localIp, members.size(), members);
7990

8091
setStatus(INIT);
8192

@@ -118,16 +129,20 @@ public void handleEvent(UdpEvent udpEvent) {
118129
lastKeepAliveTime = System.currentTimeMillis();
119130

120131
KeepAliveMessage keepAliveMessage = (KeepAliveMessage) msg;
132+
int peerPriority = keepAliveMessage.getPriority();
133+
String peerIp = sender.getAddress().getHostAddress();
121134

122-
if (status.equals(MASTER) && (keepAliveMessage.getFlag() &&
123-
keepAliveMessage.getPriority() > priority)){
135+
if (status.equals(INIT) && (keepAliveMessage.getFlag() || peerPriority > priority)){
124136
setStatus(SLAVER);
125137
return;
126138
}
127139

128-
if (status.equals(INIT) &&
129-
(keepAliveMessage.getFlag() || keepAliveMessage.getPriority() > priority)){
140+
if (status.equals(MASTER) && keepAliveMessage.getFlag()){
141+
if (peerPriority > priority){
142+
setStatus(SLAVER);
143+
}else if (peerPriority == priority && localIp.compareTo(peerIp) < 0){
130144
setStatus(SLAVER);
145+
}
131146
}
132147
}
133148

0 commit comments

Comments
 (0)