[Lightning-dev] Blockstream Successfully Tests End-to-End Lightning Micropayment Transaction

Christian Decker decker.christian at gmail.com
Wed Oct 5 16:00:18 UTC 2016


Hi everybody

The following blog post describes our recent use of an v0.5 C lightning
prototype, showcasing a completed transaction that included invoicing,
multi-hop payment, and item delivery. The included links provide additional
content and supporting code, as well as a short video. This will be going
live on Blockstream’s blog shortly.

Regards,
Rusty Russell
Dr. Christian Decker



Lightning First Strike: Christian Bought a Cat
Rusty Russell, October 5, 2016
https://blockstream.com/blog/

This story of feline acquisition begins with the demonstration of v0.5 of
the C lightning prototype, a lightning-fast micropayment system we've been
working on here at Blockstream (see
https://github.com/ElementsProject/lightning). To test the impending
prototype, we set up a web server to create invoices for test bitcoin
payments over the lightning network, and in return to offer a cat, or at
least an ASCII cat picture.

Dr. Christian Decker, another Blockstream developer working with me,
purchased the feline picture using 0.01 test bitcoin to open a lightning
channel with the server (see
http://tbtc.blockr.io/tx/info/c909f1fb5e971e32ae20e34cf6cf766f7237bfadf75aa6646a42063b9acba82b),
which was mined in test block 928335 (see
http://tbtc.blockr.io/block/info/928335). After a single confirmation, he
paid the invoice with a 100 satoshi transfer. Afterward, he accessed the
link to find his cat picture (see
http://128.199.80.48/?43744e221d794dcc0e61f8a757fa0346). He discovered it
was an ASCII picture, with a nice bonus. Two cats! Christian promptly
opened another node, connected to the first node, and bought a second copy
of the cat picture by routing through the previous node.

What Happened Behind The Scenes?

A Digital Ocean server runs Apache, bitcoind, and lightningd. When
accessed, a CGI script calls 'lightning-cli invoice 100000' to create an
invoice, which is presented to the user (see
https://github.com/rustyrussell/lightning-cat/blob/cc206788c552e2f7feb616170178c7ec38ccedb5/catsearch.sh).
The user clicks through a unique link, and if 'lightning-cli listinvoice'
indicates that the invoice was paid, the script presents the picture.

This is the first end-to-end test of a lightning micropayment network,
including invoicing, multi-hop payment, and item delivery. It is very
different from Acinq's recent simulation (see
http://www.coindesk.com/bitcoins-lightning-network-milestone-acinq-routing/)
of a lightning routing algorithm called Flare (See
http://bitfury.com/content/5-white-papers-research/whitepaper_flare_an_approach_to_routing_in_lightning_network_7_7_2016.pdf).
Their work shows how, by way of simple analogy, one can create a streetmap
to get from A to B in an efficient way, while the test we've demonstrated
here with v0.5 of the C lightning prototype has us actually walking that
path on the street.

What's Next?

We found a few bugs in corner cases and hit some known FIXMEs, but also
made lightningd more robust against misconfiguration. There are a few rough
edges that we'd still like to smooth and some documentation that we'd like
to write before the 0.5 release. Then, we want to create libraries to allow
web developers to play with constructing their own cat picture stores!

In the meantime, here's a short video that shows this working (see
https://asciinema.org/a/ergldrzd43j08klix08hf9yl3). The low production
value fits with the ASCII art.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20161005/05e0db9d/attachment.html>


More information about the Lightning-dev mailing list