rgb-cln/daemon
Rusty Russell 2bf43f1ebd daemon: handle HTLC as per BOLT #2 algorithm.
From BOLT#2 (rev 8ee09e749990a11fa53bea03d5961cfde4be4616):

   Thus each node (conceptually) tracks:
...
   3. Two *unacked changesets*: one for the local commitment (their proposals) and one for the remote (our proposals)
   4. Two *acked changesets*: one for the local commitment (our proposals, acknowledged) and one for the remote (their proposals, acknowledged).

   (Note that an implementation MAY optimize this internally, for
   example, pre-applying the changesets in some cases).

In our case, we apply the unacked changes immediately into
staging_cstate, and save them in an unacked_changes array.  That array
gets applied to staging_cstate as soon as it's acked (we only allow
one outstanding update_commit, so we only need one array).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2016-05-26 15:25:24 +09:30
..
jsmn@bd9bd55c3a daemon/jsmn: Add submodule for jsmn. 2016-01-22 06:37:13 +10:30
test daemon: handle HTLC as per BOLT #2 algorithm. 2016-05-26 15:25:24 +09:30
.gitignore daemon: first code. 2016-01-22 06:41:47 +10:30
Makefile daemon: time option support. 2016-05-10 06:28:17 +09:30
bitcoind.c daemon: handle bitcoin transaction re-broadcasting. 2016-05-04 16:03:10 +09:30
bitcoind.h daemon: handle bitcoin transaction re-broadcasting. 2016-05-04 16:03:10 +09:30
chaintopology.c daemon: time options use opt_time. 2016-05-10 06:29:12 +09:30
chaintopology.h chaintopology: simply track txids, not watches. 2016-05-04 16:10:37 +09:30
configdir.c daemon: configuration directory (default ~/.lightning). 2016-01-22 06:41:48 +10:30
configdir.h daemon: configuration directory (default ~/.lightning). 2016-01-22 06:41:48 +10:30
controlled_time.c daemon: make json_get_param() understand which args are compulsory. 2016-03-15 17:07:30 +10:30
controlled_time.h daemon: dev-mocktime command 2016-01-22 06:45:28 +10:30
cryptopkt.c Makefile: add generated packet names. 2016-05-26 15:25:24 +09:30
cryptopkt.h protocol: move `ack` out of header into specific packets. 2016-04-11 16:31:43 +09:30
dns.c dns: don't allow non-stream sockets. 2016-01-22 06:41:49 +10:30
dns.h daemon: rename 'state' to 'dstate' everywhere. 2016-01-22 06:41:49 +10:30
json.c daemon: make json_get_param() understand which args are compulsory. 2016-03-15 17:07:30 +10:30
json.h daemon: make json_get_param() understand which args are compulsory. 2016-03-15 17:07:30 +10:30
jsonrpc.c daemon: dev-signcommit command to sign the current commit tx. 2016-05-06 11:54:49 +09:30
jsonrpc.h daemon: dev-signcommit command to sign the current commit tx. 2016-05-06 11:54:49 +09:30
lightning-cli.c daemon: dev-mocktime command 2016-01-22 06:45:28 +10:30
lightningd.c daemon: commit outstanding changes via timer. 2016-05-10 06:30:11 +09:30
lightningd.h daemon: commit outstanding changes via timer. 2016-05-10 06:30:11 +09:30
log.c log: use real time for logs, even if dev-mocktime is used. 2016-04-24 19:35:13 +09:30
log.h daemon: add helper to log hex. 2016-01-22 06:41:48 +10:30
netaddr.c daemon: netaddr 2016-01-22 06:41:48 +10:30
netaddr.h daemon: netaddr 2016-01-22 06:41:48 +10:30
opt_time.c daemon: time option support. 2016-05-10 06:28:17 +09:30
opt_time.h daemon: time option support. 2016-05-10 06:28:17 +09:30
packets.c daemon: handle HTLC as per BOLT #2 algorithm. 2016-05-26 15:25:24 +09:30
peer.c daemon: handle HTLC as per BOLT #2 algorithm. 2016-05-26 15:25:24 +09:30
peer.h daemon: handle HTLC as per BOLT #2 algorithm. 2016-05-26 15:25:24 +09:30
pseudorand.c daemon: first code. 2016-01-22 06:41:47 +10:30
pseudorand.h daemon: first code. 2016-01-22 06:41:47 +10:30
secrets.c daemon: use "local" and "remote" instead of "us" and "them". 2016-05-26 15:25:24 +09:30
secrets.h daemon: handle cheating. 2016-05-06 11:56:55 +09:30
timeout.c timeout: make all timers one-shot. 2016-05-10 06:26:09 +09:30
timeout.h timeout: make all timers one-shot. 2016-05-10 06:26:09 +09:30
wallet.c daemon/wallet: supply a p2wpkh address (as P2SH address). 2016-04-12 14:17:46 +09:30
wallet.h daemon: keep track of simple addresses for injecting funds. 2016-04-12 13:07:03 +09:30
watch.c watch: depth callback is always >= 0 2016-05-04 16:10:39 +09:30
watch.h watch: depth callback is always >= 0 2016-05-04 16:10:39 +09:30