bolt7

Routing gossip protocol, per BOLT #7 (docs.ppad.tech/bolt7).
git clone git://git.ppad.tech/bolt7.git
Log | Files | Refs | README | LICENSE

Weight.hs (1824B)


      1 -- |
      2 -- Module: Main
      3 -- Copyright: (c) 2025 Jared Tobin
      4 -- License: MIT
      5 -- Maintainer: Jared Tobin <jared@ppad.tech>
      6 --
      7 -- Weigh allocation benchmarks for ppad-bolt7.
      8 
      9 module Main where
     10 
     11 import Fixtures
     12 import Lightning.Protocol.BOLT7
     13 import System.Exit (exitFailure)
     14 import Weigh
     15 
     16 main :: IO ()
     17 main = case fixtures of
     18   Nothing -> putStrLn "fixtures failed to build" >> exitFailure
     19   Just f  -> mainWith $ do
     20     wgroup "decode" $ do
     21       func "channel_announcement" decode_channel_announcement (f_ann_bytes f)
     22       func "node_announcement" decode_node_announcement (f_node_bytes f)
     23       func "channel_update" decode_channel_update (f_upd_bytes f)
     24       func "query_short_channel_ids (1000 ids, flags)"
     25         decode_query_short_channel_ids (f_qsci_bytes f)
     26       func "reply_channel_range (1000 ids, timestamps, checksums)"
     27         decode_reply_channel_range (f_rcr_bytes f)
     28     wgroup "encode" $ do
     29       func "channel_announcement" encode_channel_announcement (f_ann f)
     30       func "node_announcement" encode_node_announcement (f_node f)
     31       func "channel_update" encode_channel_update (f_upd f)
     32       func "query_short_channel_ids (1000 ids, flags)"
     33         encode_query_short_channel_ids (f_qsci f)
     34       func "reply_channel_range (1000 ids, timestamps, checksums)"
     35         encode_reply_channel_range (f_rcr f)
     36     wgroup "hash" $ do
     37       func "channel_announcement_hash" channel_announcement_hash (f_ann f)
     38       func "channel_update_hash" channel_update_hash (f_upd f)
     39       func "channel_update_checksum" channel_update_checksum (f_upd f)
     40     wgroup "verify" $ do
     41       func "verify_channel_announcement" verify_channel_announcement (f_ann f)
     42       func "verify_node_announcement" verify_node_announcement (f_node f)
     43       func "verify_channel_update"
     44         (verify_channel_update (f_upd_key f)) (f_upd f)