Core Lightning — Lightning Network implementation focusing on spec compliance and performance
Go to file
Rusty Russell 51de503096 daemon: keep track of simple addresses for injecting funds.
We need to control the *inputs* to the anchor tx, to make sure they
pay to witness scripts (thus the anchor is immalleable).  The easiest
way to do this is to hand out P2SH addresses for the user, and have
them pay into those.  Then they hand us that tx and we use it to
create the anchor.

This is not a long-term solution!

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2016-04-12 13:07:03 +09:30
bitcoin varint: new file. 2016-04-12 13:07:03 +09:30
ccan ccan: update and add more. 2016-01-22 06:41:45 +10:30
daemon daemon: keep track of simple addresses for injecting funds. 2016-04-12 13:07:03 +09:30
doc Minor fixes 2016-01-22 09:09:33 +10:30
secp256k1 secp256k1: add "ignored" files. 2015-09-30 16:39:02 +09:30
test patch remove-timeout.patch 2016-03-15 17:07:12 +10:30
test-cli bitcoind: use fundrawtransaction rather than sendtoaddress and -nowalletbroadcast 2016-04-11 16:40:53 +09:30
.gitignore doc: add install notes 2016-02-24 23:59:33 -05:00
.gitmodules daemon/jsmn: Add submodule for jsmn. 2016-01-22 06:37:13 +10:30
close_tx.c bitcoin/tx: (optional) input amount. 2016-04-11 16:43:53 +09:30
close_tx.h daemon: simple close support for the case of one side closing transaction. 2016-01-22 06:45:27 +10:30
commit_tx.c bitcoin/tx: (optional) input amount. 2016-04-11 16:43:53 +09:30
commit_tx.h peer: keep current commit txs, anchor state, channel funding and their sig. 2016-01-22 06:44:27 +10:30
find_p2sh_out.c daemon: implement unilateral commit. 2016-01-22 06:45:28 +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 funding: record changes so we can abide by BOLT#2 2016-03-31 17:12:20 +10:30
funding.h funding: record changes so we can abide by BOLT#2 2016-03-31 17:12:20 +10:30
HACKING.md Correct the formatting of HACKING.md; add top-level files reference. 2016-01-22 09:09:33 +10:30
INSTALL.md daemon: Implement encryption as per BOLT #1. 2016-03-16 16:06:17 +10:30
LICENSE licensing: Make license explicit. 2016-01-22 06:41:46 +10:30
lightning.pb-c.c protocol: move ack out of header into specific packets. 2016-04-11 16:31:43 +09:30
lightning.pb-c.h protocol: move ack out of header into specific packets. 2016-04-11 16:31:43 +09:30
lightning.proto protocol: move ack out of header into specific packets. 2016-04-11 16:31:43 +09:30
Makefile varint: new file. 2016-04-12 13:07:03 +09:30
names.c names: generate names for command_status and state_peercond. 2016-01-22 06:41:46 +10:30
names.h names: generate names for command_status and state_peercond. 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 Remove Alpha support. 2016-04-11 16:32:43 +09:30
protobuf_convert.h bitcoin: hand in a secp256k1_context to all routines. 2016-01-22 06:41:47 +10:30
README.md Update README.md 2016-04-06 00:09:36 +08:00
state_types.h daemon: batching of changes as per BOLT #2. 2016-03-31 17:13:20 +10:30
state.c daemon: fix close fee negotiation. 2016-04-11 16:30:43 +09:30
state.h daemon: fix close fee negotiation. 2016-04-11 16:30:43 +09:30
TODO.md TODO.md: new file with random thoughts for people to hack on. 2016-03-16 16:07:12 +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").

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, but can be tested with bitcoin (on testnet) with OP_NOP substitution.

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

Welcome aboard!

Rusty.