core-lightning/channeld/channel_wire.csv
Rusty Russell 8a16963f22 channeld: get told when announce depth already reached.
If channeld dies for some reason (eg, reconnect) and we didn't yet announce
the channel, we can miss doing so.  This is unusual, because if lightningd
restarts it rearms the callback which gives us funding_locked, so it only
happens if just channel dies before sending the announcement message.

This problem applies to both temporary announcement (for gossipd) and
the real one.  For the temporary one, simply re-send on startup, and
remote the error msg gossipd gives if it sees a second one.  For the
real one, we need a flag to tell us the depth is sufficient; the peer
will ignore re-sends anyway.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-04-26 05:47:57 +00:00

6.9 KiB

1#include <common/cryptomsg.h>
2#include <common/channel_config.h>
3# Begin! (passes gossipd-client fd)
4channel_init,1000
5channel_init,,chain_hash,struct bitcoin_blkid
6channel_init,,funding_txid,struct bitcoin_txid
7channel_init,,funding_txout,u16
8channel_init,,funding_satoshi,u64
9channel_init,,our_config,struct channel_config
10channel_init,,their_config,struct channel_config
11# FIXME: Fix generate-wire.py to allow NUM_SIDES*u32 here.
12channel_init,,feerate_per_kw,2*u32
13channel_init,,feerate_min,u32
14channel_init,,feerate_max,u32
15channel_init,,first_commit_sig,secp256k1_ecdsa_signature
16channel_init,,crypto_state,struct crypto_state
17channel_init,,remote_fundingkey,struct pubkey
18channel_init,,remote_revocation_basepoint,struct pubkey
19channel_init,,remote_payment_basepoint,struct pubkey
20channel_init,,remote_htlc_basepoint,struct pubkey
21channel_init,,remote_delayed_payment_basepoint,struct pubkey
22channel_init,,remote_per_commit,struct pubkey
23channel_init,,old_remote_per_commit,struct pubkey
24channel_init,,funder,enum side
25channel_init,,fee_base,u32
26channel_init,,fee_proportional,u32
27channel_init,,local_msatoshi,u64
28channel_init,,seed,struct privkey
29channel_init,,local_node_id,struct pubkey
30channel_init,,remote_node_id,struct pubkey
31channel_init,,commit_msec,u32
32channel_init,,cltv_delta,u16
33channel_init,,last_was_revoke,bool
34channel_init,,num_last_sent_commit,u16
35channel_init,,last_sent_commit,num_last_sent_commit*struct changed_htlc
36channel_init,,next_index_local,u64
37channel_init,,next_index_remote,u64
38channel_init,,revocations_received,u64
39channel_init,,next_htlc_id,u64
40channel_init,,num_htlcs,u16
41channel_init,,htlcs,num_htlcs*struct added_htlc
42channel_init,,htlc_states,num_htlcs*enum htlc_state
43channel_init,,num_fulfilled,u16
44channel_init,,fulfilled,num_fulfilled*struct fulfilled_htlc
45channel_init,,fulfilled_sides,num_fulfilled*enum side
46channel_init,,num_failed,u16
47channel_init,,failed,num_failed*struct failed_htlc
48channel_init,,failed_sides,num_failed*enum side
49channel_init,,local_funding_locked,bool
50channel_init,,remote_funding_locked,bool
51channel_init,,funding_short_id,struct short_channel_id
52channel_init,,reestablish,bool
53channel_init,,send_shutdown,bool
54channel_init,,remote_shutdown_received,bool
55channel_init,,final_scriptpubkey_len,u16
56channel_init,,final_scriptpubkey,final_scriptpubkey_len*u8
57channel_init,,flags,u8
58channel_init,,init_peer_pkt_len,u16
59channel_init,,init_peer_pkt,init_peer_pkt_len*u8
60channel_init,,reached_announce_depth,bool
61# Tx is deep enough, go!
62channel_funding_locked,1002
63channel_funding_locked,,short_channel_id,struct short_channel_id
64# Tell the channel that we may announce the channel's existence
65channel_funding_announce_depth,1003
66# Tell channel to offer this htlc
67channel_offer_htlc,1004
68channel_offer_htlc,,amount_msat,u64
69channel_offer_htlc,,cltv_expiry,u32
70channel_offer_htlc,,payment_hash,struct sha256
71channel_offer_htlc,,onion_routing_packet,1366*u8
72# Reply; synchronous since IDs have to increment.
73channel_offer_htlc_reply,1104
74channel_offer_htlc_reply,,id,u64
75# Zero failure code means success.
76channel_offer_htlc_reply,,failure_code,u16
77channel_offer_htlc_reply,,failurestrlen,u16
78channel_offer_htlc_reply,,failurestr,failurestrlen*u8
79# Main daemon found out the preimage for an HTLC
80#include <bitcoin/preimage.h>
81channel_fulfill_htlc,1005
82channel_fulfill_htlc,,id,u64
83channel_fulfill_htlc,,payment_preimage,struct preimage
84# Main daemon says HTLC failed
85channel_fail_htlc,1006
86channel_fail_htlc,,id,u64
87# If this is non-zero length, you need to wrap this and pass it on.
88channel_fail_htlc,,len,u16
89channel_fail_htlc,,error_pkt,len*u8
90# If it errcode is != 0, it's a local error, otherwise we're passing through.
91channel_fail_htlc,,errcode,u16
92# If errcode & UPDATE, this says which outgoing channel failed.
93channel_fail_htlc,,which_channel,struct short_channel_id
94# Ping/pong test.
95channel_ping,1011
96channel_ping,,num_pong_bytes,u16
97channel_ping,,len,u16
98channel_ping_reply,1111
99channel_ping_reply,,totlen,u16
100# When we receive funding_locked.
101channel_got_funding_locked,1019
102channel_got_funding_locked,,next_per_commit_point,struct pubkey
103# When we send a commitment_signed message, tell master.
104channel_sending_commitsig,1020
105channel_sending_commitsig,,commitnum,u64
106channel_sending_commitsig,,feerate,u32
107# SENT_ADD_COMMIT, SENT_REMOVE_ACK_COMMIT, SENT_ADD_ACK_COMMIT, SENT_REMOVE_COMMIT
108channel_sending_commitsig,,num_changed,u16
109channel_sending_commitsig,,changed,num_changed*struct changed_htlc
110channel_sending_commitsig,,commit_sig,secp256k1_ecdsa_signature
111channel_sending_commitsig,,num_htlc_sigs,u16
112channel_sending_commitsig,,htlc_sigs,num_htlc_sigs*secp256k1_ecdsa_signature
113# Wait for reply, to make sure it's on disk before we send commit.
114channel_sending_commitsig_reply,1120
115# When we have a commitment_signed message, tell master to remember.
116channel_got_commitsig,1021
117channel_got_commitsig,,commitnum,u64
118channel_got_commitsig,,feerate,u32
119channel_got_commitsig,,signature,secp256k1_ecdsa_signature
120channel_got_commitsig,,num_htlcs,u16
121channel_got_commitsig,,htlc_signature,num_htlcs*secp256k1_ecdsa_signature
122# RCVD_ADD_COMMIT: we're now committed to their new offered HTLCs.
123channel_got_commitsig,,num_added,u16
124channel_got_commitsig,,added,num_added*struct added_htlc
125channel_got_commitsig,,shared_secret,num_added*struct secret
126# RCVD_REMOVE_COMMIT: we're now no longer committed to these HTLCs.
127channel_got_commitsig,,num_fulfilled,u16
128channel_got_commitsig,,fulfilled,num_fulfilled*struct fulfilled_htlc
129channel_got_commitsig,,num_failed,u16
130channel_got_commitsig,,failed,num_failed*struct failed_htlc
131# RCVD_ADD_ACK_COMMIT, RCVD_REMOVE_ACK_COMMIT
132channel_got_commitsig,,num_changed,u16
133channel_got_commitsig,,changed,num_changed*struct changed_htlc
134channel_got_commitsig,,tx,struct bitcoin_tx
135# Wait for reply, to make sure it's on disk before we send revocation.
136channel_got_commitsig_reply,1121
137#include <common/htlc_wire.h>
138channel_got_revoke,1022
139channel_got_revoke,,revokenum,u64
140channel_got_revoke,,per_commitment_secret,struct sha256
141channel_got_revoke,,next_per_commit_point,struct pubkey
142# RCVD_ADD_ACK_REVOCATION, RCVD_REMOVE_ACK_REVOCATION, RCVD_ADD_REVOCATION, RCVD_REMOVE_REVOCATION
143channel_got_revoke,,num_changed,u16
144channel_got_revoke,,changed,num_changed*struct changed_htlc
145# Wait for reply, to make sure it's on disk before we continue
146# (eg. if we sent another commitment_signed, that would implicitly ack).
147channel_got_revoke_reply,1122
148# Tell peer to shut down channel.
149channel_send_shutdown,1023
150# Peer told us that channel is shutting down
151channel_got_shutdown,1024
152channel_got_shutdown,,scriptpubkey_len,u16
153channel_got_shutdown,,scriptpubkey,scriptpubkey_len*u8
154# Shutdown is complete, ready for closing negotiation. + peer_fd & gossip_fd.
155channel_shutdown_complete,1025
156channel_shutdown_complete,,crypto_state,struct crypto_state
157# Re-enable commit timer.
158channel_dev_reenable_commit,1026
159channel_dev_reenable_commit_reply,1126
160channel_feerates,1027
161channel_feerates,,feerate,u32
162channel_feerates,,min_feerate,u32
163channel_feerates,,max_feerate,u32