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

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>