core-lightning/channeld/channel_wire.csv
Rusty Russell b29d1ed3ff channeld: support HTLCs with blinding (EXPERIMENTAL_FEATURES)
Note that it's channeld which calculates the shared secret, too.  This
minimizes the work that lightningd has to do, at cost of passing this
through.

We also don't yet save the blinding field(s) to the database.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2020-04-14 12:51:18 +09:30

221 lines
9.2 KiB
Plaintext

#include <common/cryptomsg.h>
#include <common/channel_config.h>
#include <common/derive_basepoints.h>
#include <common/features.h>
#include <common/fee_states.h>
#include <common/per_peer_state.h>
# Begin! (passes gossipd-client fd)
msgtype,channel_init,1000
msgdata,channel_init,chainparams,chainparams,
msgdata,channel_init,our_features,feature_set,
msgdata,channel_init,funding_txid,bitcoin_txid,
msgdata,channel_init,funding_txout,u16,
msgdata,channel_init,funding_satoshi,amount_sat,
msgdata,channel_init,minimum_depth,u32,
msgdata,channel_init,our_config,channel_config,
msgdata,channel_init,their_config,channel_config,
msgdata,channel_init,fee_states,fee_states,
msgdata,channel_init,feerate_min,u32,
msgdata,channel_init,feerate_max,u32,
msgdata,channel_init,first_commit_sig,bitcoin_signature,
msgdata,channel_init,per_peer_state,per_peer_state,
msgdata,channel_init,remote_fundingkey,pubkey,
msgdata,channel_init,remote_basepoints,basepoints,
msgdata,channel_init,remote_per_commit,pubkey,
msgdata,channel_init,old_remote_per_commit,pubkey,
msgdata,channel_init,funder,enum side,
msgdata,channel_init,fee_base,u32,
msgdata,channel_init,fee_proportional,u32,
msgdata,channel_init,local_msatoshi,amount_msat,
msgdata,channel_init,our_basepoints,basepoints,
msgdata,channel_init,our_funding_pubkey,pubkey,
msgdata,channel_init,local_node_id,node_id,
msgdata,channel_init,remote_node_id,node_id,
msgdata,channel_init,commit_msec,u32,
msgdata,channel_init,cltv_delta,u16,
msgdata,channel_init,last_was_revoke,bool,
msgdata,channel_init,num_last_sent_commit,u16,
msgdata,channel_init,last_sent_commit,changed_htlc,num_last_sent_commit
msgdata,channel_init,next_index_local,u64,
msgdata,channel_init,next_index_remote,u64,
msgdata,channel_init,revocations_received,u64,
msgdata,channel_init,next_htlc_id,u64,
msgdata,channel_init,num_existing_htlcs,u16,
msgdata,channel_init,htlcs,existing_htlc,num_existing_htlcs
msgdata,channel_init,local_funding_locked,bool,
msgdata,channel_init,remote_funding_locked,bool,
msgdata,channel_init,funding_short_id,short_channel_id,
msgdata,channel_init,reestablish,bool,
msgdata,channel_init,send_shutdown,bool,
msgdata,channel_init,remote_shutdown_received,bool,
msgdata,channel_init,final_scriptpubkey_len,u16,
msgdata,channel_init,final_scriptpubkey,u8,final_scriptpubkey_len
msgdata,channel_init,flags,u8,
msgdata,channel_init,init_peer_pkt_len,u16,
msgdata,channel_init,init_peer_pkt,u8,init_peer_pkt_len
msgdata,channel_init,reached_announce_depth,bool,
msgdata,channel_init,last_remote_secret,secret,
msgdata,channel_init,flen,u16,
msgdata,channel_init,their_features,u8,flen
msgdata,channel_init,upfront_shutdown_script_len,u16,
msgdata,channel_init,upfront_shutdown_script,u8,upfront_shutdown_script_len
msgdata,channel_init,remote_ann_node_sig,?secp256k1_ecdsa_signature,
msgdata,channel_init,remote_ann_bitcoin_sig,?secp256k1_ecdsa_signature,
msgdata,channel_init,option_static_remotekey,bool,
msgdata,channel_init,dev_fast_gossip,bool,
msgdata,channel_init,dev_fail_process_onionpacket,bool,
# master->channeld funding hit new depth(funding locked if >= lock depth)
msgtype,channel_funding_depth,1002
msgdata,channel_funding_depth,short_channel_id,?short_channel_id,
msgdata,channel_funding_depth,depth,u32,
# Tell channel to offer this htlc
msgtype,channel_offer_htlc,1004
msgdata,channel_offer_htlc,amount_msat,amount_msat,
msgdata,channel_offer_htlc,cltv_expiry,u32,
msgdata,channel_offer_htlc,payment_hash,sha256,
msgdata,channel_offer_htlc,onion_routing_packet,u8,1366
msgdata,channel_offer_htlc,blinding,?pubkey,
# Reply; synchronous since IDs have to increment.
msgtype,channel_offer_htlc_reply,1104
msgdata,channel_offer_htlc_reply,id,u64,
# Empty failure message means success.
msgdata,channel_offer_htlc_reply,len,u16,
msgdata,channel_offer_htlc_reply,failuremsg,u8,len
msgdata,channel_offer_htlc_reply,failurestr,wirestring,
# Main daemon found out the preimage for an HTLC
#include <bitcoin/preimage.h>
msgtype,channel_fulfill_htlc,1005
msgdata,channel_fulfill_htlc,fulfilled_htlc,fulfilled_htlc,
# Main daemon says HTLC failed
msgtype,channel_fail_htlc,1006
msgdata,channel_fail_htlc,failed_htlc,failed_htlc,
# When we receive funding_locked.
msgtype,channel_got_funding_locked,1019
msgdata,channel_got_funding_locked,next_per_commit_point,pubkey,
# When we send a commitment_signed message, tell master.
msgtype,channel_sending_commitsig,1020
msgdata,channel_sending_commitsig,commitnum,u64,
msgdata,channel_sending_commitsig,fee_states,fee_states,
# SENT_ADD_COMMIT, SENT_REMOVE_ACK_COMMIT, SENT_ADD_ACK_COMMIT, SENT_REMOVE_COMMIT
msgdata,channel_sending_commitsig,num_changed,u16,
msgdata,channel_sending_commitsig,changed,changed_htlc,num_changed
msgdata,channel_sending_commitsig,commit_sig,bitcoin_signature,
msgdata,channel_sending_commitsig,num_htlc_sigs,u16,
msgdata,channel_sending_commitsig,htlc_sigs,secp256k1_ecdsa_signature,num_htlc_sigs
# Wait for reply, to make sure it's on disk before we send commit.
msgtype,channel_sending_commitsig_reply,1120
# When we have a commitment_signed message, tell master to remember.
msgtype,channel_got_commitsig,1021
msgdata,channel_got_commitsig,commitnum,u64,
msgdata,channel_got_commitsig,fee_states,fee_states,
msgdata,channel_got_commitsig,signature,bitcoin_signature,
msgdata,channel_got_commitsig,num_htlcs,u16,
msgdata,channel_got_commitsig,htlc_signature,secp256k1_ecdsa_signature,num_htlcs
# RCVD_ADD_COMMIT: we're now committed to their new offered HTLCs.
msgdata,channel_got_commitsig,num_added,u16,
msgdata,channel_got_commitsig,added,added_htlc,num_added
# RCVD_REMOVE_COMMIT: we're now no longer committed to these HTLCs.
msgdata,channel_got_commitsig,num_fulfilled,u16,
msgdata,channel_got_commitsig,fulfilled,fulfilled_htlc,num_fulfilled
msgdata,channel_got_commitsig,num_failed,u16,
msgdata,channel_got_commitsig,failed,failed_htlc,num_failed
# RCVD_ADD_ACK_COMMIT, RCVD_REMOVE_ACK_COMMIT
msgdata,channel_got_commitsig,num_changed,u16,
msgdata,channel_got_commitsig,changed,changed_htlc,num_changed
msgdata,channel_got_commitsig,tx,bitcoin_tx,
# Wait for reply, to make sure it's on disk before we send revocation.
msgtype,channel_got_commitsig_reply,1121
#include <common/htlc_wire.h>
msgtype,channel_got_revoke,1022
msgdata,channel_got_revoke,revokenum,u64,
msgdata,channel_got_revoke,per_commitment_secret,secret,
msgdata,channel_got_revoke,next_per_commit_point,pubkey,
# RCVD_ADD_ACK_REVOCATION, RCVD_REMOVE_ACK_REVOCATION, RCVD_ADD_REVOCATION, RCVD_REMOVE_REVOCATION
msgdata,channel_got_revoke,fee_states,fee_states,
msgdata,channel_got_revoke,num_changed,u16,
msgdata,channel_got_revoke,changed,changed_htlc,num_changed
# Wait for reply, to make sure it's on disk before we continue
# (eg. if we sent another commitment_signed, that would implicitly ack).
msgtype,channel_got_revoke_reply,1122
# Tell peer to shut down channel.
msgtype,channel_send_shutdown,1023
msgdata,channel_send_shutdown,shutdown_len,u16,
msgdata,channel_send_shutdown,shutdown_scriptpubkey,u8,shutdown_len
# Peer told us that channel is shutting down
msgtype,channel_got_shutdown,1024
msgdata,channel_got_shutdown,scriptpubkey_len,u16,
msgdata,channel_got_shutdown,scriptpubkey,u8,scriptpubkey_len
# Shutdown is complete, ready for closing negotiation. + peer_fd & gossip_fd.
msgtype,channel_shutdown_complete,1025
msgdata,channel_shutdown_complete,per_peer_state,per_peer_state,
# Re-enable commit timer.
msgtype,channel_dev_reenable_commit,1026
msgtype,channel_dev_reenable_commit_reply,1126,
msgtype,channel_feerates,1027
msgdata,channel_feerates,feerate,u32,
msgdata,channel_feerates,min_feerate,u32,
msgdata,channel_feerates,max_feerate,u32,
# master -> channeld: do you have a memleak?
msgtype,channel_dev_memleak,1033
msgtype,channel_dev_memleak_reply,1133
msgdata,channel_dev_memleak_reply,leak,bool,
# Peer presented proof it was from the future.
msgtype,channel_fail_fallen_behind,1028
# This is NULL if option_static_remotekey.
msgdata,channel_fail_fallen_behind,remote_per_commitment_point,?pubkey,
# Handle a channel specific feerate base ppm configuration
msgtype,channel_specific_feerates,1029
msgdata,channel_specific_feerates,feerate_base,u32,
msgdata,channel_specific_feerates,feerate_ppm,u32,
# When we receive announcement_signatures for channel announce
msgtype,channel_got_announcement,1017
msgdata,channel_got_announcement,remote_ann_node_sig,secp256k1_ecdsa_signature,
msgdata,channel_got_announcement,remote_ann_bitcoin_sig,secp256k1_ecdsa_signature,
# Ask channeld to send a error message. Used in forgetting channel case.
msgtype,channel_send_error,1008
msgdata,channel_send_error,reason,wirestring,
# Tell master channeld has sent the error message.
msgtype,channel_send_error_reply,1108
# Tell lightningd we got a onion message (for us, or to fwd)
msgtype,got_onionmsg_to_us,1142
msgdata,got_onionmsg_to_us,reply_blinding,?pubkey,
msgdata,got_onionmsg_to_us,reply_path_len,u16,
msgdata,got_onionmsg_to_us,reply_path,onionmsg_path,reply_path_len
msgtype,got_onionmsg_forward,1143
msgdata,got_onionmsg_forward,next_scid,?short_channel_id,
msgdata,got_onionmsg_forward,next_node_id,?node_id,
msgdata,got_onionmsg_forward,next_blinding,?pubkey,
msgdata,got_onionmsg_forward,next_onion,u8,1366
# Lightningd tells us to send a onion message.
msgtype,send_onionmsg,1040
msgdata,send_onionmsg,onion,u8,1366
msgdata,send_onionmsg,blinding,?pubkey,