mirror of
https://github.com/ZmnSCPxj/clboss.git
synced 2026-08-13 12:33:20 +02:00
The ChannelCreator Planner asserts min_channel + min_remaining <= max_channel at construction, where min_remaining = 2 * min_channel + 20000 sats. Option validation only enforced max_channel >= 2 * min_channel, so a pair such as min-channel=1000000 max-channel=2000000 passed startup and aborted the plugin on the first channel-creation run (#147). The old 2x clamp never prevented the crash: any pair it adjusted still violated the planner precondition. AmountSettingsHandler now enforces the precondition directly. On conflict it keeps max-channel, which sets typical open size, and lowers min-channel to the largest fitting value, logging a warning. A max-channel too low for even the smallest permitted min-channel is raised. ChannelCreator::Manager also re-checks both planner preconditions before constructing the Planner and skips the creation cycle with a log line instead of aborting. This covers the sibling assert min_amount * 2 <= total, which fails when onchain funds change between the decider's trigger and the creator's run (#137). |
||
|---|---|---|
| .. | ||
| 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.