-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
Software Versions
OS : Linux
JVM : Oracle Corporation 1.8.0_161 amd64
Version : 4.8.0
Expected behaviour
When the node has established multiple valid peer connections, it should be able to fetch block data from multiple available peers.
Even if a single peer is disconnected (including random disconnection), the node should automatically switch to other already connected peers to continue block synchronization, ensuring continuity and stability of the sync process.
Actual behaviour
During runtime, the following abnormal behavior was observed:
- The node successfully establishes approximately 30 P2P connections.
- However, during block synchronization, it appears that the node continuously requests blocks from only a single peer, while the other connections are not effectively utilized.
- When this peer is disconnected by the random elimination strategy, the following log is printed:
19:22:47.166 INFO [peerWorker-5] [net](PeerConnection.java:184) Send peer /IP:50816 message type: P2P_DISCONNECT
reason: RANDOM_ELIMINATION
After this connection is terminated, the node does not automatically resume block requests from other already connected peers. The block height stops updating, and the node enters a state where it can no longer continue block synchronization.
Based on logs and observed behavior:
- There appears to be a strong single-peer dependency for block data syncing.
- When the random elimination strategy is triggered, the only actively used peer is disconnected, which raises the question of whether there is an issue with the random elimination strategy.
Frequency
This issue is not consistently reproducible and was not clearly observed in earlier runs.