Core Lightning — Lightning Network implementation focusing on spec compliance and performance
Go to file
Rusty Russell f29a6043d2 daemon: open-code handling of on-chain states.
Once we see an on-chain tx, we ignore the state machine and handle it
as per the onchain.md draft.  This specifies a *resolution* for each
output, and we're done when they're irrevocable.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2016-05-04 16:14:22 +09:30
bitcoin script: add check for 32-byte preimage. 2016-05-03 11:28:50 +09:30
ccan ccan: update (for htable_getfirst/getnext) 2016-05-03 11:27:56 +09:30
daemon daemon: open-code handling of on-chain states. 2016-05-04 16:14:22 +09:30
doc
secp256k1
test
.gitignore check-bolt: check that comments in code match the specs. 2016-05-03 11:27:56 +09:30
.gitmodules
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 protocol: add output script to close_clearing message. 2016-04-24 20:01:52 +09:30
commit_tx.c script: rename scriptpubkey_htlc_send to/recv bitcoin_redeem_htlc_send/recv 2016-05-03 11:28:50 +09:30
commit_tx.h commit_tx: keep permutation map. 2016-05-03 11:27:56 +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
funding.c check-bolt: check that comments in code match the specs. 2016-05-03 11:27:56 +09:30
funding.h
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
LICENSE
lightning.pb-c.c protocol: add output script to close_clearing message. 2016-04-24 20:01:52 +09:30
lightning.pb-c.h protocol: add output script to close_clearing message. 2016-04-24 20:01:52 +09:30
lightning.proto protocol: add output script to close_clearing message. 2016-04-24 20:01:52 +09:30
Makefile daemon: open-code handling of on-chain states. 2016-05-04 16:14:22 +09:30
names.c
names.h
opt_bits.c
opt_bits.h
overflows.h
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.h
README.md Note that we need segwit-enabled bitcoind. 2016-04-12 14:26:38 +09:30
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_types.h daemon: open-code handling of on-chain states. 2016-05-04 16:14:22 +09:30
state.c daemon: open-code handling of on-chain states. 2016-05-04 16:14:22 +09:30
state.h daemon: fix logic which determines how anchor output was spent. 2016-05-03 11:28:50 +09:30
TODO.md Fill out TODO.md into a useful list (mainly by grepping for FIXMEs). 2016-04-12 16:07:47 +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
version.h

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.

The protocol requires features not currently in bitcoin, so you will need Pieter Wuille's Segregated Witness bitcoind: https://github.com/sipa/bitcoin/tree/segwit4

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

Welcome aboard!

Rusty.