We don't have an ordering of HTLCs between peers: we don't know whether your HTLC 0 or my HTLC 0 occurred first. This matters, as we play them all back to reconstruct state (probably overkill anyway). So we add force_* operators which don't do bounds checks, and do bounds checks at the end. We also note that we don't need to apply fee changes: that should be in the database already. Also relax db constraints: IDs are not unique, they are unique per side (we can both have HTLC #0). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> |
||
---|---|---|
bitcoin | ||
ccan | ||
daemon | ||
doc | ||
secp256k1 | ||
test | ||
.gitignore | ||
.gitmodules | ||
check-bolt.c | ||
close_tx.c | ||
close_tx.h | ||
find_p2sh_out.c | ||
find_p2sh_out.h | ||
HACKING.md | ||
INSTALL.md | ||
LICENSE | ||
lightning.pb-c.c | ||
lightning.pb-c.h | ||
lightning.proto | ||
Makefile | ||
names.c | ||
names.h | ||
opt_bits.c | ||
opt_bits.h | ||
overflows.h | ||
permute_tx.c | ||
permute_tx.h | ||
protobuf_convert.c | ||
protobuf_convert.h | ||
README.md | ||
remove_dust.h | ||
state.c | ||
state.h | ||
state_types.h | ||
TODO.md | ||
utils.c | ||
utils.h | ||
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.
Final note: This is very much a testbed and work in progress; expect All The Things to change, all the time.
Welcome aboard!
Rusty.