clboss/Boss/Mod/ChannelCreator
Ken Sedgwick b22a9c21b5
Dowser: migrate getroute -> getroutes for CLN v26.06 compat
CLN v26.06 deprecates getroute in favor of askrene's getroutes.
Replace the Dowser's getroute+listchannels loop (up to ~40 RPC
round-trips) with a single getroutes call and let askrene's
min-cost-flow solver enumerate multi-path capacity directly. Response
parsing follows the getroutes schema; 205/206 (no route / too
expensive) maps to zero capacity.

Size the probe to the caller's threshold. The Dowser is a flow
estimator: callers compare the dowsed flow against a channel size (the
janitor and preinvestigator min-channel acceptance test, the channel
creator's sizing). A fixed probe amount caps the estimate, so any
threshold at or above that cap rejects every candidate regardless of
real capacity. RequestDowser now carries a min_amount; callers that
test against a channel size set it, and the probe runs at
min_amount / reserve_factor so a full-flow result clears the threshold
for any configured channel size. The channel creator dowses at
max-channel so new channels size toward the operator ceiling instead
of being pinned at the min-channel floor. The manual clboss-dowser
command keeps the fixed default probe.
2026-08-04 11:01:39 -07:00
..
Carpenter.cpp Insert exception what() value in logging messages 2024-08-19 15:04:30 -07:00
Carpenter.hpp Boss/Mod/ChannelCreator/Carpenter.cpp: Implement actual channel creation. 2020-09-17 14:02:24 +08:00
Main.cpp Boss/Mod/ChannelCreator/Carpenter.cpp: Implement actual channel creation. 2020-09-17 14:02:24 +08:00
Main.hpp Boss/Mod/ChannelCreator/Carpenter.cpp: Implement actual channel creation. 2020-09-17 14:02:24 +08:00
Manager.cpp Dowser: migrate getroute -> getroutes for CLN v26.06 compat 2026-08-04 11:01:39 -07:00
Manager.hpp Boss/Msg/ReqRespTraits.hpp: Use a traits class for requests and response. 2023-07-11 20:57:51 +08:00
Planner.cpp Boss/Mod/ChannelCreator/Planner.cpp: Change priority of a check. 2022-05-14 10:23:40 +00:00
Planner.hpp Boss/Mod/ChannelCreator/: Reject proposals that have too little liquidity to their patrons, do not give them minimum liquidity. 2020-10-01 09:01:37 +08:00
README.md Boss/Mod/ChannelCreator/Planner.cpp: Initial cut at planner. 2020-09-16 22:35:28 +08:00
RearrangerBySize.cpp Boss/Mod/ChannelCreator/Manager.cpp: Rearrange by size first, then create. 2021-04-13 12:28:00 +08:00
RearrangerBySize.hpp Boss/Mod/ChannelCreator/Manager.cpp: Rearrange by size first, then create. 2021-04-13 12:28:00 +08:00
Reprioritizer.cpp Boss/Mod/ChannelCreator/Reprioritizer.cpp: Module to reprioritize channel creation proposals. 2020-12-30 23:14:10 +00:00
Reprioritizer.hpp Boss/Mod/ChannelCreator/Reprioritizer.cpp: Module to reprioritize channel creation proposals. 2020-12-30 23:14:10 +00:00

This module creates channels.

It reacts to Boss::Msg::RequestChannelCreation, then queries a Boss::Mod::ChannelCandidateInvestigator::Main for candidates, then figures out some kind of divison of available funds to those candidates.

  • Dowser - given a single candidate, attempts to figure out some recommended amount to put in a channel for this. This object is created at runtime for each recommended candidate.
  • Planner - given an amount, some proposal nodes, and how many channels we already have, creates a plan of how to build channels. This object is created at runtime when we have onchain funds we want to use.
  • Carpenter - actually constructs channels, and reports channel creation success and failure.
  • Manager - handles the above objects, and wrangles with most messages received.
  • Main - Holds the Carpenter and Manager.