bolt1

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

CHANGELOG (1267B)


      1 # Changelog
      2 
      3 - 0.1.0 (2026-10-10)
      4   * A substantial rewrite, with breaking changes throughout:
      5 
      6     * The API is exported from Lightning.Protocol.BOLT1 alone, and uses
      7       snake_case names (e.g. encode_message, channel_id, un_channel_id).
      8 
      9     * Fundamental types are abstract, constructed only via validating
     10       smart constructors. Points must carry a compressed-encoding
     11       prefix. Satoshi and MilliSatoshi are bounded at 21M BTC and
     12       provide checked arithmetic instead of Num.
     13 
     14     * Every message decoder consumes its whole payload and preserves
     15       unknown odd TLV records, so encoding a decoded message reproduces
     16       its wire bytes. Init has typed networks and remote_addr fields,
     17       and uses ppad-bolt9 feature vectors.
     18 
     19     * A single TLV decoder takes the set of known types, rejects
     20       unknown even types, and keeps unknown odd ones.
     21 
     22     * Removed the Envelope type, the minimal signed integer codecs and
     23       the Internal module; added ping_response and fixed-size field
     24       codecs.
     25 
     26   * Fixes TLV decoding, which accepted lengths of 2^63 or more as
     27     empty values.
     28 
     29   * Fixed-width encoders no longer allocate kilobytes per call.
     30 
     31   * Tests now cover every BOLT #1 appendix vector.
     32 
     33 - 0.0.1 (2026-04-18)
     34   * Initial release.