Skip to content

Conversation

@amackillop
Copy link
Contributor

@amackillop amackillop commented Jan 12, 2026

Configure lightning-js nodes to not advertise anchor channel support by setting anchor_channels_config to None. This prevents the LSP from attempting to open anchor channels, which require 25,000 sats on-chain reserves that website nodes don't have. Instead, the LSP will automatically negotiate non-anchor channels which don't require on-chain reserves.

This fixes payment failures where website nodes were rejecting inbound anchor channels due to insufficient reserves, causing the LSP's retry with non-anchor channels to fail if the node had already shut down before the LSP could retry.

Testing locally, we can see that Anchor channels are no longer supported and we no longer have channel rejections.

Anchors not supported (see last line in particular):

lightning-node1-1  | 2026-01-13 16:23:30 [level=INFO] Received event: SendWebhook { node_id: PublicKey(ee18a8857993424f0fb498108e461e5ebe74f17021499f4db229d0709b66753a46a4f487ee1427e50f6da82a74696cd3e0989dae690655a848a2b67ad1d5f36f) }
lightning-node1-1  | 2026-01-13 16:23:30 [level=INFO] Sending webhook to MDK
lightning-node1-1  | 2026-01-13 16:23:30 [level=DEBUG] (32) reqwest::connect starting new connection: http://moneydevkit.com:8888/
lightning-node1-1  | 2026-01-13 16:23:30 [level=DEBUG] (24)  Finished noise handshake for connection with 023a75669b70d029b24d9f492170f174be5e1e468e1098b40f4f42937985a818ee
lightning-node1-1  | 2026-01-13 16:23:30 [level=INFO] Received peer Init message from 023a75669b70d029b24d9f492170f174be5e1e468e1098b40f4f42937985a818ee: DataLossProtect: required, InitialRoutingSync: not supported, UpfrontShutdownScript: supported, GossipQueries: not supported, VariableLengthOnion: required, StaticRemoteKey: required, PaymentSecret: required, BasicMPP: supported, Wumbo: supported, AnchorsNonzeroFeeHtlcTx: not supported, AnchorsZeroFeeHtlcTx: not supported, RouteBlinding: supported, ShutdownAnySegwit: supported, DualFund: not supported, Taproot: not supported, OnionMessages: supported, ChannelType: supported, SCIDPrivacy: supported, ZeroConf: supported, Trampoline: not supported, unknown flags: none

Channel open flow (no rejections):

