Core Lightning — Lightning Network implementation focusing on spec compliance and performance
Go to file
Rusty Russell 4c9a9f8982 state: return status of current command.
We temporarily move effect to the end of the arg list: we'll get rid
of it eventually.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2016-01-22 06:41:46 +10:30
bitcoin pull_bitcoin_tx: allocate outputs off tx itself. 2016-01-22 06:41:46 +10:30
ccan ccan: update and add more. 2016-01-22 06:41:45 +10: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 state: return status of current command. 2016-01-22 06:41:46 +10:30
test-cli bitcoin/tx: move bitcoin_tx_from_file() to test-cli, expose bitcoin_tx_from_hex() 2016-01-22 06:41:46 +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 Move pkt.c into test-cli. 2016-01-22 06:41:45 +10:30
close_tx.h header cleanup: sort include lines into alpha order, after config.h 2016-01-22 06:38:08 +10:30
commit_tx.c Move pkt.c into test-cli. 2016-01-22 06:41:45 +10:30
commit_tx.h header cleanup: sort include lines into alpha order, after config.h 2016-01-22 06:38:08 +10:30
find_p2sh_out.c source cleanup: sort include lines into alpha order 2016-01-22 06:38:08 +10:30
find_p2sh_out.h header cleanup: sort include lines into alpha order, after config.h 2016-01-22 06:38:08 +10:30
funding.c protocol: increase HTLC precision to 1/1000 satoshi. 2015-09-24 15:00:47 +09:30
funding.h header cleanup: sort include lines into alpha order, after config.h 2016-01-22 06:38:08 +10:30
LICENSE licensing: Make license explicit. 2016-01-22 06:41:46 +10: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 names.h/names.c: wrappers to get name for states/inputs. 2016-01-22 06:41:46 +10:30
names.c names.h/names.c: wrappers to get name for states/inputs. 2016-01-22 06:41:46 +10:30
names.h names.h/names.c: wrappers to get name for states/inputs. 2016-01-22 06:41:46 +10:30
opt_bits.c opt_bits: parsing routines for 'bits' == 100 satoshi. 2015-06-07 13:52:04 +09:30
opt_bits.h header cleanup: sort include lines into alpha order, after config.h 2016-01-22 06:38:08 +10:30
overflows.h header cleanup: sort include lines into alpha order, after config.h 2016-01-22 06:38:08 +10:30
permute_tx.c source cleanup: sort include lines into alpha order 2016-01-22 06:38:08 +10:30
permute_tx.h header cleanup: sort include lines into alpha order, after config.h 2016-01-22 06:38:08 +10:30
protobuf_convert.c source cleanup: sort include lines into alpha order 2016-01-22 06:38:08 +10:30
protobuf_convert.h header cleanup: sort include lines into alpha order, after config.h 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: add _THEYCOMPLETED states to reflect receiving PKT_OPEN_COMPLETE 2016-01-22 06:41:46 +10:30
state.c state: return status of current command. 2016-01-22 06:41:46 +10:30
state.h state: return status of current command. 2016-01-22 06:41:46 +10:30
version.c source cleanup: sort include lines into alpha order 2016-01-22 06:38:08 +10:30
version.h header cleanup: sort include lines into alpha order, after config.h 2016-01-22 06:38:08 +10: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.