With the current version of c-lightning is it possible to open a bidirectional channel funded by both parties? I managed to open a channel with fundchannel command, but that seems to be a unidirectional channel, since only I provided the funds. I don't understand how the entire network can work if we can open channels funded by just one party.
Once you send a payment through your channel, it will become bidirectional. Multiparty channel funding is planned for a future BOLT spec. From @cdecker's comment on your other question: 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.– chytrikNov 13, 2019 at 22:40
So basically the only way now is to wait for an incoming channel and then use the rebalance plugin. Thank you for your patience, really appreciate it– dc_Bita98Nov 14, 2019 at 6:08
The rebalance plugin isn’t entirely necessary, if someone opens a channel to you you’ll have incoming capacity, rebalancing plugin or not. Once you send a payment you will have receiving capacity as well.– chytrikNov 14, 2019 at 6:31
The incoming channels are those showed by the listchannels command, aren't they?– dc_Bita98Nov 14, 2019 at 6:33
No you have to use listfunds or listpeers. The listchannels command lists publicly known channels on the network.– Rene PickhardtNov 14, 2019 at 10:38
There seems to be a mix in notation. Payment channels on lightning are bidirectional by design. However that does not mean that funds can always flow on both directions. Currently channels are funded by one party an as such can not receive funds after opening. As was mentioned in the comment what you mean is called a dual funded channel.
As soon as you use a channel to make a payment the balance changes and you will be able to receive funds. Since the lightning network is in use it is fair to assume that most channels by now are somewhat balanced in the sense they can send and receive. So at this time it might just be a matter of opening one channel t be able to pay some party on the network and thus have the ability to receive money again. There are services that reimburse you onchain once you pay their invoice. This can be used to have a balanced channel.
In deed in the very beginning with the channel design there was the cold start problem. But apparently this has been overcome. Though I agree with you it is hard to imagine that we have been able to do so without dual funded channels.
BTW lisa neigut is pretty far of implementing the dual funded channel protocol for c Lightning. So clightning will probably be the first implementation supporting dual funded channels.
I was wrong about a lot of things concerning the lightning network before your explanation, Thank you so much, you went very deep in the topic. Nov 14, 2019 at 15:32