bolt1

Base Lightning protocol, per BOLT #1 (docs.ppad.tech/bolt1).
git clone git://git.ppad.tech/bolt1.git
Log | Files | Refs | README | LICENSE

Main.hs (1215B)


      1 {-# LANGUAGE OverloadedStrings #-}
      2 
      3 module Main where
      4 
      5 import Criterion.Main
      6 import Fixtures
      7 import Lightning.Protocol.BOLT1
      8 
      9 main :: IO ()
     10 main = defaultMain [
     11     bgroup "primitives" [
     12       bench "encode_u64" $ nf encode_u64 0x0102030405060708
     13     , bench "decode_u64" $ nf decode_u64 "\x01\x02\x03\x04\x05\x06\x07\x08"
     14     , bench "encode_tu64" $ nf encode_tu64 0x010203
     15     , bench "decode_tu64" $ nf decode_tu64 "\x01\x02\x03"
     16     , bench "encode_bigsize (9 bytes)" $ nf encode_bigsize 0x100000000
     17     , bench "decode_bigsize (9 bytes)" $
     18         nf decode_bigsize "\xff\x00\x00\x00\x01\x00\x00\x00\x00"
     19     ]
     20   , bgroup "tlv" [
     21       bench "encode_tlv_stream (21 records)" $ nf encode_tlv_stream tlvs
     22     , bench "decode_tlv_stream (21 records)" $
     23         nf (decode_tlv_stream (const False)) tlvs_bytes
     24     ]
     25   , bgroup "messages" [
     26       bench "encode init" $ nf encode_message init_msg
     27     , bench "decode init" $ nf decode_message init_bytes
     28     , bench "encode ping" $ nf encode_message ping_msg
     29     , bench "decode ping" $ nf decode_message ping_bytes
     30     , bench "encode error (with tlvs)" $ nf encode_message error_msg
     31     , bench "decode error (with tlvs)" $ nf decode_message error_bytes
     32     ]
     33   ]