mirror of
https://github.com/ZmnSCPxj/clboss.git
synced 2026-08-16 13:00:59 +02:00
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. |
||
|---|---|---|
| .. | ||
| Carpenter.cpp | ||
| Carpenter.hpp | ||
| Main.cpp | ||
| Main.hpp | ||
| Manager.cpp | ||
| Manager.hpp | ||
| Planner.cpp | ||
| Planner.hpp | ||
| README.md | ||
| RearrangerBySize.cpp | ||
| RearrangerBySize.hpp | ||
| Reprioritizer.cpp | ||
| Reprioritizer.hpp | ||
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 theCarpenterandManager.