Update to match spec: "BOLT7: Reorder feature bitmaps in order to allow future changes"
aka. a257554456cda98afd1532c302c0e5e84de0455e Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
2b7c091e70
commit
40895e4550
|
@ -75,16 +75,16 @@ static void broadcast_node_announcement(struct lightningd_state *dstate)
|
|||
|
||||
address = write_ip(tmpctx, dstate->external_ip, dstate->portnum);
|
||||
serialized = towire_node_announcement(tmpctx, &signature,
|
||||
NULL,
|
||||
timestamp,
|
||||
&dstate->id, rgb_color, alias,
|
||||
NULL,
|
||||
address);
|
||||
privkey_sign(dstate, serialized + 66, tal_count(serialized) - 66,
|
||||
&signature);
|
||||
serialized = towire_node_announcement(tmpctx, &signature,
|
||||
NULL,
|
||||
timestamp,
|
||||
&dstate->id, rgb_color, alias,
|
||||
NULL,
|
||||
address);
|
||||
u8 *tag = tal_arr(tmpctx, u8, 0);
|
||||
towire_pubkey(&tag, &dstate->id);
|
||||
|
@ -147,24 +147,24 @@ static void broadcast_channel_announcement(struct lightningd_state *dstate, stru
|
|||
&node_signature[1],
|
||||
&bitcoin_signature[0],
|
||||
&bitcoin_signature[1],
|
||||
NULL,
|
||||
&short_channel_id,
|
||||
node_id[0],
|
||||
node_id[1],
|
||||
bitcoin_key[0],
|
||||
bitcoin_key[1],
|
||||
NULL);
|
||||
bitcoin_key[1]);
|
||||
privkey_sign(dstate, serialized + 256, tal_count(serialized) - 256, my_node_signature);
|
||||
|
||||
serialized = towire_channel_announcement(tmpctx, &node_signature[0],
|
||||
&node_signature[1],
|
||||
&bitcoin_signature[0],
|
||||
&bitcoin_signature[1],
|
||||
NULL,
|
||||
&short_channel_id,
|
||||
node_id[0],
|
||||
node_id[1],
|
||||
bitcoin_key[0],
|
||||
bitcoin_key[1],
|
||||
NULL);
|
||||
bitcoin_key[1]);
|
||||
u8 *tag = tal_arr(tmpctx, u8, 0);
|
||||
towire_short_channel_id(&tag, &short_channel_id);
|
||||
queue_broadcast(dstate->rstate->broadcasts, WIRE_CHANNEL_ANNOUNCEMENT,
|
||||
|
|
|
@ -706,10 +706,10 @@ void handle_channel_announcement(
|
|||
&node_signature_1, &node_signature_2,
|
||||
&bitcoin_signature_1,
|
||||
&bitcoin_signature_2,
|
||||
&features,
|
||||
&short_channel_id,
|
||||
&node_id_1, &node_id_2,
|
||||
&bitcoin_key_1, &bitcoin_key_2,
|
||||
&features)) {
|
||||
&bitcoin_key_1, &bitcoin_key_2)) {
|
||||
tal_free(tmpctx);
|
||||
return;
|
||||
}
|
||||
|
@ -866,8 +866,8 @@ void handle_node_announcement(
|
|||
|
||||
serialized = tal_dup_arr(tmpctx, u8, node_ann, len, 0);
|
||||
if (!fromwire_node_announcement(tmpctx, serialized, NULL,
|
||||
&signature, ×tamp,
|
||||
&node_id, rgb_color, alias, &features,
|
||||
&signature, &features, ×tamp,
|
||||
&node_id, rgb_color, alias,
|
||||
&addresses)) {
|
||||
tal_free(tmpctx);
|
||||
return;
|
||||
|
|
|
@ -265,9 +265,10 @@ static u8 *create_channel_announcement(const tal_t *ctx, struct peer *peer)
|
|||
&peer->announcement_node_sigs[second],
|
||||
&peer->announcement_bitcoin_sigs[first],
|
||||
&peer->announcement_bitcoin_sigs[second],
|
||||
features,
|
||||
&peer->short_channel_ids[LOCAL], &peer->node_ids[first],
|
||||
&peer->node_ids[second], &peer->channel->funding_pubkey[first],
|
||||
&peer->channel->funding_pubkey[second], features);
|
||||
&peer->channel->funding_pubkey[second]);
|
||||
tal_free(features);
|
||||
return cannounce;
|
||||
}
|
||||
|
|
|
@ -988,8 +988,8 @@ static u8 *create_node_announcement(const tal_t *ctx, struct lightningd *ld,
|
|||
}
|
||||
memset(alias, 0, sizeof(alias));
|
||||
announcement =
|
||||
towire_node_announcement(ctx, sig, timestamp, &ld->dstate.id, rgb,
|
||||
alias, features, addresses);
|
||||
towire_node_announcement(ctx, sig, features, timestamp,
|
||||
&ld->dstate.id, rgb, alias, addresses);
|
||||
return announcement;
|
||||
}
|
||||
|
||||
|
|
|
@ -112,21 +112,21 @@ channel_announcement,0,node_signature_1,64
|
|||
channel_announcement,64,node_signature_2,64
|
||||
channel_announcement,128,bitcoin_signature_1,64
|
||||
channel_announcement,192,bitcoin_signature_2,64
|
||||
channel_announcement,256,short_channel_id,8
|
||||
channel_announcement,264,node_id_1,33
|
||||
channel_announcement,297,node_id_2,33
|
||||
channel_announcement,330,bitcoin_key_1,33
|
||||
channel_announcement,363,bitcoin_key_2,33
|
||||
channel_announcement,396,len,2
|
||||
channel_announcement,398,features,len
|
||||
channel_announcement,256,len,2
|
||||
channel_announcement,258,features,len
|
||||
channel_announcement,258+len,short_channel_id,8
|
||||
channel_announcement,266+len,node_id_1,33
|
||||
channel_announcement,299+len,node_id_2,33
|
||||
channel_announcement,332+len,bitcoin_key_1,33
|
||||
channel_announcement,365+len,bitcoin_key_2,33
|
||||
node_announcement,257
|
||||
node_announcement,0,signature,64
|
||||
node_announcement,64,timestamp,4
|
||||
node_announcement,68,node_id,33
|
||||
node_announcement,101,rgb_color,3
|
||||
node_announcement,104,alias,32
|
||||
node_announcement,136,flen,2
|
||||
node_announcement,138,features,flen
|
||||
node_announcement,64,flen,2
|
||||
node_announcement,66,features,flen
|
||||
node_announcement,66+flen,timestamp,4
|
||||
node_announcement,70+flen,node_id,33
|
||||
node_announcement,103+flen,rgb_color,3
|
||||
node_announcement,106+flen,alias,32
|
||||
node_announcement,138+flen,addrlen,2
|
||||
node_announcement,140+flen,addresses,addrlen
|
||||
channel_update,258
|
||||
|
|
|
@ -192,12 +192,12 @@ struct msg_channel_announcement {
|
|||
secp256k1_ecdsa_signature node_signature_2;
|
||||
secp256k1_ecdsa_signature bitcoin_signature_1;
|
||||
secp256k1_ecdsa_signature bitcoin_signature_2;
|
||||
u8 *features;
|
||||
struct short_channel_id short_channel_id;
|
||||
struct pubkey node_id_1;
|
||||
struct pubkey node_id_2;
|
||||
struct pubkey bitcoin_key_1;
|
||||
struct pubkey bitcoin_key_2;
|
||||
struct short_channel_id short_channel_id;
|
||||
u8 *features;
|
||||
};
|
||||
struct msg_init {
|
||||
u8 *globalfeatures;
|
||||
|
@ -224,12 +224,12 @@ static void *towire_struct_channel_announcement(const tal_t *ctx,
|
|||
&s->node_signature_2,
|
||||
&s->bitcoin_signature_1,
|
||||
&s->bitcoin_signature_2,
|
||||
s->features,
|
||||
&s->short_channel_id,
|
||||
&s->node_id_1,
|
||||
&s->node_id_2,
|
||||
&s->bitcoin_key_1,
|
||||
&s->bitcoin_key_2,
|
||||
s->features);
|
||||
&s->bitcoin_key_2);
|
||||
}
|
||||
|
||||
static struct msg_channel_announcement *fromwire_struct_channel_announcement(const tal_t *ctx, const void *p, size_t *plen)
|
||||
|
@ -240,12 +240,12 @@ static struct msg_channel_announcement *fromwire_struct_channel_announcement(con
|
|||
&s->node_signature_2,
|
||||
&s->bitcoin_signature_1,
|
||||
&s->bitcoin_signature_2,
|
||||
&s->features,
|
||||
&s->short_channel_id,
|
||||
&s->node_id_1,
|
||||
&s->node_id_2,
|
||||
&s->bitcoin_key_1,
|
||||
&s->bitcoin_key_2,
|
||||
&s->features))
|
||||
&s->bitcoin_key_2))
|
||||
return tal_free(s);
|
||||
return s;
|
||||
}
|
||||
|
@ -345,24 +345,25 @@ static void *towire_struct_node_announcement(const tal_t *ctx,
|
|||
{
|
||||
return towire_node_announcement(ctx,
|
||||
&s->signature,
|
||||
s->features,
|
||||
s->timestamp,
|
||||
&s->node_id,
|
||||
s->rgb_color,
|
||||
s->alias,
|
||||
s->features,
|
||||
s->addresses);
|
||||
}
|
||||
|
||||
static struct msg_node_announcement *fromwire_struct_node_announcement(const tal_t *ctx, const void *p, size_t *plen)
|
||||
{
|
||||
struct msg_node_announcement *s = tal(ctx, struct msg_node_announcement);
|
||||
if (!fromwire_node_announcement(s, p, plen,
|
||||
if (!fromwire_node_announcement(s, p, plen,
|
||||
&s->signature,
|
||||
&s->features,
|
||||
&s->timestamp,
|
||||
&s->node_id,
|
||||
s->rgb_color,
|
||||
s->alias,
|
||||
&s->features, &s->addresses))
|
||||
&s->addresses))
|
||||
return tal_free(s);
|
||||
return s;
|
||||
}
|
||||
|
@ -697,9 +698,10 @@ static struct msg_init *fromwire_struct_init(const tal_t *ctx, const void *p, si
|
|||
static bool channel_announcement_eq(const struct msg_channel_announcement *a,
|
||||
const struct msg_channel_announcement *b)
|
||||
{
|
||||
return eq_upto(a, b, short_channel_id) &&
|
||||
short_channel_id_eq(&a->short_channel_id, &b->short_channel_id)
|
||||
&& eq_var(a, b, features);
|
||||
return eq_upto(a, b, features)
|
||||
&& eq_var(a, b, features)
|
||||
&& short_channel_id_eq(&a->short_channel_id, &b->short_channel_id)
|
||||
&& eq_between(a, b, node_id_1, bitcoin_key_2);
|
||||
}
|
||||
|
||||
static bool funding_locked_eq(const struct msg_funding_locked *a,
|
||||
|
|
Loading…
Reference in New Issue