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