Skip to content

Commit 01b65d1

Browse files
committed
gossmap: print out nodeids and aliases, so you can map them back after compression.
Signed-off-by: Rusty Russell <[email protected]>
1 parent e55a485 commit 01b65d1

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

devtools/gossmap-compress.c

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -496,10 +496,32 @@ static char *opt_node(const char *optarg, const struct pubkey ***node_ids)
496496
return NULL;
497497
}
498498

499+
static const char *get_alias(const tal_t *ctx,
500+
const struct gossmap *gossmap,
501+
const struct gossmap_node *n)
502+
{
503+
const u8 *ann = gossmap_node_get_announce(tmpctx, gossmap, n);
504+
secp256k1_ecdsa_signature signature;
505+
u8 *features;
506+
u32 timestamp;
507+
struct node_id node_id;
508+
u8 rgb_color[3];
509+
u8 alias[32];
510+
u8 *addresses;
511+
struct tlv_node_ann_tlvs *tlvs;
512+
513+
if (!fromwire_node_announcement(tmpctx, ann, &signature, &features, &timestamp,
514+
&node_id, rgb_color, alias, &addresses,
515+
&tlvs))
516+
return "";
517+
return tal_strndup(ctx, (const char *)alias, 32);
518+
}
519+
499520
int main(int argc, char *argv[])
500521
{
501522
int infd, outfd;
502523
const struct pubkey **node_ids;
524+
bool print_nodes = false;
503525

504526
common_setup(argv[0]);
505527
setup_locale();
@@ -508,7 +530,9 @@ int main(int argc, char *argv[])
508530
opt_register_noarg("--verbose|-v", opt_add_one, &verbose,
509531
"Print details (each additional gives more!).");
510532
opt_register_arg("--node-map=num=<nodeid>", opt_node, NULL, &node_ids,
511-
"Map node num to <nodeid>");
533+
"Map node num to <nodeid> (decompress only)");
534+
opt_register_noarg("--output-node-map", opt_set_bool, &print_nodes,
535+
"Output nodenumber:nodeid:alias for each node (compress only)");
512536
opt_register_noarg("--help|-h", opt_usage_and_exit,
513537
"[decompress|compress] infile outfile\n"
514538
"Compress or decompress a gossmap file",
@@ -554,8 +578,18 @@ int main(int argc, char *argv[])
554578

555579
/* Create map of gossmap index to compression index */
556580
node_to_compr_idx = tal_arr(nodes, size_t, gossmap_max_node_idx(gossmap));
557-
for (size_t i = 0; i < tal_count(nodes); i++)
581+
for (size_t i = 0; i < tal_count(nodes); i++) {
558582
node_to_compr_idx[gossmap_node_idx(gossmap, nodes[i])] = i;
583+
if (print_nodes) {
584+
struct node_id node_id;
585+
gossmap_node_get_id(gossmap, nodes[i], &node_id);
586+
587+
printf("%zu:%s:%s\n",
588+
i,
589+
fmt_node_id(tmpctx, &node_id),
590+
get_alias(tmpctx, gossmap, nodes[i]));
591+
}
592+
}
559593

560594
if (gzwrite(outf, GC_HEADER, GC_HEADERLEN) == 0)
561595
err(1, "Writing header");

0 commit comments

Comments
 (0)