It's 5 days since I opened my first (and unique, for now) lightning channel. Unfortunately it seems that only me have funded the channel while the counterparty didn't, so the channel it's actually a unidirectional channel. Indeed the output of the command lightning-cli listchannelsshows direction: 1 (I'm running the c-lightning implementation). Is it normal that the counterparty doesn't have funded the channel yet after 5 days or I should think I've misconfigured my channel?


Channel funding (and the distribution of funds) is determined at the time of channel opening. Once opened, a party cannot ‘add funds’ to the channel, this would require opening a new channel.

If you opened the channel and did not specify that some number of sats should be pushed to the remote node at the time of opening, then the channel will open with the entirety of the balance on your side. Note that pushing sats to the remote node is equivalent to making a payment to the remote node.

If you send a payment using the channel you opened, you will gain an ~equivalent amount of incoming capacity.

The current BOLT spec does not include multi-party funding, but this feature is planned for future updates to the spec.

  • So, as I thought, I misconfigured the channel. But now the point is: how can I open a bidirectional channel and start to forward payments? Where can I specify that "some number of sats should be pushed to the remote node at the time of opening"? The 'fundchannel' command of lightning-cli doesn't seem to have that option
    – dc_Bita98
    Nov 12 '19 at 22:51
  • At this point in time, every channel starts unidirectional (unless you push funds to the remote node); once you make a payment it will become bidirectional. Keep in mind: pushing sats to the remote balance will mean you are giving those sats to the remote node. I’m guessing you have the goal of earning routing fees, but the reality of the current network is that unless you are a well positioned and highly liquid node, you will likely not route payments. Certainly, any routing fees you could earn would be less than whatever amount of sats you push to the remote node at channel opening.
    – chytrik
    Nov 12 '19 at 23:59
  • I am more familiar with lnd, which allows you to specify a number of sats to push to the remote node during channel creation, lightning-cli may not have that option. In any case, you’d be better served by just making a normal payment to send some sats to the other side of the channel. At least that way, you can potentially receive something for this payment, rather than just giving sats to the remote node for no reason.
    – chytrik
    Nov 13 '19 at 0:05
  • It is worth mentioning that by using the push_msat part of the protocol was intended for testing only, and wasn't supposed to be exposed to the end user at all. You're basically giving away some of your funds to a complete stranger. The canonical way to balance a channel in c-lightning is to have somebody open an incoming channel and then using the rebalance plugin (github.com/lightningd/plugins/tree/master/rebalance) to balance those channels by paying yourself along a circular route.
    – cdecker
    Nov 13 '19 at 11:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.