Skip to content

Commit dcbe050

Browse files
committed
optimizing the logic of fast forward node
1 parent 5294a72 commit dcbe050

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ public class BlockMsgHandler implements TronMsgHandler {
4141

4242
private int maxBlockSize = BLOCK_SIZE + 1000;
4343

44-
private int threshold = 3;
45-
4644
private boolean fastForward = Args.getInstance().isFastForward();
4745

4846
@Override
@@ -103,12 +101,12 @@ private void processBlock(PeerConnection peer, BlockCapsule block) throws P2pExc
103101
}
104102

105103
Item item = new Item(blockId, InventoryType.BLOCK);
106-
if (peer.isFastForwardPeer()) {
104+
if (fastForward || peer.isFastForwardPeer()) {
107105
advService.addInvToCache(item);
108106
}
109107

110108
if (fastForward) {
111-
if (tronNetDelegate.getHeadBlockId().getNum() - block.getNum() > threshold) {
109+
if (block.getNum() < tronNetDelegate.getHeadBlockId().getNum()) {
112110
logger.warn("Receive a low block {}, head {}",
113111
blockId.getString(), tronNetDelegate.getHeadBlockId().getString());
114112
return;

src/main/java/org/tron/core/net/service/AdvService.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ synchronized public void addInvToCache(Item item) {
102102

103103
synchronized public boolean addInv(Item item) {
104104

105-
if (fastForward) {
105+
if (fastForward && item.getType().equals(InventoryType.TRX)) {
106106
return false;
107107
}
108108

@@ -252,7 +252,6 @@ synchronized private void consumerInvToSpread() {
252252

253253
List<PeerConnection> peers = tronNetDelegate.getActivePeer().stream()
254254
.filter(peer -> !peer.isNeedSyncFromPeer() && !peer.isNeedSyncFromUs())
255-
.filter(peer -> !peer.isFastForwardPeer())
256255
.collect(Collectors.toList());
257256

258257
if (invToSpread.isEmpty() || peers.isEmpty()) {
@@ -310,6 +309,9 @@ public int getSize(PeerConnection peer) {
310309

311310
public void sendInv() {
312311
send.forEach((peer, ids) -> ids.forEach((key, value) -> {
312+
if (peer.isFastForwardPeer() && key.equals(InventoryType.TRX)) {
313+
return;
314+
}
313315
if (key.equals(InventoryType.BLOCK)) {
314316
value.sort(Comparator.comparingLong(value1 -> new BlockId(value1).getNum()));
315317
}

0 commit comments

Comments
 (0)