Tip of the Day - for public node runners
How to help the Lightning Network, running a neutrino node
As many of you already know, Zeus is a LN node based on Neutrino (BIP157).
And with the latest Zeus v.0.8.3 beta1 it introduces a new feature to add and test multiple neutrino peers into your embedded node.
What is Neutrino?
Neutrino is an option in Bitcoin Core that can serve block data to remote LND nodes (mobile especially), so the client do not need to run a full synced bitcoin node.
But the mobile client of Neutrino must have a good time response in order to be able to keep up with the synced blocks. Usually a good ping must be between 50 and 150ms (max 200ms). At 300ms the user will have issues with syncing his node.
So if you go to Settings -> Embedded node -> Peers, now you will have the option to make your own list of good neutrino peers.
To test your neutrino peers, just click on the hourglass icon and will show up the time response to that neutrino peer.
For example this user have a really bad ping to Olympus neutrino node:
Why this proposal?
Because all these mobile nodes like Zeus, Blixt, Breez or any other desktop LN node that run with neutrino needs a closer neutrino peer. This time response do not depend of your internet speed! It depends of the distance / backbone hops taken from the neutrino server up to your device location.
For example:
You are a Zeus user traveling in Indonesia.
Your Zeus node by default connects to btcd.lnolymp.us node located somewhere in US.
That means will have like in the image above a ping of 300+ ms !
That means you will have issues with syncing your Zeus, you cannot see onchain funds, you cannot see LN channels online etc.
So you need a more closer server located somewhere near to Indonesia, to have a lower ping under 200ms.
So what is the proposal?
All public node runners, with a node available in clearnet and willing to help the network, could simply activate their Neutrino by adding 2 lines in their bitcoin.conf file (and restart the node).
Here is more documentation about Neutrino
blockfilterindex=1 peerblockfilters=1
And also have the port 8333 open for that node. If you want to configure it for another port is up to you, but clients must know about that customized port.
Is not really necessary to be attached to a subdomain, it works also to be accessed by IP.
If you want only specific clients to connect to your neutrino, add the line:
discover=0
That will not let random neutrino clients to connect, only those that knows your IP (friends and family).
Activating neutrino in your public node, it doesn't affect your node performance in any way and is totally safe.
You are just delivering blocks info, nothing else.
But you could a lot all the mobile node users that are in remote locations and cannot run a desktop stable node.
Even could be your friends and family that are using these mobile LN nodes, you can provide for them your node IP. This will decentralize even more the Lightning Network.