mirror of
https://github.com/ZmnSCPxj/clboss.git
synced 2026-08-13 12:33:20 +02:00
The pre-v26.06 getroutes compatibility fallback read the deprecated per-hop fields (next_node_id / amount_msat / delay), whose values CLN defines as the in-side of each hop -- one hop shifted from the out-side values (node_id_out / amount_out_msat / cltv_out, shipped in v26.06) that sendpay routes must be built from. On stock CLN v24.11..v26.04 the fallback therefore built mispriced routes: small overpays on the routes that survived, spurious FEE_INSUFFICIENT / INCORRECT_CLTV_EXPIRY failures on the rest, and -- worst -- those failures hard-excluded healthy channels in the persistent failure-learning layer for hours, compounding across restarts. Drop the fallback entirely and enforce the requirement twice: - Initiator gains a CLN version gate, ordered before the database and signer steps so a refusal leaves no on-disk trace: a getinfo version older than v26.06 logs a detailed Error and aborts. The new clboss-skip-cln-version-check flag bypasses the gate for operators whose older CLN carries a backport of the v26.06 getroutes fields (the version string alone cannot show that); an unparseable version string warns and proceeds rather than locking out custom builds. - The three getroutes parse sites (FundsMover/Attempter, ActiveProber, ChannelCandidateMatchmaker) verify the new fields on every response and fail the attempt with a clear Error if absent, so a mistakenly bypassed gate degrades into loud per-attempt failures rather than shifted routes. CHANGELOG.md gains a prominent BREAKING entry; README documents the requirement and the escape hatch. Users on older CLN releases stay on CLBOSS 0.16.x, which uses the legacy getroute/pay APIs those versions still provide. |
||
|---|---|---|
| .. | ||
| Mod | ||
| ModG | ||
| Msg | ||
| concurrent.cpp | ||
| concurrent.hpp | ||
| JsonInput.cpp | ||
| JsonInput.hpp | ||
| log.cpp | ||
| log.hpp | ||
| Main.cpp | ||
| Main.hpp | ||
| open_rpc_socket.cpp | ||
| open_rpc_socket.hpp | ||
| random_engine.cpp | ||
| random_engine.hpp | ||
| RebalanceMode.hpp | ||
| Shutdown.hpp | ||
| Signer.cpp | ||
| Signer.hpp | ||