mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-24 09:34:24 +01:00
This is the final step: we pass the complete fee_states to and from channeld. Changelog-Fixed: "Bad commitment signature" closing channels when we sent back-to-back update_fee messages across multiple reconnects. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
8.9 KiB
8.9 KiB
| 1 | #include <common/cryptomsg.h> |
|---|---|
| 2 | #include <common/channel_config.h> |
| 3 | #include <common/derive_basepoints.h> |
| 4 | #include <common/fee_states.h> |
| 5 | #include <common/per_peer_state.h> |
| 6 | # Begin! (passes gossipd-client fd) |
| 7 | msgtype,channel_init,1000 |
| 8 | msgdata,channel_init,chainparams,chainparams, |
| 9 | msgdata,channel_init,funding_txid,bitcoin_txid, |
| 10 | msgdata,channel_init,funding_txout,u16, |
| 11 | msgdata,channel_init,funding_satoshi,amount_sat, |
| 12 | msgdata,channel_init,minimum_depth,u32, |
| 13 | msgdata,channel_init,our_config,channel_config, |
| 14 | msgdata,channel_init,their_config,channel_config, |
| 15 | msgdata,channel_init,fee_states,fee_states, |
| 16 | msgdata,channel_init,feerate_min,u32, |
| 17 | msgdata,channel_init,feerate_max,u32, |
| 18 | msgdata,channel_init,first_commit_sig,bitcoin_signature, |
| 19 | msgdata,channel_init,per_peer_state,per_peer_state, |
| 20 | msgdata,channel_init,remote_fundingkey,pubkey, |
| 21 | msgdata,channel_init,remote_basepoints,basepoints, |
| 22 | msgdata,channel_init,remote_per_commit,pubkey, |
| 23 | msgdata,channel_init,old_remote_per_commit,pubkey, |
| 24 | msgdata,channel_init,funder,enum side, |
| 25 | msgdata,channel_init,fee_base,u32, |
| 26 | msgdata,channel_init,fee_proportional,u32, |
| 27 | msgdata,channel_init,local_msatoshi,amount_msat, |
| 28 | msgdata,channel_init,our_basepoints,basepoints, |
| 29 | msgdata,channel_init,our_funding_pubkey,pubkey, |
| 30 | msgdata,channel_init,local_node_id,node_id, |
| 31 | msgdata,channel_init,remote_node_id,node_id, |
| 32 | msgdata,channel_init,commit_msec,u32, |
| 33 | msgdata,channel_init,cltv_delta,u16, |
| 34 | msgdata,channel_init,last_was_revoke,bool, |
| 35 | msgdata,channel_init,num_last_sent_commit,u16, |
| 36 | msgdata,channel_init,last_sent_commit,changed_htlc,num_last_sent_commit |
| 37 | msgdata,channel_init,next_index_local,u64, |
| 38 | msgdata,channel_init,next_index_remote,u64, |
| 39 | msgdata,channel_init,revocations_received,u64, |
| 40 | msgdata,channel_init,next_htlc_id,u64, |
| 41 | msgdata,channel_init,num_htlcs,u16, |
| 42 | msgdata,channel_init,htlcs,added_htlc,num_htlcs |
| 43 | msgdata,channel_init,htlc_states,enum htlc_state,num_htlcs |
| 44 | msgdata,channel_init,num_fulfilled,u16, |
| 45 | msgdata,channel_init,fulfilled,fulfilled_htlc,num_fulfilled |
| 46 | msgdata,channel_init,fulfilled_sides,enum side,num_fulfilled |
| 47 | msgdata,channel_init,num_failed,u16, |
| 48 | msgdata,channel_init,failed,failed_htlc,num_failed |
| 49 | msgdata,channel_init,failed_sides,enum side,num_failed |
| 50 | msgdata,channel_init,failheight,u32, |
| 51 | msgdata,channel_init,local_funding_locked,bool, |
| 52 | msgdata,channel_init,remote_funding_locked,bool, |
| 53 | msgdata,channel_init,funding_short_id,short_channel_id, |
| 54 | msgdata,channel_init,reestablish,bool, |
| 55 | msgdata,channel_init,send_shutdown,bool, |
| 56 | msgdata,channel_init,remote_shutdown_received,bool, |
| 57 | msgdata,channel_init,final_scriptpubkey_len,u16, |
| 58 | msgdata,channel_init,final_scriptpubkey,u8,final_scriptpubkey_len |
| 59 | msgdata,channel_init,flags,u8, |
| 60 | msgdata,channel_init,init_peer_pkt_len,u16, |
| 61 | msgdata,channel_init,init_peer_pkt,u8,init_peer_pkt_len |
| 62 | msgdata,channel_init,reached_announce_depth,bool, |
| 63 | msgdata,channel_init,last_remote_secret,secret, |
| 64 | msgdata,channel_init,lflen,u16, |
| 65 | msgdata,channel_init,localfeatures,u8,lflen |
| 66 | msgdata,channel_init,upfront_shutdown_script_len,u16, |
| 67 | msgdata,channel_init,upfront_shutdown_script,u8,upfront_shutdown_script_len |
| 68 | msgdata,channel_init,remote_ann_node_sig,?secp256k1_ecdsa_signature, |
| 69 | msgdata,channel_init,remote_ann_bitcoin_sig,?secp256k1_ecdsa_signature, |
| 70 | msgdata,channel_init,option_static_remotekey,bool, |
| 71 | msgdata,channel_init,dev_fast_gossip,bool, |
| 72 | # master->channeld funding hit new depth(funding locked if >= lock depth) |
| 73 | msgtype,channel_funding_depth,1002 |
| 74 | msgdata,channel_funding_depth,short_channel_id,?short_channel_id, |
| 75 | msgdata,channel_funding_depth,depth,u32, |
| 76 | # Tell channel to offer this htlc |
| 77 | msgtype,channel_offer_htlc,1004 |
| 78 | msgdata,channel_offer_htlc,amount_msat,amount_msat, |
| 79 | msgdata,channel_offer_htlc,cltv_expiry,u32, |
| 80 | msgdata,channel_offer_htlc,payment_hash,sha256, |
| 81 | msgdata,channel_offer_htlc,onion_routing_packet,u8,1366 |
| 82 | # Reply; synchronous since IDs have to increment. |
| 83 | msgtype,channel_offer_htlc_reply,1104 |
| 84 | msgdata,channel_offer_htlc_reply,id,u64, |
| 85 | # Zero failure code means success., |
| 86 | msgdata,channel_offer_htlc_reply,failure_code,u16, |
| 87 | msgdata,channel_offer_htlc_reply,failurestrlen,u16, |
| 88 | msgdata,channel_offer_htlc_reply,failurestr,u8,failurestrlen |
| 89 | # Main daemon found out the preimage for an HTLC |
| 90 | #include <bitcoin/preimage.h> |
| 91 | msgtype,channel_fulfill_htlc,1005 |
| 92 | msgdata,channel_fulfill_htlc,fulfilled_htlc,fulfilled_htlc, |
| 93 | # Main daemon says HTLC failed |
| 94 | msgtype,channel_fail_htlc,1006 |
| 95 | msgdata,channel_fail_htlc,failed_htlc,failed_htlc, |
| 96 | msgdata,channel_fail_htlc,failheight,u32, |
| 97 | # When we receive funding_locked. |
| 98 | msgtype,channel_got_funding_locked,1019 |
| 99 | msgdata,channel_got_funding_locked,next_per_commit_point,pubkey, |
| 100 | # When we send a commitment_signed message, tell master. |
| 101 | msgtype,channel_sending_commitsig,1020 |
| 102 | msgdata,channel_sending_commitsig,commitnum,u64, |
| 103 | msgdata,channel_sending_commitsig,fee_states,fee_states, |
| 104 | # SENT_ADD_COMMIT, SENT_REMOVE_ACK_COMMIT, SENT_ADD_ACK_COMMIT, SENT_REMOVE_COMMIT |
| 105 | msgdata,channel_sending_commitsig,num_changed,u16, |
| 106 | msgdata,channel_sending_commitsig,changed,changed_htlc,num_changed |
| 107 | msgdata,channel_sending_commitsig,commit_sig,bitcoin_signature, |
| 108 | msgdata,channel_sending_commitsig,num_htlc_sigs,u16, |
| 109 | msgdata,channel_sending_commitsig,htlc_sigs,secp256k1_ecdsa_signature,num_htlc_sigs |
| 110 | # Wait for reply, to make sure it's on disk before we send commit. |
| 111 | msgtype,channel_sending_commitsig_reply,1120 |
| 112 | # When we have a commitment_signed message, tell master to remember. |
| 113 | msgtype,channel_got_commitsig,1021 |
| 114 | msgdata,channel_got_commitsig,commitnum,u64, |
| 115 | msgdata,channel_got_commitsig,fee_states,fee_states, |
| 116 | msgdata,channel_got_commitsig,signature,bitcoin_signature, |
| 117 | msgdata,channel_got_commitsig,num_htlcs,u16, |
| 118 | msgdata,channel_got_commitsig,htlc_signature,secp256k1_ecdsa_signature,num_htlcs |
| 119 | # RCVD_ADD_COMMIT: we're now committed to their new offered HTLCs. |
| 120 | msgdata,channel_got_commitsig,num_added,u16, |
| 121 | msgdata,channel_got_commitsig,added,added_htlc,num_added |
| 122 | msgdata,channel_got_commitsig,shared_secret,secret,num_added |
| 123 | # RCVD_REMOVE_COMMIT: we're now no longer committed to these HTLCs. |
| 124 | msgdata,channel_got_commitsig,num_fulfilled,u16, |
| 125 | msgdata,channel_got_commitsig,fulfilled,fulfilled_htlc,num_fulfilled |
| 126 | msgdata,channel_got_commitsig,num_failed,u16, |
| 127 | msgdata,channel_got_commitsig,failed,failed_htlc,num_failed |
| 128 | # RCVD_ADD_ACK_COMMIT, RCVD_REMOVE_ACK_COMMIT |
| 129 | msgdata,channel_got_commitsig,num_changed,u16, |
| 130 | msgdata,channel_got_commitsig,changed,changed_htlc,num_changed |
| 131 | msgdata,channel_got_commitsig,tx,bitcoin_tx, |
| 132 | # Wait for reply, to make sure it's on disk before we send revocation. |
| 133 | msgtype,channel_got_commitsig_reply,1121 |
| 134 | #include <common/htlc_wire.h> |
| 135 | msgtype,channel_got_revoke,1022 |
| 136 | msgdata,channel_got_revoke,revokenum,u64, |
| 137 | msgdata,channel_got_revoke,per_commitment_secret,secret, |
| 138 | msgdata,channel_got_revoke,next_per_commit_point,pubkey, |
| 139 | # RCVD_ADD_ACK_REVOCATION, RCVD_REMOVE_ACK_REVOCATION, RCVD_ADD_REVOCATION, RCVD_REMOVE_REVOCATION |
| 140 | msgdata,channel_got_revoke,fee_states,fee_states, |
| 141 | msgdata,channel_got_revoke,num_changed,u16, |
| 142 | msgdata,channel_got_revoke,changed,changed_htlc,num_changed |
| 143 | # Wait for reply, to make sure it's on disk before we continue |
| 144 | # (eg. if we sent another commitment_signed, that would implicitly ack). |
| 145 | msgtype,channel_got_revoke_reply,1122 |
| 146 | # Tell peer to shut down channel. |
| 147 | msgtype,channel_send_shutdown,1023 |
| 148 | msgdata,channel_send_shutdown,shutdown_len,u16, |
| 149 | msgdata,channel_send_shutdown,shutdown_scriptpubkey,u8,shutdown_len |
| 150 | # Peer told us that channel is shutting down |
| 151 | msgtype,channel_got_shutdown,1024 |
| 152 | msgdata,channel_got_shutdown,scriptpubkey_len,u16, |
| 153 | msgdata,channel_got_shutdown,scriptpubkey,u8,scriptpubkey_len |
| 154 | # Shutdown is complete, ready for closing negotiation. + peer_fd & gossip_fd. |
| 155 | msgtype,channel_shutdown_complete,1025 |
| 156 | msgdata,channel_shutdown_complete,per_peer_state,per_peer_state, |
| 157 | # Re-enable commit timer. |
| 158 | msgtype,channel_dev_reenable_commit,1026 |
| 159 | msgtype,channel_dev_reenable_commit_reply,1126, |
| 160 | msgtype,channel_feerates,1027 |
| 161 | msgdata,channel_feerates,feerate,u32, |
| 162 | msgdata,channel_feerates,min_feerate,u32, |
| 163 | msgdata,channel_feerates,max_feerate,u32, |
| 164 | # master -> channeld: do you have a memleak? |
| 165 | msgtype,channel_dev_memleak,1033 |
| 166 | msgtype,channel_dev_memleak_reply,1133 |
| 167 | msgdata,channel_dev_memleak_reply,leak,bool, |
| 168 | # Peer presented proof it was from the future. |
| 169 | msgtype,channel_fail_fallen_behind,1028 |
| 170 | # This is NULL if option_static_remotekey. |
| 171 | msgdata,channel_fail_fallen_behind,remote_per_commitment_point,?pubkey, |
| 172 | # Handle a channel specific feerate base ppm configuration |
| 173 | msgtype,channel_specific_feerates,1029 |
| 174 | msgdata,channel_specific_feerates,feerate_base,u32, |
| 175 | msgdata,channel_specific_feerates,feerate_ppm,u32, |
| 176 | # When we receive announcement_signatures for channel announce |
| 177 | msgtype,channel_got_announcement,1017 |
| 178 | msgdata,channel_got_announcement,remote_ann_node_sig,secp256k1_ecdsa_signature, |
| 179 | msgdata,channel_got_announcement,remote_ann_bitcoin_sig,secp256k1_ecdsa_signature, |
| 180 | # Ask channeld to send a error message. Used in forgetting channel case. |
| 181 | msgtype,channel_send_error,1008 |
| 182 | msgdata,channel_send_error,reason,wirestring, |
| 183 | # Tell master channeld has sent the error message. |
| 184 | msgtype,channel_send_error_reply,1108 |