mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-01-09 23:27:17 +01:00
9497cbe73b
There are two ways we can do retransmission on reconnect: re-derive what we would have sent, or remember it and simply re-send. The rederivation is difficult: unwinding state depends on whether we sent a revoke_and_ack before or after the commitment_signed, and unwinding a revoke_and_ack would require us to remember HTLCs we would have normally forgotten at this point. So we simply tell the master to remember the old signatures for us, and hand them back in case we need to re-send. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
5.7 KiB
5.7 KiB
1 | # Shouldn't happen |
---|---|
2 | channel_bad_command,0x8000 |
3 | # Also shouldn't happen |
4 | channel_hsm_failed,0x8001 |
5 | channel_crypto_failed,0x8002 |
6 | channel_internal_error,0x8003 |
7 | channel_gossip_bad_message,0x8004 |
8 | # These are due to peer. |
9 | channel_peer_write_failed,0x8010 |
10 | channel_peer_read_failed,0x8011 |
11 | channel_peer_bad_message,0x8012 |
12 | # Received and sent funding_locked |
13 | channel_normal_operation,1001 |
14 | #include <lightningd/cryptomsg.h> |
15 | #include <lightningd/channel_config.h> |
16 | # Begin! (passes gossipd-client fd) |
17 | channel_init,1 |
18 | channel_init,,funding_txid,struct sha256_double |
19 | channel_init,,funding_txout,2 |
20 | channel_init,,funding_satoshi,8 |
21 | channel_init,,our_config,struct channel_config |
22 | channel_init,,their_config,struct channel_config |
23 | channel_init,,first_commit_sig,secp256k1_ecdsa_signature |
24 | channel_init,,crypto_state,struct crypto_state |
25 | channel_init,,remote_fundingkey,33 |
26 | channel_init,,revocation_basepoint,33 |
27 | channel_init,,payment_basepoint,33 |
28 | channel_init,,delayed_payment_basepoint,33 |
29 | channel_init,,their_per_commit_point,33 |
30 | channel_init,,am_funder,bool |
31 | channel_init,,fee_base,4 |
32 | channel_init,,fee_proportional,4 |
33 | channel_init,,local_msatoshi,8 |
34 | channel_init,,seed,struct privkey |
35 | channel_init,,local_node_id,struct pubkey |
36 | channel_init,,remote_node_id,struct pubkey |
37 | channel_init,,commit_msec,4 |
38 | channel_init,,cltv_delta,u16 |
39 | channel_init,,last_was_revoke,bool |
40 | channel_init,,num_last_sent_commit,u16 |
41 | channel_init,,last_sent_commit,num_last_sent_commit*struct changed_htlc |
42 | channel_init,,commits_sent,u64 |
43 | channel_init,,commits_received,u64 |
44 | channel_init,,revocations_received,u64 |
45 | channel_init,,next_htlc_id,u64 |
46 | channel_init,,num_htlcs,u16 |
47 | channel_init,,htlcs,num_htlcs*struct added_htlc |
48 | channel_init,,htlc_states,num_htlcs*enum htlc_state |
49 | channel_init,,num_fulfilled,u16 |
50 | channel_init,,fulfilled,num_fulfilled*struct fulfilled_htlc |
51 | channel_init,,fulfilled_sides,num_fulfilled*enum side |
52 | channel_init,,num_failed,u16 |
53 | channel_init,,failed,num_failed*struct failed_htlc |
54 | channel_init,,failed_sides,num_failed*enum side |
55 | channel_init,,init_peer_pkt_len,u16 |
56 | channel_init,,init_peer_pkt,init_peer_pkt_len*u8 |
57 | # Tx is deep enough, go! |
58 | channel_funding_locked,2 |
59 | channel_funding_locked,,short_channel_id,struct short_channel_id |
60 | # Tell the channel that we may announce the channel's existence |
61 | channel_funding_announce_depth,3 |
62 | # Tell channel to offer this htlc |
63 | channel_offer_htlc,4 |
64 | channel_offer_htlc,,amount_msat,8 |
65 | channel_offer_htlc,,cltv_expiry,4 |
66 | channel_offer_htlc,,payment_hash,32 |
67 | channel_offer_htlc,,onion_routing_packet,1366*u8 |
68 | # Reply; synchronous since IDs have to increment. |
69 | channel_offer_htlc_reply,104 |
70 | channel_offer_htlc_reply,,id,8 |
71 | # Zero failure code means success. |
72 | channel_offer_htlc_reply,,failure_code,2 |
73 | channel_offer_htlc_reply,,failurestrlen,2 |
74 | channel_offer_htlc_reply,,failurestr,failurestrlen*u8 |
75 | # Main daemon found out the preimage for an htlc |
76 | #include <bitcoin/preimage.h> |
77 | channel_fulfill_htlc,5 |
78 | channel_fulfill_htlc,,id,8 |
79 | channel_fulfill_htlc,,payment_preimage,struct preimage |
80 | # Main daemon says HTLC failed |
81 | channel_fail_htlc,6 |
82 | channel_fail_htlc,,id,8 |
83 | # If malformed is non-zero, it's a BADONION code |
84 | channel_fail_htlc,,malformed,u16 |
85 | # Otherwise, error_pkt contains failreason. |
86 | channel_fail_htlc,,len,2 |
87 | channel_fail_htlc,,error_pkt,len*u8 |
88 | # Ping/pong test. |
89 | channel_ping,11 |
90 | channel_ping,,num_pong_bytes,u16 |
91 | channel_ping,,len,u16 |
92 | channel_ping_reply,111 |
93 | channel_ping_reply,,totlen,u16 |
94 | # Channeld tells the master that the channel has been announced |
95 | channel_announced,12 |
96 | # When we receive funding_locked. |
97 | channel_got_funding_locked,19 |
98 | channel_got_funding_locked,,next_per_commit_point,struct pubkey |
99 | # When we send a commitment_signed message, tell master. |
100 | channel_sending_commitsig,20 |
101 | channel_sending_commitsig,,commitnum,u64 |
102 | # SENT_ADD_COMMIT, SENT_REMOVE_ACK_COMMIT, SENT_ADD_ACK_COMMIT, SENT_REMOVE_COMMIT |
103 | channel_sending_commitsig,,num_changed,u16 |
104 | channel_sending_commitsig,,changed,num_changed*struct changed_htlc |
105 | channel_sending_commitsig,,commit_sig,secp256k1_ecdsa_signature |
106 | channel_sending_commitsig,,num_htlc_sigs,u16 |
107 | channel_sending_commitsig,,htlc_sigs,num_htlc_sigs*secp256k1_ecdsa_signature |
108 | # Wait for reply, to make sure it's on disk before we send commit. |
109 | channel_sending_commitsig_reply,120 |
110 | # When we have a commitment_signed message, tell master to remember. |
111 | channel_got_commitsig,21 |
112 | channel_got_commitsig,,commitnum,u64 |
113 | channel_got_commitsig,,signature,secp256k1_ecdsa_signature |
114 | channel_got_commitsig,,num_htlcs,u16 |
115 | channel_got_commitsig,,htlc_signature,num_htlcs*secp256k1_ecdsa_signature |
116 | # RCVD_ADD_COMMIT: we're now committed to their new offered HTLCs. |
117 | channel_got_commitsig,,num_added,u16 |
118 | channel_got_commitsig,,added,num_added*struct added_htlc |
119 | channel_got_commitsig,,shared_secret,num_added*struct secret |
120 | # RCVD_REMOVE_COMMIT: we're now no longer committed to these HTLCs. |
121 | channel_got_commitsig,,num_fulfilled,u16 |
122 | channel_got_commitsig,,fulfilled,num_fulfilled*struct fulfilled_htlc |
123 | channel_got_commitsig,,num_failed,u16 |
124 | channel_got_commitsig,,failed,num_failed*struct failed_htlc |
125 | # RCVD_ADD_ACK_COMMIT, RCVD_REMOVE_ACK_COMMIT |
126 | channel_got_commitsig,,num_changed,u16 |
127 | channel_got_commitsig,,changed,num_changed*struct changed_htlc |
128 | # Wait for reply, to make sure it's on disk before we send revocation. |
129 | channel_got_commitsig_reply,121 |
130 | #include <lightningd/htlc_wire.h> |
131 | channel_got_revoke,22 |
132 | channel_got_revoke,,revokenum,u64 |
133 | channel_got_revoke,,per_commitment_secret,struct sha256 |
134 | channel_got_revoke,,next_per_commit_point,struct pubkey |
135 | # RCVD_ADD_ACK_REVOCATION, RCVD_REMOVE_ACK_REVOCATION, RCVD_ADD_REVOCATION, RCVD_REMOVE_REVOCATION |
136 | channel_got_revoke,,num_changed,u16 |
137 | channel_got_revoke,,changed,num_changed*struct changed_htlc |
138 | # Wait for reply, to make sure it's on disk before we continue |
139 | # (eg. if we sent another commitment_signed, that would implicitly ack). |
140 | channel_got_revoke_reply,122 |