4

On the testnet and some mainnet there are channels which are disabled, so if you try to route a payment through them it failed with this as an error message. Reading through the RPC commands, it seems you cannot disable your channels. In some cases the node that has a disabled channel is still online, since you can still ping and connect to it.

So How does a node disable a channel, or part of a channel?

Murch
  • 71,155
  • 33
  • 180
  • 600
Oonah
  • 95
  • 6

1 Answers1

2

This is a tricky question as it tackles the difference between what the protocol supports and what implementations provider as an API.

On a protocol level channels are enabled / disabled via an update message on the gossip Protocol. Nodes SHOULD set the disabled flag and send such a message if they are shutting down or turning (shortly) off for maintenance. Similarly they SHOULD enable the channel if the node is going online again. Now gossip messages are rate limited to prevent spam. Thus it could mean that the node is online but the update message is not sent / propagated yet. Your node would refuse to even try to send out a package over a channel which is known to be disabled to the payer node.

You are correct: lightning nodes do not provide a command line api to change the activation state of a channel.

Rene Pickhardt
  • 11,670
  • 8
  • 35
  • 1
    As of v0.13, lnd will provide a command line api to set the activation state of a channel: https://github.com/lightningnetwork/lnd/pull/5033 – Elliott Mar 16 '21 at 17:22