Skip to content

Commit 6949480

Browse files
authored
Merge pull request #5830 from zeusoo001/f-block-msg-opt
feat(net): optimize block message processing logic
2 parents 8e32f80 + 934e04b commit 6949480

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,18 @@ public void processMessage(PeerConnection peer, TronMessage msg) throws P2pExcep
6161
BlockMessage blockMessage = (BlockMessage) msg;
6262
BlockId blockId = blockMessage.getBlockId();
6363

64+
BlockCapsule blockCapsule = blockMessage.getBlockCapsule();
65+
if (blockCapsule.getInstance().getSerializedSize() > maxBlockSize) {
66+
logger.error("Receive bad block {} from peer {}, block size over limit",
67+
blockMessage.getBlockId(), peer.getInetSocketAddress());
68+
throw new P2pException(TypeEnum.BAD_MESSAGE, "block size over limit");
69+
}
70+
long gap = blockCapsule.getTimeStamp() - System.currentTimeMillis();
71+
if (gap >= BLOCK_PRODUCED_INTERVAL) {
72+
logger.error("Receive bad block {} from peer {}, block time error",
73+
blockMessage.getBlockId(), peer.getInetSocketAddress());
74+
throw new P2pException(TypeEnum.BAD_MESSAGE, "block time error");
75+
}
6476
if (!fastForward && !peer.isRelayPeer()) {
6577
check(peer, blockMessage);
6678
}
@@ -109,18 +121,6 @@ private void check(PeerConnection peer, BlockMessage msg) throws P2pException {
109121
msg.getBlockId(), peer.getInetSocketAddress());
110122
throw new P2pException(TypeEnum.BAD_MESSAGE, "no request");
111123
}
112-
BlockCapsule blockCapsule = msg.getBlockCapsule();
113-
if (blockCapsule.getInstance().getSerializedSize() > maxBlockSize) {
114-
logger.error("Receive bad block {} from peer {}, block size over limit",
115-
msg.getBlockId(), peer.getInetSocketAddress());
116-
throw new P2pException(TypeEnum.BAD_MESSAGE, "block size over limit");
117-
}
118-
long gap = blockCapsule.getTimeStamp() - System.currentTimeMillis();
119-
if (gap >= BLOCK_PRODUCED_INTERVAL) {
120-
logger.error("Receive bad block {} from peer {}, block time error",
121-
msg.getBlockId(), peer.getInetSocketAddress());
122-
throw new P2pException(TypeEnum.BAD_MESSAGE, "block time error");
123-
}
124124
}
125125

126126
private void processBlock(PeerConnection peer, BlockCapsule block) throws P2pException {

0 commit comments

Comments
 (0)