Opening a tracking issue post #25258
To summarize a few potential strategies:
- It may be beneficial to reduce/eliminate concurrent block fetches from high-bandwidth outbound peers. That’s at tension with the potential block relay speedup for non-listening peers, but at least non-listening peers aren’t as vulnerable to sybil nodes.
- Could reduce number of concurrent to 2, instead of 3, for non-listening only, or both modes, to reduce worst-case overhead/funneling to listening nodes
- Could enable low-bandwidth compact outbound nodes instead by initiating a compact block fetch when a low-bandwidth outbound peer offers a header
- Could add timers/schedules to give every announce attempt a “fair chance” before issuing another
getblocktxn
without unduly slowing down block relay.
A number of these would benefit greatly from a “blockrequests.cpp” style refactor to make this all more understandable.