@cypherdoc Thanks for that link, was very enlightening. I think it's given me another thought for extending xthinblocks for maybe a phase 3. We could use "connect-thinblock-relay" for a true replacement to matt's relay network. In fact it wouldn't just replace but be faster and better. I think, from what I've read so far we are already close, maybe even faster already, or slightly slower. Matt's relay network seems to be variable in how much data gets sent and can send data the other side doesn't need, sometimes a lot of it. I have to look more deeply at the protocol but don't want to spend much time there either since I think we have the basis for we need to make it even better and of course fully decentralized. Basically the only thing we don't do better is that we use inv/getdata to get our blocks. So if we had a node "connect-thinblock-relay", they would be signalling to us to just send us a thinblock as soon as we received a block, rather than having to inv/getdata. That does two things, one saves time, two does away with the need for a bloom filter. The downside is the other node would have to maintain a mempool big enough to make sure it has every tx it needs to build the block, otherwise they would have to re-request.
Here are a few interesting snips from matt's relay website.
* The relay nodes do not follow the standard inv-getdata-tx/block flow,
but instead relay transactions/blocks immediately after they have done
their cursory verification.
They do keep some track of whether or not
your nodes claim to have seen the transactions/blocks before relaying,
but you may see transactions/blocks being sent which you already have
and have not requested, if this is a problem for you due to bandwith
issues, you should reconsider your bandwith constraints and/or are
peering with too many nodes.
* The relay nodes will all relay among themselves very quickly, so
there is no advantage to peering with as many relay nodes as you can
find, in fact, the increased incoming bandwidth during block relay
spikes may result in higher latency for your nodes.
*
The relay nodes are NOT designed to ensure that you never miss data,
and may fail to relay some transactions/blocks. The relay nodes are NOT a
replacement for having peers on the standard P2P network, nor should you
rely on it as your only fast block relay method.