!#%(&!@#)(!@&#%)!(@#%&!@#)(%&!@#)(%&!@#()%&!@#)(%&!@#)(%&!@)#(%&!)@(#%&!#@)(%&!@#)(%&!#@)(%&!@#)(%&!#)@(&%
Silly forum just deleted my follow-up post because I posted less than 6 minutes ago. GRR.
Anyway - just a thought that struck me:
Perhaps getheaders and getblocks is intended one day to be passed between nodes?
For example:
You connect to node 1. You send getheaders.
Node 1 says "wtf I dunno!" and passes it along to Node 2.
Node 2 needs to know your protocol version, because you're not connected to it.
Node 2 responds, and node 1 passes it back to you.
Who knows. I'm newb
.
But in getblocks, it's definitely OK to set it to your negotiated protocol version. I do this, and I manage to download the entire blockchain every time with no problems.