[Lightning-dev] Peer selection

ZmnSCPxj ZmnSCPxj at protonmail.com
Wed Dec 13 12:53:52 UTC 2017


Good morning Stan,

>How to I discover nodes - is there any UI to see nodes currently
>running on the network ?

There are no UIs to my knowledge. Current LN programs keep track of this in their databases, although each one varies in detail. Presumably their individual main developers know how to extract this information.

My understanding is that network bootstrap involves some LN nodes being discoverable via DNS, then your node will connect to them, request node gossip, then it (if you use some kind of auto-pilot channeling system like what lnd has) will select from the node information it acquires to select some nodes to connect and channel to.

Note a precision, there is a difference between "connect" and "channel".  To connect, means only that you contact them over the network and consumes only bandwidth and some small amount of CPU power on your node.  To channel, means to commit some bitcoins to a payment channel between you.

>>>How do I find out if someone wants to connect to me?
>>The node connects to yours and sends channel funding messages.
>
>In this case there is some kind of an UI where I can accept or reject - correct?
>Or I auto-accept everyone that connects to me?

None.  You auto-accept incoming channel requests.  You might, if you are up to it, program your node to reject some nodes via any heuristic you choose, but you would have to implement that yourself.  I know of no current LN software that has or intends to have such a feature, as there are little downside to accepting all channels --- you only spend less than a kilobyte of storage for each newly-opened channel --- while the upside is that a channel to you is a potential route which you can charge for, or a route you can receive funds through.

>>If you intend to connect for the purpose of becoming a hub and earning routing fees, if you have some onchain bitcoins you can afford to invest, then it is to your interest to
>channel with relatively new and low-connectivity nodes.
>
>If I become a hub, how much to I earn, approximately in routing fees?
>Is it a percentage of transactions? Are routing fees the same for all
>hubs?

Each node indicates as part of its information a "fixed fee" and a "proportional fee".  The "fixed fee" is imposed per successful routing attempt, while the "proportional fee" is a ratio of the value traveling through the node when it is on the route.  It is expected that there will be many nodes through which  people can route, so there will be much competition and eventually the system will settle to a state where most nodes charge the same low fee.

>If I am connecting to the network and see many hubs - how can I select
>which hub to connect to? Is there any performance/reputation info
>available for any hub?

There are none.  Presumably your auto-channeling program will gather statistics and other information to make some guesses on which nodes have good performance.

Note that, there is nothing that specially privileges hubs, and this is deliberate.  Any node can become a hub without permission or special treatment of the network, if by "hub" we mean "node with high number of channels".  Indeed, even the DNS bootstrap, to my knowledge, should only be used to gather initial node gossip to acquire some *other* nodes that can potentially be channeled to.

Regards,
ZmnSCPxj
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20171213/6bfeed80/attachment.html>


More information about the Lightning-dev mailing list