Lightning First Strike: Christian Bought a Cat

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, which was mined in test block 928335.

Lightning First Strike: Christian Bought a Cat

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. 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, which was mined in test block 928335. After a single confirmation, he paid the invoice with a 100 satoshi transfer. Afterward, he accessed the link to find his cat picture. 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. 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 of a lightning routing algorithm called Flare. 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. The low production value fits with the ASCII art.

Core Lightning (previously c-lightning) is a lightweight, highly customizable and standard compliant implementation of the Lightning Network protocol.

© 2023 Core Lightning
All rights reserved.

Discussion Forum

The official Core Lightning forum is coming soon!

BuildonL2 Community

The official BuildOnL2 community lives at community.corelightning.org. Join us and build the future of bitcoin on lightning.

Mailing List

For general discussions about CLN implementation, use c-lightning@lists.ozlabs.org. For the Lightning Network, use lightning-dev@lists.linuxfoundation.org

Telegram

Community-driven telegram group where most of the node operators hang out. Go to https://t.me/lightningd to join.

Discord

Community-driven discord server where the devs flock together. Go to https://discord.gg/w27fMFESMN to join.

Internet Relay Chat

Don't hesitate to reach out to us on IRC at #lightning-dev @ libera.chat, #c-lightning @ libera.chat.