Skip to content

Commit be7d14a

Browse files
committed
splice: Add start_batch and an internal wire type
We add `start_batch` to match t-bast’s splicing spec and we add a new internal wire type `WIRE_PROTOCOL_BATCH_ELEMENT` using the type number 32899 following the spec in Bolt #1 for application-specific messages: “Custom (types 32768-65535): experimental and application-specific messages” Changelog-Added: support for `start_batch`
1 parent 420cff9 commit be7d14a

File tree

10 files changed

+44
-0
lines changed

10 files changed

+44
-0
lines changed

channeld/channeld.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4813,6 +4813,8 @@ static void peer_in(struct peer *peer, const u8 *msg)
48134813
case WIRE_UPDATE_ADD_HTLC:
48144814
handle_peer_add_htlc(peer, msg);
48154815
return;
4816+
case WIRE_START_BATCH:
4817+
return;
48164818
case WIRE_COMMITMENT_SIGNED:
48174819
handle_peer_commit_sig_batch(peer, msg, 0,
48184820
peer->channel->funding_pubkey[REMOTE],
@@ -4883,6 +4885,7 @@ static void peer_in(struct peer *peer, const u8 *msg)
48834885
return;
48844886

48854887
/* These are all swallowed by connectd */
4888+
case WIRE_PROTOCOL_BATCH_ELEMENT:
48864889
case WIRE_CHANNEL_ANNOUNCEMENT:
48874890
case WIRE_CHANNEL_UPDATE:
48884891
case WIRE_NODE_ANNOUNCEMENT:

common/gossmap.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1799,6 +1799,8 @@ const void *gossmap_stream_next(const tal_t *ctx,
17991799
case WIRE_UPDATE_FULFILL_HTLC:
18001800
case WIRE_UPDATE_FAIL_HTLC:
18011801
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
1802+
case WIRE_PROTOCOL_BATCH_ELEMENT:
1803+
case WIRE_START_BATCH:
18021804
case WIRE_COMMITMENT_SIGNED:
18031805
case WIRE_REVOKE_AND_ACK:
18041806
case WIRE_UPDATE_FEE:

common/interactivetx.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,8 @@ static u8 *read_next_msg(const tal_t *ctx,
163163
case WIRE_UPDATE_FULFILL_HTLC:
164164
case WIRE_UPDATE_FAIL_HTLC:
165165
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
166+
case WIRE_PROTOCOL_BATCH_ELEMENT:
167+
case WIRE_START_BATCH:
166168
case WIRE_COMMITMENT_SIGNED:
167169
case WIRE_REVOKE_AND_ACK:
168170
case WIRE_UPDATE_FEE:
@@ -771,6 +773,8 @@ char *process_interactivetx_updates(const tal_t *ctx,
771773
case WIRE_UPDATE_FULFILL_HTLC:
772774
case WIRE_UPDATE_FAIL_HTLC:
773775
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
776+
case WIRE_PROTOCOL_BATCH_ELEMENT:
777+
case WIRE_START_BATCH:
774778
case WIRE_COMMITMENT_SIGNED:
775779
case WIRE_REVOKE_AND_ACK:
776780
case WIRE_UPDATE_FEE:

connectd/gossip_rcvd_filter.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ static bool is_msg_gossip_broadcast(const u8 *cursor)
7373
case WIRE_UPDATE_FULFILL_HTLC:
7474
case WIRE_UPDATE_FAIL_HTLC:
7575
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
76+
case WIRE_PROTOCOL_BATCH_ELEMENT:
77+
case WIRE_START_BATCH:
7678
case WIRE_COMMITMENT_SIGNED:
7779
case WIRE_REVOKE_AND_ACK:
7880
case WIRE_UPDATE_FEE:

connectd/gossip_store.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ static bool public_msg_type(enum peer_wire type)
8282
case WIRE_UPDATE_FULFILL_HTLC:
8383
case WIRE_UPDATE_FAIL_HTLC:
8484
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
85+
case WIRE_PROTOCOL_BATCH_ELEMENT:
86+
case WIRE_START_BATCH:
8587
case WIRE_COMMITMENT_SIGNED:
8688
case WIRE_REVOKE_AND_ACK:
8789
case WIRE_UPDATE_FEE:

connectd/multiplex.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,8 @@ static bool is_urgent(enum peer_wire type)
382382
/* These are time-sensitive, and so send without delay. */
383383
case WIRE_PING:
384384
case WIRE_PONG:
385+
case WIRE_PROTOCOL_BATCH_ELEMENT:
386+
case WIRE_START_BATCH:
385387
case WIRE_COMMITMENT_SIGNED:
386388
case WIRE_REVOKE_AND_ACK:
387389
return true;

gossipd/gossipd.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,8 @@ static void handle_recv_gossip(struct daemon *daemon, const u8 *outermsg)
244244
case WIRE_UPDATE_FULFILL_HTLC:
245245
case WIRE_UPDATE_FAIL_HTLC:
246246
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
247+
case WIRE_PROTOCOL_BATCH_ELEMENT:
248+
case WIRE_START_BATCH:
247249
case WIRE_COMMITMENT_SIGNED:
248250
case WIRE_REVOKE_AND_ACK:
249251
case WIRE_UPDATE_FEE:

openingd/dualopend.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1673,6 +1673,8 @@ static u8 *opening_negotiate_msg(const tal_t *ctx, struct state *state)
16731673
case WIRE_UPDATE_FULFILL_HTLC:
16741674
case WIRE_UPDATE_FAIL_HTLC:
16751675
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
1676+
case WIRE_PROTOCOL_BATCH_ELEMENT:
1677+
case WIRE_START_BATCH:
16761678
case WIRE_COMMITMENT_SIGNED:
16771679
case WIRE_REVOKE_AND_ACK:
16781680
case WIRE_UPDATE_FEE:
@@ -2057,6 +2059,8 @@ static bool run_tx_interactive(struct state *state,
20572059
case WIRE_UPDATE_FULFILL_HTLC:
20582060
case WIRE_UPDATE_FAIL_HTLC:
20592061
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
2062+
case WIRE_PROTOCOL_BATCH_ELEMENT:
2063+
case WIRE_START_BATCH:
20602064
case WIRE_COMMITMENT_SIGNED:
20612065
case WIRE_REVOKE_AND_ACK:
20622066
case WIRE_UPDATE_FEE:
@@ -4209,6 +4213,9 @@ static u8 *handle_peer_in(struct state *state)
42094213
}
42104214
accepter_start(state, msg);
42114215
return NULL;
4216+
case WIRE_START_BATCH:
4217+
/* We ignore batch messages as we dont need them */
4218+
return NULL;
42124219
case WIRE_COMMITMENT_SIGNED:
42134220
handle_commit_signed(state, msg);
42144221
return NULL;
@@ -4270,6 +4277,7 @@ static u8 *handle_peer_in(struct state *state)
42704277
case WIRE_SPLICE:
42714278
case WIRE_SPLICE_ACK:
42724279
case WIRE_SPLICE_LOCKED:
4280+
case WIRE_PROTOCOL_BATCH_ELEMENT:
42734281
break;
42744282
}
42754283

wire/peer_wire.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ static bool unknown_type(enum peer_wire t)
2121
case WIRE_UPDATE_FULFILL_HTLC:
2222
case WIRE_UPDATE_FAIL_HTLC:
2323
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
24+
case WIRE_PROTOCOL_BATCH_ELEMENT:
25+
case WIRE_START_BATCH:
2426
case WIRE_COMMITMENT_SIGNED:
2527
case WIRE_REVOKE_AND_ACK:
2628
case WIRE_UPDATE_FEE:
@@ -89,6 +91,8 @@ bool is_msg_for_gossipd(const u8 *cursor)
8991
case WIRE_UPDATE_FULFILL_HTLC:
9092
case WIRE_UPDATE_FAIL_HTLC:
9193
case WIRE_UPDATE_FAIL_MALFORMED_HTLC:
94+
case WIRE_PROTOCOL_BATCH_ELEMENT:
95+
case WIRE_START_BATCH:
9296
case WIRE_COMMITMENT_SIGNED:
9397
case WIRE_REVOKE_AND_ACK:
9498
case WIRE_UPDATE_FEE:
@@ -166,6 +170,7 @@ bool extract_channel_id(const u8 *in_pkt, struct channel_id *channel_id)
166170
case WIRE_ONION_MESSAGE:
167171
case WIRE_PEER_STORAGE:
168172
case WIRE_PEER_STORAGE_RETRIEVAL:
173+
case WIRE_PROTOCOL_BATCH_ELEMENT:
169174
return false;
170175

171176
/* Special cases: */
@@ -345,6 +350,11 @@ bool extract_channel_id(const u8 *in_pkt, struct channel_id *channel_id)
345350
* 2. data:
346351
* * [`channel_id`:`channel_id`]
347352
*/
353+
case WIRE_START_BATCH:
354+
/* 1. type: 127 (`start_batch`)
355+
* 2. data:
356+
* * [`channel_id`:`channel_id`]
357+
*/
348358
case WIRE_COMMITMENT_SIGNED:
349359
/* BOLT #2:
350360
* 1. type: 132 (`commitment_signed`)

wire/peer_wire.csv

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
msgtype,protocol_batch_element,0
2+
msgdata,protocol_batch_element,channel_id,channel_id,
3+
msgdata,protocol_batch_element,element_size,u16,
14
msgtype,init,16
25
msgdata,init,gflen,u16,
36
msgdata,init,globalfeatures,byte,gflen
@@ -293,6 +296,12 @@ msgdata,update_fail_malformed_htlc,channel_id,channel_id,
293296
msgdata,update_fail_malformed_htlc,id,u64,
294297
msgdata,update_fail_malformed_htlc,sha256_of_onion,sha256,
295298
msgdata,update_fail_malformed_htlc,failure_code,u16,
299+
msgtype,start_batch,127
300+
msgdata,start_batch,channel_id,channel_id,
301+
msgdata,start_batch,batch_size,u16,
302+
msgdata,start_batch,batch_info,start_batch_tlvs,
303+
tlvtype,start_batch_tlvs,batch_info,1
304+
tlvdata,start_batch_tlvs,batch_info,message_type,u16,
296305
msgtype,commitment_signed,132
297306
msgdata,commitment_signed,channel_id,channel_id,
298307
msgdata,commitment_signed,signature,signature,

0 commit comments

Comments
 (0)