core-lightning/channeld/channel_wire.csv
Rusty Russell ab9d9ef3b8 gossipd: drain fd instead of passing around gossip index.
(This was sitting in my gossip-enchancement patch queue, but it simplifies
this set too, so I moved it here).

In 94711969f we added an explicit gossip_index so when gossipd gets
peers back from other daemons, it knows what gossip it has sent (since
gossipd can send gossip after the other daemon is already complete).

This solution is insufficient for the more general case where gossipd
wants to send other messages reliably, so replace it with the other
solution: have gossipd drain the "gossip fd" which the daemon returns.

This turns out to be quite simple, and is probably how I should have
done it originally :(

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
60# Tx is deep enough, go!
61channel_funding_locked,1002
62channel_funding_locked,,short_channel_id,struct short_channel_id
63# Tell the channel that we may announce the channel's existence
64channel_funding_announce_depth,1003
65# Tell channel to offer this htlc
66channel_offer_htlc,1004
67channel_offer_htlc,,amount_msat,u64
68channel_offer_htlc,,cltv_expiry,u32
69channel_offer_htlc,,payment_hash,struct sha256
70channel_offer_htlc,,onion_routing_packet,1366*u8
71# Reply; synchronous since IDs have to increment.
72channel_offer_htlc_reply,1104
73channel_offer_htlc_reply,,id,u64
74# Zero failure code means success.
75channel_offer_htlc_reply,,failure_code,u16
76channel_offer_htlc_reply,,failurestrlen,u16
77channel_offer_htlc_reply,,failurestr,failurestrlen*u8
78# Main daemon found out the preimage for an HTLC
79#include <bitcoin/preimage.h>
80channel_fulfill_htlc,1005
81channel_fulfill_htlc,,id,u64
82channel_fulfill_htlc,,payment_preimage,struct preimage
83# Main daemon says HTLC failed
84channel_fail_htlc,1006
85channel_fail_htlc,,id,u64
86# If this is non-zero length, you need to wrap this and pass it on.
87channel_fail_htlc,,len,u16
88channel_fail_htlc,,error_pkt,len*u8
89# If it errcode is != 0, it's a local error, otherwise we're passing through.
90channel_fail_htlc,,errcode,u16
91# If errcode & UPDATE, this says which outgoing channel failed.
92channel_fail_htlc,,which_channel,struct short_channel_id
93# Ping/pong test.
94channel_ping,1011
95channel_ping,,num_pong_bytes,u16
96channel_ping,,len,u16
97channel_ping_reply,1111
98channel_ping_reply,,totlen,u16
99# When we receive funding_locked.
100channel_got_funding_locked,1019
101channel_got_funding_locked,,next_per_commit_point,struct pubkey
102# When we send a commitment_signed message, tell master.
103channel_sending_commitsig,1020
104channel_sending_commitsig,,commitnum,u64
105channel_sending_commitsig,,feerate,u32
106# SENT_ADD_COMMIT, SENT_REMOVE_ACK_COMMIT, SENT_ADD_ACK_COMMIT, SENT_REMOVE_COMMIT
107channel_sending_commitsig,,num_changed,u16
108channel_sending_commitsig,,changed,num_changed*struct changed_htlc
109channel_sending_commitsig,,commit_sig,secp256k1_ecdsa_signature
110channel_sending_commitsig,,num_htlc_sigs,u16
111channel_sending_commitsig,,htlc_sigs,num_htlc_sigs*secp256k1_ecdsa_signature
112# Wait for reply, to make sure it's on disk before we send commit.
113channel_sending_commitsig_reply,1120
114# When we have a commitment_signed message, tell master to remember.
115channel_got_commitsig,1021
116channel_got_commitsig,,commitnum,u64
117channel_got_commitsig,,feerate,u32
118channel_got_commitsig,,signature,secp256k1_ecdsa_signature
119channel_got_commitsig,,num_htlcs,u16
120channel_got_commitsig,,htlc_signature,num_htlcs*secp256k1_ecdsa_signature
121# RCVD_ADD_COMMIT: we're now committed to their new offered HTLCs.
122channel_got_commitsig,,num_added,u16
123channel_got_commitsig,,added,num_added*struct added_htlc
124channel_got_commitsig,,shared_secret,num_added*struct secret
125# RCVD_REMOVE_COMMIT: we're now no longer committed to these HTLCs.
126channel_got_commitsig,,num_fulfilled,u16
127channel_got_commitsig,,fulfilled,num_fulfilled*struct fulfilled_htlc
128channel_got_commitsig,,num_failed,u16
129channel_got_commitsig,,failed,num_failed*struct failed_htlc
130# RCVD_ADD_ACK_COMMIT, RCVD_REMOVE_ACK_COMMIT
131channel_got_commitsig,,num_changed,u16
132channel_got_commitsig,,changed,num_changed*struct changed_htlc
133channel_got_commitsig,,tx,struct bitcoin_tx
134# Wait for reply, to make sure it's on disk before we send revocation.
135channel_got_commitsig_reply,1121
136#include <common/htlc_wire.h>
137channel_got_revoke,1022
138channel_got_revoke,,revokenum,u64
139channel_got_revoke,,per_commitment_secret,struct sha256
140channel_got_revoke,,next_per_commit_point,struct pubkey
141# RCVD_ADD_ACK_REVOCATION, RCVD_REMOVE_ACK_REVOCATION, RCVD_ADD_REVOCATION, RCVD_REMOVE_REVOCATION
142channel_got_revoke,,num_changed,u16
143channel_got_revoke,,changed,num_changed*struct changed_htlc
144# Wait for reply, to make sure it's on disk before we continue
145# (eg. if we sent another commitment_signed, that would implicitly ack).
146channel_got_revoke_reply,1122
147# Tell peer to shut down channel.
148channel_send_shutdown,1023
149# Peer told us that channel is shutting down
150channel_got_shutdown,1024
151channel_got_shutdown,,scriptpubkey_len,u16
152channel_got_shutdown,,scriptpubkey,scriptpubkey_len*u8
153# Shutdown is complete, ready for closing negotiation. + peer_fd & gossip_fd.
154channel_shutdown_complete,1025
155channel_shutdown_complete,,crypto_state,struct crypto_state
156# Re-enable commit timer.
157channel_dev_reenable_commit,1026
158channel_dev_reenable_commit_reply,1126
159channel_feerates,1027
160channel_feerates,,feerate,u32
161channel_feerates,,min_feerate,u32
162channel_feerates,,max_feerate,u32