Skip to content

Releases: ksedgwic/clboss

v0.16.0-rc3: Darkness on the Edge of the Mempool

04 Mar 19:36
v0.16.0-rc3
95d195f

Choose a tag to compare

[0.16.0] - 2026-03-02: "Darkness on the Edge of the Mempool"

Added

  • Internal:
    • Fee Monitor module records per-channel fee-setting context and
      statistics into SQLite (feemon_peers, feemon_change_events
      tables). ([#296])
    • C++20 coroutine support for cleaner async code. ([#272])
  • RPC:
    • clboss-feemon-history: returns per-peer fee modifier history
      (baseline, size/balance/price multipliers, earnings). ([#296])
    • clboss-feemon-peers: returns peer node IDs with fee monitor data,
      with optional time window filtering. ([#296])
    • clboss-earnings-history: added "all" (by-node) aggregation mode.
      ([#292])
  • Contrib scripts:
    • fee-log-parser: parses DEBUG-level logs into SQLite. ([#291])
    • plot-fees: plots per-peer fee time series. ([#291])
    • plot-aggregate: plots aggregate percentile summaries across
      peers. ([#291])
    • plot-balance-price, plot-size-balance, plot-size-price: fee
      modifier analysis visualizations. ([#295])
    • feemon-validate: validates fee monitor data integrity. ([#296])
  • Build:
    • install-versioned Makefile target for fast roll-forward/roll-back.
      ([#289])
    • Code coverage reporting in CI. ([#283])
    • Clang C++20 build job in CI. ([#307])
    • Nix flake packaging improvements. ([#285])

Changed

  • InvoicePayer now uses CLN's native decode RPC instead of manual
    parsing. ([#301])

Fixed

  • fundpsbt deprecated integer argument handling. ([#288])
  • Initiator module handles both old and new listconfigs RPC output
    formats. ([#300])
  • Backtrace capture disabled under valgrind to fix make check
    failures. ([#279])
  • Fixed duplicate earnings report sections in README. ([#277])
  • Fixed outdated setchannelfee reference to setchannel in README.
    ([#290])
  • Replaced deprecated std::result_of with std::invoke_result_t for
    C++20 compatibility (fixes build on FreeBSD 14+ / clang 18). ([#305])
  • Added missing #include <cstdint> for clang strict mode. ([#307])
  • Added -lexecinfo for FreeBSD in configure.ac. ([#307])
  • Fixed uninitialized ReservoirSampler::wsum warning at -O2.

Credits

Many thanks (!!) to contributors to this release:

v0.16.0-rc2: Darkness on the Edge of the Mempool

02 Mar 20:34
v0.16.0-rc2
a17b83c

Choose a tag to compare

[0.16.0] - 2026-03-02: "Darkness on the Edge of the Mempool"

Added

  • Internal:
    • Fee Monitor module records per-channel fee-setting context and
      statistics into SQLite (feemon_peers, feemon_change_events
      tables). ([#296])
    • C++20 coroutine support for cleaner async code. ([#272])
  • RPC:
    • clboss-feemon-history: returns per-peer fee modifier history
      (baseline, size/balance/price multipliers, earnings). ([#296])
    • clboss-feemon-peers: returns peer node IDs with fee monitor data,
      with optional time window filtering. ([#296])
    • clboss-earnings-history: added "all" (by-node) aggregation mode.
      ([#292])
  • Contrib scripts:
    • fee-log-parser: parses DEBUG-level logs into SQLite. ([#291])
    • plot-fees: plots per-peer fee time series. ([#291])
    • plot-aggregate: plots aggregate percentile summaries across
      peers. ([#291])
    • plot-balance-price, plot-size-balance, plot-size-price: fee
      modifier analysis visualizations. ([#295])
    • feemon-validate: validates fee monitor data integrity. ([#296])
  • Build:
    • install-versioned Makefile target for fast roll-forward/roll-back.
      ([#289])
    • Code coverage reporting in CI. ([#283])
    • Nix flake packaging improvements. ([#285])

Changed

  • InvoicePayer now uses CLN's native decode RPC instead of manual
    parsing. ([#301])

Fixed

  • fundpsbt deprecated integer argument handling. ([#288])
  • Initiator module handles both old and new listconfigs RPC output
    formats. ([#300])
  • Backtrace capture disabled under valgrind to fix make check
    failures. ([#279])
  • Fixed duplicate earnings report sections in README. ([#277])
  • Fixed outdated setchannelfee reference to setchannel in README.
    ([#290])
  • Replaced deprecated std::result_of with std::invoke_result_t for
    C++20 compatibility (fixes build on FreeBSD 14+ / clang 18). ([#305])

Credits

Many thanks (!!) to contributors to this release:

v0.15.1: Dancing in the Dark Liquidity

07 Oct 18:16
v0.15.1
3f6db14

Choose a tag to compare

[0.15.1] - 2025-10-07: "Dancing in the Dark Liquidity"

Fixed

  • Fixed the release build CI workflow

[0.15.0] - 2025-10-07: "Dancing in the Dark Liquidity"

Added

  • RPC:
    • Added the clboss-feerates command to report percentile thresholds,
      last observed feerate (perkw), and the current low/high judgment.
  • Configuration:
    • Added --clboss-min-nodes-to-process to control how many nodes
      CLBOSS must know before proposing channels. Defaults: 800 (Bitcoin),
      100 (Testnet), 10 (other). Setting -1 uses network-specific defaults.
    • Added --clboss-max-rebalance-fee-ppm to cap the fee for a single
      internal rebalance (honored by both JitRebalancer and
      EarningsRebalancer). Default is 1000 ppm (0.1%).
  • Contrib scripts:
    • New clboss-forwarding-stats script.
    • New recently-closed helper.
    • New sys_stats_report to generate heartbeat status reports and
      append metrics (e.g., utxo_msat, avail_msat, current_msat,
      avail_out, utxo_amount) to a STATS file; includes a baseline
      checksum and appends fee data from clboss-feerates.
    • clboss-earnings-history: added --csv-file, --graph-file and
      --bucket (day|week|fortnight|month|quarter); estimates the last
      bucket based on remaining time.
    • clboss-routing-stats: added --days to limit the time window.
  • Docs:
    • Updated diagrams (rebalancer flow, channel balancing orientation) and
      README/contrib docs; refreshed dependencies for contrib tooling.

Changed

  • Reduced the default --clboss-max-rebalance-fee-ppm from 5000 ppm
    (0.5%) to 1000 ppm (0.1%).

Fixed

  • ChannelFinderByPopularity: ignore our own node when sampling and
    enumerating peers ([#266]).
  • Swaps: avoid blank addresses in the cache and clean any that slipped
    in; validate the initial Boltz claim destination address.

Dancing in the Dark Liquidity

07 Oct 18:09
v0.15.1-rc1
3f6db14

Choose a tag to compare

Pre-release

[0.15.1] - 2025-10-07: "Dancing in the Dark Liquidity"

Fixed

  • Fixed the release build CI workflow

[0.15.0] - 2025-10-07: "Dancing in the Dark Liquidity"

Added

  • RPC:
    • Added the clboss-feerates command to report percentile thresholds,
      last observed feerate (perkw), and the current low/high judgment.
  • Configuration:
    • Added --clboss-min-nodes-to-process to control how many nodes
      CLBOSS must know before proposing channels. Defaults: 800 (Bitcoin),
      100 (Testnet), 10 (other). Setting -1 uses network-specific defaults.
    • Added --clboss-max-rebalance-fee-ppm to cap the fee for a single
      internal rebalance (honored by both JitRebalancer and
      EarningsRebalancer). Default is 1000 ppm (0.1%).
  • Contrib scripts:
    • New clboss-forwarding-stats script.
    • New recently-closed helper.
    • New sys_stats_report to generate heartbeat status reports and
      append metrics (e.g., utxo_msat, avail_msat, current_msat,
      avail_out, utxo_amount) to a STATS file; includes a baseline
      checksum and appends fee data from clboss-feerates.
    • clboss-earnings-history: added --csv-file, --graph-file and
      --bucket (day|week|fortnight|month|quarter); estimates the last
      bucket based on remaining time.
    • clboss-routing-stats: added --days to limit the time window.
  • Docs:
    • Updated diagrams (rebalancer flow, channel balancing orientation) and
      README/contrib docs; refreshed dependencies for contrib tooling.

Changed

  • Reduced the default --clboss-max-rebalance-fee-ppm from 5000 ppm
    (0.5%) to 1000 ppm (0.1%).

Fixed

  • ChannelFinderByPopularity: ignore our own node when sampling and
    enumerating peers ([#266]).
  • Swaps: avoid blank addresses in the cache and clean any that slipped
    in; validate the initial Boltz claim destination address.

Dancing in the Dark Liquidity

07 Oct 17:50
v0.15.0
af6733b

Choose a tag to compare

[0.15.0] - 2025-10-07: "Dancing in the Dark Liquidity"

Added

  • RPC:
    • Added the clboss-feerates command to report percentile thresholds,
      last observed feerate (perkw), and the current low/high judgment.
  • Configuration:
    • Added --clboss-min-nodes-to-process to control how many nodes
      CLBOSS must know before proposing channels. Defaults: 800 (Bitcoin),
      100 (Testnet), 10 (other). Setting -1 uses network-specific defaults.
    • Added --clboss-max-rebalance-fee-ppm to cap the fee for a single
      internal rebalance (honored by both JitRebalancer and
      EarningsRebalancer). Default is 1000 ppm (0.1%).
  • Contrib scripts:
    • New clboss-forwarding-stats script.
    • New recently-closed helper.
    • New sys_stats_report to generate heartbeat status reports and
      append metrics (e.g., utxo_msat, avail_msat, current_msat,
      avail_out, utxo_amount) to a STATS file; includes a baseline
      checksum and appends fee data from clboss-feerates.
    • clboss-earnings-history: added --csv-file, --graph-file and
      --bucket (day|week|fortnight|month|quarter); estimates the last
      bucket based on remaining time.
    • clboss-routing-stats: added --days to limit the time window.
  • Docs:
    • Updated diagrams (rebalancer flow, channel balancing orientation) and
      README/contrib docs; refreshed dependencies for contrib tooling.

Changed

  • Reduced the default --clboss-max-rebalance-fee-ppm from 5000 ppm
    (0.5%) to 1000 ppm (0.1%).

Fixed

  • ChannelFinderByPopularity: ignore our own node when sampling and
    enumerating peers ([#266]).
  • Swaps: avoid blank addresses in the cache and clean any that slipped
    in; validate the initial Boltz claim destination address.

Dancing in the Dark Liquidity

11 Sep 21:40
0d6f2ca

Choose a tag to compare

Pre-release

[0.15.0] - 2025-09-11: "Dancing in the Dark Liquidity"

Added

  • RPC:
    • Added the clboss-feerates command to report percentile thresholds,
      last observed feerate (perkw), and the current low/high judgment.
  • Configuration:
    • Added --clboss-min-nodes-to-process to control how many nodes
      CLBOSS must know before proposing channels. Defaults: 800 (Bitcoin),
      100 (Testnet), 10 (other). Setting -1 uses network-specific defaults.
    • Added --clboss-max-rebalance-fee-ppm to cap the fee for a single
      internal rebalance (honored by both JitRebalancer and
      EarningsRebalancer). Default is 1000 ppm (0.1%).
  • Contrib scripts:
    • New clboss-forwarding-stats script.
    • New recently-closed helper.
    • New sys_stats_report to generate heartbeat status reports and
      append metrics (e.g., utxo_msat, avail_msat, current_msat,
      avail_out, utxo_amount) to a STATS file; includes a baseline
      checksum and appends fee data from clboss-feerates.
    • clboss-earnings-history: added --csv-file, --graph-file and
      --bucket (day|week|fortnight|month|quarter); estimates the last
      bucket based on remaining time.
    • clboss-routing-stats: added --days to limit the time window.
  • Docs:
    • Updated diagrams (rebalancer flow, channel balancing orientation) and
      README/contrib docs; refreshed dependencies for contrib tooling.

Changed

  • Reduced the default --clboss-max-rebalance-fee-ppm from 5000 ppm
    (0.5%) to 1000 ppm (0.1%).

Fixed

  • ChannelFinderByPopularity: ignore our own node when sampling and
    enumerating peers ([#266]).
  • Swaps: avoid blank addresses in the cache and clean any that slipped
    in; validate the initial Boltz claim destination address.

v0.14.1: Hand at the Grindstone

05 Dec 22:37
v0.14.1
b6795c4

Choose a tag to compare

Added

  • Contrib Script Enhancements:

    • Added --lightning-dir option to the contrib scripts:

      • clboss-earnings-history
      • clboss-recent-earnings
      • clboss-routing-stats

      This allows users with non-default configurations to specify their
      lightning-dir when running these scripts. ([#243])

    • Nix Support:

      • Introduced contrib-shell.nix to facilitate running contrib
        scripts within Nix environments. Users can now execute
        nix-shell contrib-shell.nix and run any Python scripts in
        contrib/. ([#241])
      • Updated contrib/README.md with detailed instructions for
        Python dependencies installation, including a section on using
        Nix.
  • Stack Unwinding Support:

    • Implemented libunwind for stack unwinding. This replaces the use
      of backtrace(), which is not available on Alpine Linux. This
      improves compatibility with Alpine and other systems lacking
      backtrace(). ([#245], [#249])
    • Replaced the use of program_invocation_name (only available on
      Linux) with a custom global variable to store the program name,
      improving portability to systems like FreeBSD and other Unix-like
      systems. ([#242])
  • Configurable Exception Backtrace Support:

    • Added the --disable-exception-backtrace option to
      configure. This allows disabling the inclusion of backtrace
      information in exception wrappers. ([#256])
    • The Util::BacktraceException class now provides a no-op wrapper
      when exception backtraces are disabled via
      --disable-exception-backtrace. This ensures minimal overhead in
      configurations where backtraces are not needed. ([#256])

Fixed

  • Build System:
    • Fixed issues when building CLBOSS as a git submodule. ([#247], [#250])
    • Improved diagnostic messages for missing commit_hash.h in
      tarball builds. This helps users identify and resolve build issues
      when commit_hash.h is not present. ([#244]), [#251])

v0.14.1: Hand at the Grindstone

04 Nov 17:53
v0.14.1-rc2
3b6ff7a

Choose a tag to compare

Pre-release

Added

  • Contrib Script Enhancements:

    • Added --lightning-dir option to the contrib scripts:

      • clboss-earnings-history
      • clboss-recent-earnings
      • clboss-routing-stats

      This allows users with non-default configurations to specify their
      lightning-dir when running these scripts. ([#243])

    • Nix Support:

      • Introduced contrib-shell.nix to facilitate running contrib
        scripts within Nix environments. Users can now execute
        nix-shell contrib-shell.nix and run any Python scripts in
        contrib/. ([#241])
      • Updated contrib/README.md with detailed instructions for
        Python dependencies installation, including a section on using
        Nix.
  • Stack Unwinding Support:

    • Implemented libunwind for stack unwinding. This replaces the use
      of backtrace(), which is not available on Alpine Linux. This
      improves compatibility with Alpine and other systems lacking
      backtrace(). ([#245], [#249])
    • Replaced the use of program_invocation_name (only available on
      Linux) with a custom global variable to store the program name,
      improving portability to systems like FreeBSD and other Unix-like
      systems. ([#242])

Fixed

  • Build System:
    • Fixed issues when building CLBOSS as a git submodule. ([#247], [#250])
    • Improved diagnostic messages for missing commit_hash.h in
      tarball builds. This helps users identify and resolve build issues
      when commit_hash.h is not present. ([#244]), [#251])

v0.14.1: Hand at the Grindstone

31 Oct 22:15
v0.14.1-rc1

Choose a tag to compare

Pre-release

Added

  • Contrib Script Enhancements:

    • Added --lightning-dir option to the contrib scripts:

      • clboss-earnings-history
      • clboss-recent-earnings
      • clboss-routing-stats

      This allows users with non-default configurations to specify their
      lightning-dir when running these scripts. ([#243])

    • Nix Support:

      • Introduced contrib-shell.nix to facilitate running contrib
        scripts within Nix environments. Users can now execute
        nix-shell contrib-shell.nix and run any Python scripts in
        contrib/. ([#241])
      • Updated contrib/README.md with detailed instructions for
        Python dependencies installation, including a section on using
        Nix.
  • Stack Unwinding Support:

    • Implemented libunwind for stack unwinding. This replaces the use
      of backtrace(), which is not available on Alpine Linux. This
      improves compatibility with Alpine and other systems lacking
      backtrace(). ([#245], [#249])
    • Replaced the use of program_invocation_name (only available on
      Linux) with a custom global variable to store the program name,
      improving portability to systems like FreeBSD and other Unix-like
      systems. ([#242])

Fixed

  • Build System:
    • Fixed issues when building CLBOSS as a git submodule. ([#247], [#250])
    • Improved diagnostic messages for missing commit_hash.h in
      tarball builds. This helps users identify and resolve build issues
      when commit_hash.h is not present. ([#244]), [#251])

v0.14.0: Hand at the Grindstone

04 Oct 20:59
v0.14.0
d595541

Choose a tag to compare

  • Upgraded EarningsTracker to a time bucket scheme allowing storage and access to earnings and
    expenditure data over specific time ranges
  • Added new scripts in contrib for displaying earnings history
  • Added Util::BacktraceException which
    captures backtraces where an exception is thrown and then formats
    them for debugging when they are displayed with `what()
  • ...