Hey. This idea sounds quite interesting. It'd be helpful to see some more numbers to evaluate it. - How much bandwidth is consumed by redundant tx INVs currently? What is this as a % of overall bandwidth usage? - How would filtering txs through N=2 links affect network propagation? This probably requires simulation to determine. - Do you propose setting filters on inbound peers as well? On Mon, Apr 2, 2018 at 3:18 PM, Gleb Naumenko via bitcoin-dev < bitcoin-dev@lists.linuxfoundation.org> wrote: > Hi all, > I have a couple of ideas regarding transaction relay protocol and wanted > to share it with and probably get some feedback. > > I did some emulation and simulation and found out that around 90% of INV > messages sent by public-IP nodes are idle (duplicate), obviously because > each node creates 8 connections. I also realized that sending INV messages > is a significant part of the overall bandwidth consumed by a public-IP > node. At a larger scale, this will result in people not able to run a > public-IP node. > > My idea is in some sense similar to BIP37 but applied to public-IP nodes. > Here I want to emphasize that all the nodes will still receive *all* of the > transactions. A new protocol should also keep the same zero-trust, > robustness, decentralization guarantees and latency. > > Idea: while joining the network, a new node agrees on some filter with > each of 8 nodes it connects to. So that NewNode <-> Node_A will be used to > relay only a subset of transactions, NewNode <-> Node_B for another subset. > This will significantly decrease the redundancy. > > To keep the guarantees, I would keep some redundancy (for example, each > transaction INV is sent over 2 links). > > To make it robust to attacks, I have 2 extensions in my mind: > 1. Set reconciliation (for a subset of transactions) with *other* nodes. > Getting a bloom filter of a subset of the mempool transactions from Node_B > may help to figure out whether Node_A is malicious, very slow, etc. > 2. Rotating the filters every N minutes (N < 10) > > I can see some issues with latency here, but I believe this problem has a > solution. > > Feedback is appreciated! > > If you want to look at a draft of the proposal — please let me know. > If there were any similar ideas — please let me know. > > Best, > Gleb > > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev > >