Skip to content

Commit 563af93

Browse files
committed
feat(net): optimize transaction execution logic
1 parent f20e11b commit 563af93

3 files changed

Lines changed: 26 additions & 2 deletions

File tree

framework/src/main/java/org/tron/core/net/messagehandler/TransactionsMsgHandler.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ private void handleSmartContract() {
116116
}
117117

118118
private void handleTransaction(PeerConnection peer, TransactionMessage trx) {
119-
if (peer.isDisconnect()) {
120-
logger.warn("Drop trx {} from {}, peer is disconnect", trx.getMessageId(),
119+
if (peer.isBadPeer()) {
120+
logger.warn("Drop trx {} from {}, peer is bad peer", trx.getMessageId(),
121121
peer.getInetAddress());
122122
return;
123123
}
@@ -133,6 +133,7 @@ private void handleTransaction(PeerConnection peer, TransactionMessage trx) {
133133
logger.warn("Trx {} from peer {} process failed. type: {}, reason: {}",
134134
trx.getMessageId(), peer.getInetAddress(), e.getType(), e.getMessage());
135135
if (e.getType().equals(TypeEnum.BAD_TRX)) {
136+
peer.setBadPeer(true);
136137
peer.disconnect(ReasonCode.BAD_TX);
137138
}
138139
} catch (Exception e) {

framework/src/main/java/org/tron/core/net/peer/PeerConnection.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ public class PeerConnection {
7171
@Getter
7272
private volatile boolean fetchAble;
7373

74+
@Setter
75+
@Getter
76+
private volatile boolean isBadPeer;
77+
7478
@Getter
7579
@Setter
7680
private ByteString address;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.tron.core.net.peer;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
6+
public class PeerConnectionTest {
7+
8+
@Test
9+
public void testVariableDefaultValue() {
10+
PeerConnection peerConnection = new PeerConnection();
11+
Assert.assertTrue(!peerConnection.isBadPeer());
12+
Assert.assertTrue(!peerConnection.isFetchAble());
13+
Assert.assertTrue(peerConnection.isIdle());
14+
Assert.assertTrue(!peerConnection.isRelayPeer());
15+
Assert.assertTrue(peerConnection.isNeedSyncFromPeer());
16+
Assert.assertTrue(peerConnection.isNeedSyncFromUs());
17+
Assert.assertTrue(!peerConnection.isSyncFinish());
18+
}
19+
}

0 commit comments

Comments
 (0)