Skip to content

Commit 42732b0

Browse files
authored
Merge branch 'tronprotocol:develop' into develop
2 parents 50752f5 + 50ad05a commit 42732b0

6 files changed

Lines changed: 549 additions & 6 deletions

File tree

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,20 @@ private void check(PeerConnection peer, BlockMessage msg) throws P2pException {
104104
Item item = new Item(msg.getBlockId(), InventoryType.BLOCK);
105105
if (!peer.getSyncBlockRequested().containsKey(msg.getBlockId()) && !peer.getAdvInvRequest()
106106
.containsKey(item)) {
107+
logger.error("Receive bad block {} from peer {}, with no request",
108+
msg.getBlockId(), peer.getInetSocketAddress());
107109
throw new P2pException(TypeEnum.BAD_MESSAGE, "no request");
108110
}
109111
BlockCapsule blockCapsule = msg.getBlockCapsule();
110112
if (blockCapsule.getInstance().getSerializedSize() > maxBlockSize) {
113+
logger.error("Receive bad block {} from peer {}, block size over limit",
114+
msg.getBlockId(), peer.getInetSocketAddress());
111115
throw new P2pException(TypeEnum.BAD_MESSAGE, "block size over limit");
112116
}
113117
long gap = blockCapsule.getTimeStamp() - System.currentTimeMillis();
114118
if (gap >= BLOCK_PRODUCED_INTERVAL) {
119+
logger.error("Receive bad block {} from peer {}, block time error",
120+
msg.getBlockId(), peer.getInetSocketAddress());
115121
throw new P2pException(TypeEnum.BAD_MESSAGE, "block time error");
116122
}
117123
}

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import java.net.InetSocketAddress;
88
import java.util.Deque;
99
import java.util.HashSet;
10+
import java.util.List;
1011
import java.util.Locale;
1112
import java.util.Map;
1213
import java.util.Set;
@@ -28,6 +29,7 @@
2829
import org.tron.core.Constant;
2930
import org.tron.core.capsule.BlockCapsule.BlockId;
3031
import org.tron.core.config.Parameter.NetConstants;
32+
import org.tron.core.config.args.Args;
3133
import org.tron.core.metrics.MetricsKey;
3234
import org.tron.core.metrics.MetricsUtil;
3335
import org.tron.core.net.TronNetDelegate;
@@ -50,6 +52,8 @@
5052
@Scope("prototype")
5153
public class PeerConnection {
5254

55+
private static List<InetSocketAddress> relayNodes = Args.getInstance().getFastForwardNodes();
56+
5357
@Getter
5458
private PeerStatistics peerStatistics = new PeerStatistics();
5559

@@ -61,7 +65,7 @@ public class PeerConnection {
6165

6266
@Getter
6367
@Setter
64-
private boolean isRelayPeer;
68+
private volatile boolean isRelayPeer;
6569

6670
@Getter
6771
@Setter
@@ -143,6 +147,9 @@ public class PeerConnection {
143147

144148
public void setChannel(Channel channel) {
145149
this.channel = channel;
150+
if (relayNodes.contains(channel.getInetSocketAddress())) {
151+
this.isRelayPeer = true;
152+
}
146153
this.nodeStatistics = TronStatsManager.getNodeStatistics(channel.getInetAddress());
147154
}
148155

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,17 @@ public void statusCheck() {
5353
if (!isDisconnected) {
5454
isDisconnected = peer.getAdvInvRequest().values().stream()
5555
.anyMatch(time -> time < now - NetConstants.ADV_TIME_OUT);
56+
if (isDisconnected) {
57+
logger.warn("Peer {} get avd message timeout", peer.getInetAddress());
58+
}
5659
}
5760

5861
if (!isDisconnected) {
5962
isDisconnected = peer.getSyncBlockRequested().values().stream()
6063
.anyMatch(time -> time < now - NetConstants.SYNC_TIME_OUT);
64+
if (isDisconnected) {
65+
logger.warn("Peer {} get sync message timeout", peer.getInetAddress());
66+
}
6167
}
6268

6369
if (isDisconnected) {

framework/src/main/java/org/tron/core/net/service/keepalive/KeepAliveService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public void init() {
3535
long lastSendTime = p.getChannel().getLastSendTime();
3636
if (p.getChannel().waitForPong) {
3737
if (now - pingSent > PING_TIMEOUT) {
38+
logger.warn("Peer {} receive pong timeout", p.getInetSocketAddress());
3839
p.disconnect(Protocol.ReasonCode.TIME_OUT);
3940
}
4041
} else {

0 commit comments

Comments
 (0)