Core Lightning — Lightning Network implementation focusing on spec compliance and performance
Find a file
Rusty Russell ec3344ce6e daemon/output_to_htlc: routines to map outputs for HTLCs for a given commit_num.
And use this to resolve old transactions by comparing outputs with
HTLCs.

Rather than remembering the output ordering for every one of their
previous commitment transactions, we just remember the commitment
number for each commitment txid, and when we see it, derive all the
HTLC scriptpubkeys and the to-us and to-them scriptpubkeys, and figure
out which is which.

This avoids us having to save information on disk, except for the
txid->commitment-number mapping (and the shachain).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2016-08-18 14:23:45 +09:30
bitcoin daemon/output_to_htlc: routines to map outputs for HTLCs for a given commit_num. 2016-08-18 14:23:45 +09:30
ccan daemon: use siphash for hashes. 2016-07-01 12:00:17 +09:30
daemon daemon/output_to_htlc: routines to map outputs for HTLCs for a given commit_num. 2016-08-18 14:23:45 +09:30
doc Minor fixes 2016-01-22 09:09:33 +10:30
secp256k1 libsecp256k1: update. 2016-07-01 12:00:17 +09:30
test test_protocol: restart support. 2016-08-18 14:23:45 +09:30
.gitignore check-bolt: check that comments in code match the specs. 2016-05-03 11:27:56 +09:30
.gitmodules daemon/jsmn: Add submodule for jsmn. 2016-01-22 06:37:13 +10:30
check-bolt.c check-bolt: handle references to early-drafts too. 2016-05-04 16:03:04 +09:30
close_tx.c protocol: add output script to close_clearing message. 2016-04-24 20:01:52 +09:30
close_tx.h base58, script, protobuf_convert: don't use temporary secp256k1 context. 2016-07-01 12:00:17 +09:30
find_p2sh_out.c scripteq: simple helper for comparing scripts. 2016-05-03 11:27:56 +09:30
find_p2sh_out.h Remove unused script functions now we use witness. 2016-04-24 20:09:39 +09:30
HACKING.md Fill out TODO.md into a useful list (mainly by grepping for FIXMEs). 2016-04-12 16:07:47 +09:30
INSTALL.md INSTALL.md: update install details for ubuntu 16.04 2016-08-13 00:55:06 -04:00
LICENSE licensing: Make license explicit. 2016-01-22 06:41:46 +10:30
lightning.pb-c.c cryptopkt: revert ack split in authenticate_packet 2016-08-09 13:11:11 +09:30
lightning.pb-c.h cryptopkt: revert ack split in authenticate_packet 2016-08-09 13:11:11 +09:30
lightning.proto cryptopkt: revert ack split in authenticate_packet 2016-08-09 13:11:11 +09:30
Makefile Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> 2016-08-18 14:23:45 +09:30
names.c daemon: allow commands during commit. 2016-05-26 15:25:25 +09:30
names.h daemon: allow commands during commit. 2016-05-26 15:25:25 +09: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 daemon: routing infrastructure. 2016-07-01 12:00:17 +09:30
permute_tx.c commit_tx: keep permutation map. 2016-05-03 11:27:56 +09:30
permute_tx.h commit_tx: keep permutation map. 2016-05-03 11:27:56 +09:30
protobuf_convert.c protobuf_convert: use libsecp256k1 to serialize. 2016-07-01 12:00:17 +09:30
protobuf_convert.h bitcoin: implement sig_valid. 2016-07-01 12:00:17 +09:30
README.md Update README.md 2016-07-07 16:49:05 -05:00
remove_dust.c remove_dust: don't ever create dust outputs. 2016-05-03 11:28:49 +09:30
remove_dust.h remove_dust: don't ever create dust outputs. 2016-05-03 11:28:49 +09:30
state.c peer: save txid -> commit_num mapping. 2016-08-18 14:23:45 +09:30
state.h peer: record depth at which anchor tx is considered deep enough. 2016-08-18 14:23:45 +09:30
state_types.h daemon: allow commands during commit. 2016-05-26 15:25:25 +09:30
TODO.md TODO: update to reflect progress 2016-05-06 14:07:44 +09:30
utils.c utils: tal_hexstr() helper. 2016-05-03 11:28:49 +09:30
utils.h utils: tal_hexstr() helper. 2016-05-03 11:28:49 +09: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").

This implementation is being developed in parallel with the protocol definition, which you can find on my fork of the protocol description repository.

So far, we are working on the inter-node encryption and transaction negotiation phases.

Later steps will enhance the protocol to network individual daemons, advertise 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.

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

Welcome aboard!

Rusty.