-
Notifications
You must be signed in to change notification settings - Fork 132
Description
GetBlocks requires a fetch timeout for each block.
Below, we simulated adverse conditions by connecting 10 clients to one server and applying a speed limit.
2025/04/09 17:24:44 PROGRESS: [6.48 6.52 0.36 5.92 6.73 6.07 6.73 6.07 3.15 1.06]
2025/04/09 17:24:45 PROGRESS: [6.48 6.73 0.36 5.92 6.77 6.11 6.73 6.27 3.15 1.06]
2025/04/09 17:24:46 PROGRESS: [6.48 6.92 0.36 6.07 6.96 6.15 6.73 6.46 3.15 1.06]
2025/04/09 17:24:47 PROGRESS: [6.5 6.94 0.36 6.27 6.96 6.27 6.73 6.48 3.15 1.06]
2025/04/09 17:24:48 PROGRESS: [6.69 6.94 0.36 6.3 6.96 6.46 6.92 6.48 3.15 1.06]
There are clients (0.36, 3.15, 1.06) that are stuck and unable to download.
When executing GetBlocks, if it takes too long to fetch a specific block, it will not be cancelled and will just hang.
To improve this situation, should stop and find another peer.
boxo version : v0.29.1
Specifically, the problem occurred when there was one server (bootstrap node) that held the files and hundreds of clients tried to download the files simultaneously.
Some clients will successfully download, but most will get stuck and not be able to download.
I expected the node that received it first would forward the block to other nodes, but that didn't happen.
periodicSearchDelay is also useless if block reception has already started.