mirror of
https://github.com/aljazceru/lightning.git
synced 2026-02-03 13:14:22 +01:00
6821b4f31ce2e353471ac32b0cc18eb248c39181
When a unilateral close occurs, we have to watch on-chain ("live")
HTLCs. If the other side spends their HTLC output, we need to grab
the rvalue. If it times out, we need to spend it back to ourselves.
If we get an R value, we need to spend our own HTLC output back to
ourselves.
Because there are multiple HTLCs, this doesn't fit very neatly into a
state machine. We divide into "have htlcs" and "don't have htlcs",
and use a INPUT_NO_MORE_HTLCS once all htlcs are resolved to transition.
Our test harness now tracks individual HTLCs, so we refined some
inputs (in particular, it won't try to complete/timeout an HTLC before
we have any).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Strawman protocol for lightning channels.
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.
It requires features not currently in bitcoin, so it runs on top of the sidechain Elements Alpha
This is very much a testbed and work in progress; expect All The Things to change, all the time.
Cheers,
Rusty.
Languages
C
74.9%
Python
20.7%
Rust
1.5%
Makefile
1.1%
Assembly
0.9%
Other
0.8%