mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-19 18:11:28 +01:00
b4455d517c
Node ids are pubkeys, but we only use them as pubkeys for routing and checking gossip messages. So we're packing and unpacking them constantly, and wasting some space and time. This introduces a new type, explicitly the SEC1 compressed encoding (33 bytes). We ensure its validity when we load from the db, or get it from JSON. We still use 'struct pubkey' for peer messages, which checks validity. Results from 5 runs, min-max(mean +/- stddev): store_load_msec,vsz_kb,store_rewrite_sec,listnodes_sec,listchannels_sec,routing_sec,peer_write_all_sec 39475-39572(39518+/-36),2880732,41.150000-41.390000(41.298+/-0.085),2.260000-2.550000(2.336+/-0.11),44.390000-65.150000(58.648+/-7.5),32.740000-33.020000(32.89+/-0.093),44.130000-45.090000(44.566+/-0.32) Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
28 lines
1.5 KiB
C
28 lines
1.5 KiB
C
#ifndef LIGHTNING_DEVTOOLS_PRINT_WIRE_H
|
|
#define LIGHTNING_DEVTOOLS_PRINT_WIRE_H
|
|
#include <bitcoin/preimage.h>
|
|
#include <bitcoin/tx.h>
|
|
#include <common/wireaddr.h>
|
|
#include <wire/gen_peer_wire.h>
|
|
|
|
void printwire_u8(const char *fieldname, const u8 *v);
|
|
void printwire_u16(const char *fieldname, const u16 *v);
|
|
void printwire_u32(const char *fieldname, const u32 *v);
|
|
void printwire_u64(const char *fieldname, const u64 *v);
|
|
void printwire_u8_array(const char *fieldname, const u8 **cursor, size_t *plen, size_t len);
|
|
|
|
void printwire_bitcoin_blkid(const char *fieldname, const struct bitcoin_blkid *bitcoin_blkid);
|
|
void printwire_bitcoin_txid(const char *fieldname, const struct bitcoin_txid *bitcoin_txid);
|
|
void printwire_channel_id(const char *fieldname, const struct channel_id *channel_id);
|
|
void printwire_amount_sat(const char *fieldname, const struct amount_sat *sat);
|
|
void printwire_amount_msat(const char *fieldname, const struct amount_msat *msat);
|
|
void printwire_preimage(const char *fieldname, const struct preimage *preimage);
|
|
void printwire_pubkey(const char *fieldname, const struct pubkey *pubkey);
|
|
void printwire_node_id(const char *fieldname, const struct node_id *id);
|
|
void printwire_secp256k1_ecdsa_signature(const char *fieldname, const secp256k1_ecdsa_signature *);
|
|
void printwire_sha256(const char *fieldname, const struct sha256 *sha256);
|
|
void printwire_secret(const char *fieldname, const struct secret *secret);
|
|
void printwire_short_channel_id(const char *fieldname, const struct short_channel_id *short_channel_id);
|
|
|
|
#endif /* LIGHTNING_DEVTOOLS_PRINT_WIRE_H */
|