Skip to content

Commit 5a70a07

Browse files
committed
fet(net): olve the problem of reporting 'no need sync'
1 parent a5f9c6f commit 5a70a07

3 files changed

Lines changed: 10 additions & 1 deletion

File tree

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ public void processMessage(PeerConnection peer, TronMessage msg) throws P2pExcep
3939

4040
check(peer, chainInventoryMessage);
4141

42+
peer.setFetchAble(false);
43+
4244
peer.setNeedSyncFromPeer(true);
4345

4446
peer.setSyncChainRequested(null);
@@ -85,6 +87,7 @@ public void processMessage(PeerConnection peer, TronMessage msg) throws P2pExcep
8587
if ((chainInventoryMessage.getRemainNum() == 0 && !peer.getSyncBlockToFetch().isEmpty())
8688
|| (chainInventoryMessage.getRemainNum() != 0
8789
&& peer.getSyncBlockToFetch().size() > NetConstants.SYNC_FETCH_BATCH_NUM)) {
90+
peer.setFetchAble(true);
8891
syncService.setFetchFlag(true);
8992
} else {
9093
syncService.syncNext(peer);

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
@@ -67,6 +67,10 @@ public class PeerConnection {
6767
@Setter
6868
private volatile boolean isRelayPeer;
6969

70+
@Setter
71+
@Getter
72+
private volatile boolean fetchAble;
73+
7074
@Getter
7175
@Setter
7276
private ByteString address;

framework/src/main/java/org/tron/core/net/service/sync/SyncService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ public class SyncService {
5050
private Map<BlockMessage, PeerConnection> blockJustReceived = new ConcurrentHashMap<>();
5151

5252
private long blockCacheTimeout = Args.getInstance().getBlockCacheTimeout();
53-
private Cache<BlockId, PeerConnection> requestBlockIds = CacheBuilder.newBuilder().maximumSize(10_000)
53+
private Cache<BlockId, PeerConnection> requestBlockIds = CacheBuilder.newBuilder()
54+
.maximumSize(10_000)
5455
.expireAfterWrite(blockCacheTimeout, TimeUnit.MINUTES).initialCapacity(10_000)
5556
.recordStats().build();
5657

@@ -206,6 +207,7 @@ private void startFetchSyncBlock() {
206207
HashMap<PeerConnection, List<BlockId>> send = new HashMap<>();
207208
tronNetDelegate.getActivePeer().stream()
208209
.filter(peer -> peer.isNeedSyncFromPeer() && peer.isIdle())
210+
.filter(peer -> peer.isFetchAble())
209211
.forEach(peer -> {
210212
if (!send.containsKey(peer)) {
211213
send.put(peer, new LinkedList<>());

0 commit comments

Comments
 (0)