Let's start with disclaimer: I'm a huge fan of LN. I've been wishing for something similar since ~2012 (unfortunately I didn't have money to buy :/ ). I'm also very cautious of increasing the block size limit because of the cost of nodes.
So recently, I decided to try out LN on testnet. I started looking around and found that there are three implementations of LN: lnd written in Go, Eclair written in Java and C-lightning written in C, obviously.
My first step was to choose which one of them is the best fit. The intention is to run it on main net one day, so I decided to choose same constraints I would have chosen if running on main net.
I looked at lnd and found out it requires btcd – re-implementation of Bicoin Core. This is something many devs frown upon, but I was thinking "maybe they use libbitcoin?" I didn't found any information on this, so I decided to not risk it. Anyway, that would mean installing another node on my existing 100€ server, which barely handles one node with Electrumx.
Eclair was immediately out of question because of memory requirements of Java.
C-lightning sounded dangerous. C is very bad language for writing security-critical software. "Why nobody wrote it in Rust?" was my first thought. I learned only recently that a Rust implementation exists – one that's too far from complete and looking at the code, it doesn't seem very idiomatic…
So C-lightning was also out of question.
Or not. I was thinking "maybe they have great test suite. After all, Bitcoin Core is in C++ (just as terrible as C) and it works". That's probably the only choice for such a cheap node I have anyway.
So I cloned it and compiled. This was surprisingly easy. No messing with
./configure, compiled pretty fast. I proceeded as instructions said and connected it to freshly-synchronized bitcoind. It seemed to work, so I opened a connections to two random nodes and created channels.
Then I was thinking that sending funds is boring, receiving is better. I quickly found out that those nodes I connected to put 0 satoshis into the channel, so they wouldn't be able to receive my payment.
So I tried to connect directly to the node with my phone using Eclair. It failed. I seemed to be out of luck.
Then I realized, I could receive money if I send first. Donating would be pointless, so I decided to simply buy an article from Yalls using my node. It turned out Yalls had screwed configuration, so I couldn't send them any payment. I tried to buy virtual coffee and the routing was giving "too expensive" error even for 5% fees.
During this testing, I hit few Segfault bugs – those are bugs that can also be serious security vulnerabilities and their presence demonstrated that C-lightning is doing well exactly what a typical C program is good at: crashing.
So I gave up for now. As you can see, there's a long way to go, so don't get over-hyped. And certainly do not put a big amount of money into LN!.
I hope this will change some day. It seems to be solvable, it just needs time.
TL;DR: Tried LN, it has lot of problems, had to give up. But I still believe in it's future.