Core Lightning — Lightning Network implementation focusing on spec compliance and performance
Go to file
Rusty Russell 4dafeba857 Makefile: depend on headers.
A halfway house between the horror of dynamic generation and the fail of
making everything depend on every header.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2016-01-22 06:38:08 +10:30
bitcoin locktime: complete the set of conversion functions. 2016-01-22 06:38:08 +10:30
ccan ccan: add ccan/mem. 2015-09-30 16:39:02 +09:30
daemon daemon/jsmn: Add submodule for jsmn. 2016-01-22 06:37:13 +10:30
doc Regenerate PDF. 2015-11-20 06:45:19 +10:30
secp256k1 secp256k1: add "ignored" files. 2015-09-30 16:39:02 +09:30
test test_onion.py: drop repeated sha calculation 2015-10-07 13:22:44 +10:00
test-cli Force -walletbroadcast=1 for tests. 2016-01-22 06:38:08 +10:30
.gitignore Version number, name, and build details. 2015-08-08 20:45:49 +09:30
.gitmodules daemon/jsmn: Add submodule for jsmn. 2016-01-22 06:37:13 +10:30
close_tx.c protocol: switch to single-funder anchor model. 2015-07-29 16:14:28 +09:30
close_tx.h protocol: switch to single-funder anchor model. 2015-07-29 16:14:28 +09:30
commit_tx.c locktime: nice abstractions for absolute and relative locktimes. 2016-01-22 06:38:08 +10:30
commit_tx.h channel_state: encapsulate funding of channel in one place. 2015-08-07 12:45:30 +09:30
find_p2sh_out.c Sort include lines (ignoring hacky cli test utils). 2015-06-12 12:41:28 +09:30
find_p2sh_out.h find_p2sh_out: extract helper. 2015-06-09 14:13:21 +09:30
funding.c protocol: increase HTLC precision to 1/1000 satoshi. 2015-09-24 15:00:47 +09:30
funding.h protocol: increase HTLC precision to 1/1000 satoshi. 2015-09-24 15:00:47 +09:30
LICENSE LICENSE: Make MIT licensing clear. 2015-06-12 13:30:39 +09:30
lightning.pb-c.c protocol: rename update_complete_htlc to update_fulfill_htlc. 2015-09-25 11:51:18 +09:30
lightning.pb-c.h protocol: rename update_complete_htlc to update_fulfill_htlc. 2015-09-25 11:51:18 +09:30
lightning.proto protocol: rename update_complete_htlc to update_fulfill_htlc. 2015-09-25 11:51:18 +09:30
Makefile Makefile: depend on headers. 2016-01-22 06:38:08 +10:30
opt_bits.c opt_bits: parsing routines for 'bits' == 100 satoshi. 2015-06-07 13:52:04 +09:30
opt_bits.h opt_bits: parsing routines for 'bits' == 100 satoshi. 2015-06-07 13:52:04 +09:30
overflows.h open-anchor-sig, many fixes for open-channel. 2015-05-29 10:51:16 +09:30
permute_tx.c permute: use BIP69 order. 2015-07-20 14:07:44 +09:30
permute_tx.h permute: use BIP69 order. 2015-07-20 14:07:44 +09:30
pkt.c protocol: rename update_complete_htlc to update_fulfill_htlc. 2015-09-25 11:51:18 +09:30
pkt.h protocol: split message update_remove_htlc into update_timedout_htlc and update_routefail_htlc, remove update_remove_htlc_delay. 2015-09-24 15:02:49 +09:30
protobuf_convert.c locktime: complete the set of conversion functions. 2016-01-22 06:38:08 +10:30
protobuf_convert.h locktime: complete the set of conversion functions. 2016-01-22 06:38:08 +10:30
README.md README.md: A few more details about what we're doing. 2015-10-24 14:41:10 +10:30
state_types.h state: use INPUT_RVALUE instead of CMD_SEND_HTLC_FULFILL during closing. 2015-09-25 11:51:19 +09:30
state.c test_state_coverage: test all accept_pkt failure paths. 2015-09-29 09:47:56 +09:30
state.h state: Allow CMD_CLOSE at any time. 2015-09-25 11:51:19 +09:30
version.c Version number, name, and build details. 2015-08-08 20:45:49 +09:30
version.h Version number, name, and build details. 2015-08-08 20:45:49 +09:30

Lightning Protocol Reference Implementation

In this repository we're developing a reference implementation of bitcoin lightning (see: http://lightning.network which proposed the original "lightning network").

The first step was to develop a wire protocol for nodes to talk to each other. The wire protocol is documented in lightning.proto (a protobuf definition file). There are command line utilities to create and process various packets in test-cli.

The second step is to create a daemon which uses that protocol to communicate with others to set up channels and make simple payments. This also involves monitoring the blockchain for transactions. This is where development is currently occurring.

Later steps will enhance the protocol to network individual daemons, advertize their IP addresses, publish routes and fees, and use that information to pay specific nodes. These details are currently being hashed out on the mailing list and the IRC channel #lightning-dev on Freenode.

The protocol requires features not currently in bitcoin, so by default it runs on top of the sidechain Elements Alpha. It can be tested with bitcoin (on testnet) with OP_NOP substitution, at the top level Makefile.

Final note: This is very much a testbed and work in progress; expect All The Things to change, all the time.

Welcome aboard!

Rusty.