AcceptLND is a channel requests management tool based on policies.
It makes it easy for node operators to set custom and complex requirements without writing a single line of code.
For example, the following policies will only accept channels with a capacity higher than 3M sats and from a node that is hybrid and has zero base fees on all his channels.
policies: - request: channel_capacity: min: 3_000_000 node: hybrid: true channels: zero_base_fees: true
A policy may have conditions which must be met for them to be enforced as well. Some of the things we can do with them are:
- Reject channels from nodes whose median outgoing fee rate is higher than X sats (or lower than X, or between X and Y)
- Set different requirements for public and private channels
- Reject channels from a node that is already connected to you
- Whitelist/blacklist nodes by public key
- Reject channels from nodes that have a high rate of disabled channels
- And much more
Multiple example policies can be found at examples.
Not only it facilitates controlling a node's channels and who you are connected with, but it could also be used to prevent potential attacks that would require certain setups to be performed. For instance, an attack that needs more than one channel opened to the same node could be mitigated with a policy that has
node.channels.together.max = 1
.Source code: https://github.com/aftermath2/acceptlnd
alias
andcolor
would be trivial to add because they are in theGetNodeInfo
RPC method response. I didn't add them because I thought they had no value and could be easily changed, do you think they should be added?min_node_age
, that kind of information is not provided by the LND RPC but can be obtained by checking that the node's oldest channel is at least 103,680 blocks old (not complex neither).node.channels.block_height
field. For example:sudo nano /etc/systemd/system/acceptlnd.service
sudo systemctl enable acceptlnd
andsudo systemctl start acceptlnd
.