lightning-node1-1  | 2026-01-13 16:23:30 [level=INFO] Need a new channel with peer 023a75669b70d029b24d9f492170f174be5e1e468e1098b40f4f42937985a818ee for 105150080msat to forward HTLCs
lightning-node1-1  | 2026-01-13 16:23:30 [level=DEBUG] (24)  Handling SendChannelReestablish event in peer_handler for node 023a75669b70d029b24d9f492170f174be5e1e468e1098b40f4f42937985a818ee for channel 7dd14fc80e987c6a4889396354e1117c3d53fc00853bf7c82cbba7c72ab7deb7
lightning-node1-1  | 2026-01-13 16:23:30 [level=DEBUG] (24)  Handling SendChannelReestablish event in peer_handler for node 023a75669b70d029b24d9f492170f174be5e1e468e1098b40f4f42937985a818ee for channel 6d4b0bdb9bba907b37d54d2e88d192ca55e1636f911b24e33ef87dd92c87fe09
lightning-node1-1  | 2026-01-13 16:23:31 [level=DEBUG] (24)  Handling SendOpenChannel event in peer_handler for node 023a75669b70d029b24d9f492170f174be5e1e468e1098b40f4f42937985a818ee for channel 80a8423521d8a42da4dbf599b9ff3f19e9e58f9ea27e2c616b0744a8a91a38dc
lightning-node1-1  | 2026-01-13 16:23:31 [level=DEBUG] (24)  Reconnected channel 6d4b0bdb9bba907b37d54d2e88d192ca55e1636f911b24e33ef87dd92c87fe09 with no loss
lightning-node1-1  | 2026-01-13 16:23:31 [level=DEBUG] (24)  Reconnected channel 7dd14fc80e987c6a4889396354e1117c3d53fc00853bf7c82cbba7c72ab7deb7 with no loss
lightning-node1-1  | 2026-01-13 16:23:31 [level=DEBUG] (24)  Received channel_update ChannelUpdate { signature: 30440220733c44e21044a0c9a80069b2c0af5d361ea25cfa3a0917fd6e98237d41a499c902202d63a61e7095055f3b4226635b29d78aea3a9f3f294d8d44ae90f1fd57a8c151, contents: UnsignedChannelUpdate { chain_hash: 06226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f, short_channel_id: 1099585486848, timestamp: 3, message_flags: 1, channel_flags: 0, cltv_expiry_delta: 72, htlc_minimum_msat: 1, htlc_maximum_msat: 70905600, fee_base_msat: 1000, fee_proportional_millionths: 0, excess_data: [] } } for channel 7dd14fc80e987c6a4889396354e1117c3d53fc00853bf7c82cbba7c72ab7deb7.
lightning-node1-1  | 2026-01-13 16:23:31 [level=DEBUG] (24)  Received channel_update ChannelUpdate { signature: 3045022100e960c454ad7522b0b2be4cde70863bd887fc04f82ae882705ee322d5ee6c686202200972ae01a0593519f9708a3ca6482fce4ab7734ab4c32b8b5a6f0e6b8ba78436, contents: UnsignedChannelUpdate { chain_hash: 06226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f, short_channel_id: 1099669438470, timestamp: 1768320980, message_flags: 1, channel_flags: 0, cltv_expiry_delta: 72, htlc_minimum_msat: 1, htlc_maximum_msat: 45000000, fee_base_msat: 1000, fee_proportional_millionths: 0, excess_data: [] } } for channel 6d4b0bdb9bba907b37d54d2e88d192ca55e1636f911b24e33ef87dd92c87fe09.
lightning-node1-1  | 2026-01-13 16:23:31 [level=DEBUG] (27)  Handling SendFundingCreated event in peer_handler for node 023a75669b70d029b24d9f492170f174be5e1e468e1098b40f4f42937985a818ee for channel 80a8423521d8a42da4dbf599b9ff3f19e9e58f9ea27e2c616b0744a8a91a38dc (which becomes fe17f2072c2bd1f04ea6ca7208ed905bd6543c39abd3a034c32b531a6e1bc27c)
lightning-node1-1  | 2026-01-13 16:23:31 [level=INFO] Received funding_signed from peer for channel fe17f2072c2bd1f04ea6ca7208ed905bd6543c39abd3a034c32b531a6e1bc27c
lightning-node1-1  | 2026-01-13 16:23:31 [level=INFO] Persistence of new ChannelMonitor for channel fe17f2072c2bd1f04ea6ca7208ed905bd6543c39abd3a034c32b531a6e1bc27c completed
lightning-node1-1  | 2026-01-13 16:23:31 [level=DEBUG] (24)  Channel is open and awaiting update, resuming it
lightning-node1-1  | 2026-01-13 16:23:31 [level=DEBUG] (24)  Restored monitor updating in channel fe17f2072c2bd1f04ea6ca7208ed905bd6543c39abd3a034c32b531a6e1bc27c resulting in a funding broadcastable, no commitment update and no RAA, with commitment first
lightning-node1-1  | 2026-01-13 16:23:31 [level=INFO] Broadcasting funding transaction with txid 7cc21b6e1a532bc334a0d3ab393c54d65b90ed0872caa64ef0d12b2c07f217fe
lightning-node1-1  | 2026-01-13 16:23:31 [level=DEBUG] (27)  Handling SendChannelReady event in peer_handler for node 023a75669b70d029b24d9f492170f174be5e1e468e1098b40f4f42937985a818ee for channel fe17f2072c2bd1f04ea6ca7208ed905bd6543c39abd3a034c32b531a6e1bc27c
lightning-node1-1  | 2026-01-13 16:23:31 [level=INFO] Received channel_ready from peer for channel fe17f2072c2bd1f04ea6ca7208ed905bd6543c39abd3a034c32b531a6e1bc27c
lightning-node1-1  | 2026-01-13 16:23:31 [level=DEBUG] (24)  Received channel_update ChannelUpdate { signature: 304402204168f124f550f8afdc2cd4da25b9d3cac66e05862eaef7d729914d1e2fc496510220425305fe83a525e73076591adf9b961f0f32e85c6e00286e9c753fde2e32f51d, contents: UnsignedChannelUpdate { chain_hash: 06226e46111a0b59caaf126043eb5bbf28c34f3a5e332a1fc7b2b73cf188910f, short_channel_id: 1099612356611, timestamp: 2, message_flags: 1, channel_flags: 0, cltv_expiry_delta: 72, htlc_minimum_msat: 1, htlc_maximum_msat: 141952500, fee_base_msat: 1000, fee_proportional_millionths: 0, excess_data: [] } } for channel fe17f2072c2bd1f04ea6ca7208ed905bd6543c39abd3a034c32b531a6e1bc27c.
lightning-node1-1  | 2026-01-13 16:23:31 [level=INFO] New channel fe17f2072c2bd1f04ea6ca7208ed905bd6543c39abd3a034c32b531a6e1bc27c with counterparty 023a75669b70d029b24d9f492170f174be5e1e468e1098b40f4f42937985a818ee has been created and is pending confirmation on chain.
lightning-node1-1  | 2026-01-13 16:23:31 [level=INFO] Channel fe17f2072c2bd1f04ea6ca7208ed905bd6543c39abd3a034c32b531a6e1bc27c with counterparty 023a75669b70d029b24d9f492170f174be5e1e468e1098b40f4f42937985a818ee ready to be used.

Configure lightning-js nodes to not advertise anchor channel support
by setting anchor_channels_config to None. This prevents the LSP from
attempting to open anchor channels, which require 25,000 sats on-chain
reserves that website nodes don't have. Instead, the LSP will
automatically negotiate non-anchor channels which don't require
on-chain reserves.

This fixes payment failures where website nodes were rejecting inbound
anchor channels due to insufficient reserves, causing the LSP's retry
with non-anchor channels to fail if the node had already shut down
before the LSP could retry.
@amackillop amackillop marked this pull request as ready for review January 13, 2026 16:30
@amackillop amackillop merged commit 9544186 into main Jan 13, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants