<div dir="ltr">The obvious problem with having the whole network use the same set of beacons at the same time is that those nodes will get slammed. A possible solution is to have each user pick their own set of beacons (at random), but make the beacon set large enough so that any two users are likely to share a few. That way the all of nodes would share the load roughly evenly.<div><br></div><div>The size needed should be something on the order of the square root of the number of nodes. Some math could be done to see what set size would be needed to have a given probability of two users having an intersection of at least a given size.<div><br></div><div>If you went with that you wouldn&#39;t have to worry about the extra mess of making sure everyone has consensus on the official beacon set.</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Sep 20, 2015 at 7:16 PM, Rusty Russell <span dir="ltr">&lt;<a href="mailto:rusty@rustcorp.com.au" target="_blank">rusty@rustcorp.com.au</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Amos,<br>
<br>
   I&#39;m delighted that someone else is thinking about routing!<br>
<br>
I like the information hiding features, but I don&#39;t think this will<br>
scale if everyone floods the network before sending a transaction.<br>
<br>
I do, however, have an alternate scheme which is something of a<br>
middleman, which I&#39;d appreciate your feedback on.<br>
<br>
We regularly choose a dozen &quot;beacon&quot; nodes at random (using proximity to<br>
the SHA of latest block hash or something).  Everyone propagates the<br>
cheapest route to &amp; from those nodes (which is pretty efficient, similar<br>
to your scheme).<br>
<br>
To receive a payment, B picks a few beacon nodes at random and sends<br>
those routes (beacons -&gt; B) to A.  Presumably A knows its route to all<br>
the beacon nodes and thus can choose the best.<br>
<br>
There are some twisty details here:<br>
<br>
1) How many beacon nodes?<br>
   12, and increase on a log scale with network size.  That size can<br>
   be derived from previous beacons.<br>
<br>
2) How long between selection and a beacon becoming active?<br>
   10 blocks.  That gives time for others to connect to beacon node.<br>
<br>
3) How long before a beacon node is invalid?<br>
   No idea.  Let&#39;s keep a day&#39;s worth for the moment?<br>
<br>
4) How to avoid fake beacons?<br>
   Require a signature attached to an unspent bitcoin TX from before<br>
   beacon selection?  That TXID is actually what competes to be close<br>
   to the beacon selector.<br>
<br>
5) How to update beacon routing?<br>
   Particularly for fee changes, this is important.  Best effort,<br>
   with ratelimiting.  I hope eventually we&#39;ll have reasonable traffic<br>
   models so a node can say &quot;I&#39;m going to ramp up/down my fees for<br>
   this long at this rate&quot; and have a reasonable chance that it&#39;s true.<br>
<br>
Cheers,<br>
Rusty.<br>
PS.  For the immediate term, we&#39;ll use a global comms mechanism like<br>
     IRC, but that&#39;s just a prototype hack.<br>
<div><div class="h5"><br>
Amos Bairn &lt;<a href="mailto:eylrid@gmail.com">eylrid@gmail.com</a>&gt; writes:<br>
&gt; Here is a scheme I thought of for flood based route finding. If it can be<br>
&gt; pulled off it would allow efficient route finding while keeping the shape<br>
&gt; of the network hidden, as well as giving onion like anonymity.<br>
&gt;<br>
&gt; After writing it up a realized that it has a trivial denial of service<br>
&gt; attack, that could render it a non-starter.<br>
&gt;<br>
&gt; I&#39;m throwing it out there anyway, because this could have significant<br>
&gt; potential if the DoS problem can be solved.<br>
&gt;<br>
&gt; <a href="https://github.com/Eylrid/ionization/blob/master/ionization.mediawiki" rel="noreferrer" target="_blank">https://github.com/Eylrid/ionization/blob/master/ionization.mediawiki</a><br>
</div></div>&gt; _______________________________________________<br>
&gt; Lightning-dev mailing list<br>
&gt; <a href="mailto:Lightning-dev@lists.linuxfoundation.org">Lightning-dev@lists.linuxfoundation.org</a><br>
&gt; <a href="https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev" rel="noreferrer" target="_blank">https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev</a><br>
</blockquote></div><br></div>