github ksedgwic/clboss v0.17.1-rc1

pre-release2 hours ago

Release candidate 1 for 0.17.1. Changes since 0.17.0:

Changed

  • The XRebalancer grant now fades out as a side's real forwarded
    volume grows. The credit is assumed earned on
    clboss-xrebalance-grant-weight percent of the peer's capacity
    (new dynamic option, default 25, both sides; it was a whole
    capacity-turn), and real forwards replace it one for one: a side
    with no record reads exactly clboss-xrebalance-grant, at half
    the weight the rate is half grant and half record, and from the
    weight on the side reads its own record alone (#339).

Fixed

  • A total peer blackout (lightningd started with --offline, Tor
    down, a firewall) no longer demerits every peer or counts as
    CLBOSS uptime; with clboss-auto-close it could close channels
    as the peers came back. CLBOSS also honours --offline itself:
    it no longer connects to peers, tests channel candidates, or
    opens channels while the flag is set, since an explicit connect
    used to go through and defeat both the flag and the guard (#346,
    #347).
  • Channel-candidate selection by popularity now samples with A-ES
    (Efraimidis and Spirakis) instead of an A-Chao variant that
    omitted the reservoir-size factor m: selection was
    arrival-order-dominated, and an overweight item could still be
    evicted by later arrivals. The popularity finder now shares
    Stats::ReservoirSampler with the other finders instead of a
    drifted inline copy (#343).
  • Backing up a live data.clboss with sqlite3 .backup or .dump
    could kill CLBOSS, and lightningd with it when CLBOSS is an
    important plugin: a write that found the file read-locked failed
    at commit, and that failure was thrown from a destructor, which
    ends the process. The connection now waits up to ten seconds for
    a lock, as lightningd does for its own database; a commit that
    still fails is reported to the caller as an error, and the sendpay
    hook path logs it and carries on. The README gains a backup note
    (#335).
  • The channel creator could open a second channel to a peer we
    already had one with. Three of the four candidate finders do not
    check for an existing channel, the candidate table is swept of
    channeled peers only on the 10-minute listpeers poll, and the
    creator runs about every two minutes without a check of its own,
    so a proposal naming an existing peer could reach the planner in
    the window between sweeps. The creator now drops such proposals
    against a fresh listpeerchannels before any funds are planned.
    The channel-state test the sweep relies on also counted only
    OPENINGD and CHANNELD states, so a dual-funded open in
    progress looked unchanneled; it now counts DUALOPEND states
    too, and no longer reads past the end of the shorter ONCHAIN
    (#332).
  • A splice no longer reads as losing the channel. CLN keeps a
    spliced channel open and forwarding in CHANNELD_AWAITING_SPLICE
    until the new funding locks in, which the create/destroy monitor
    took as leaving CHANNELD_NORMAL: it announced a
    ChannelDestruction, and a ChannelCreation minutes later, so
    the peer's complaint history was archived, its channel age reset,
    and the fee monitor's state for it flushed. That state now counts
    as live. The monitor's polling path also never reported a
    destruction: peers that had gone were appended to the creations
    list (#344).
  • A channel awaiting splice lock-in (CHANNELD_AWAITING_SPLICE, open
    and forwarding for the hours until the new funding confirms) was
    skipped wherever channels were summed or chosen by
    CHANNELD_NORMAL: the node balance swapper's sendable and
    receivable totals, and the by-balance fee modder. They now admit
    that state. The rebalancer and the active prober keep to
    CHANNELD_NORMAL: the xrebalance plugin accepts only that state and
    rejects a request naming any other channel, and a probe is sized
    from a spendable balance that CLN reports for the old funding until
    lock-in. While a splice-out is pending, CLN reports the balance of
    the old funding until the new one locks in but already admits HTLCs
    against the lower post-splice balance; the node balance swapper and
    the by-balance fee modder now deduct the pending splice-out the same
    way, so a channel awaiting a splice-out is never read as holding
    funds it no longer has (#345).

Removed

  • The PeerJudge modules (Boss/Mod/PeerJudge/), an earnings-based
    channel closer that was compiled in but never instantiated. Its
    close path issued a unilateral close after 180 seconds regardless
    of whether the peer was connected, the pattern 0.16.3 removed from
    the complaints desk (#324), so wiring it up as it stood would have
    force-closed offline peers as a matter of course. Nothing in the
    running plugin changes; the code stays in history should an
    earnings-based closer be wanted again (#336).

Don't miss a new clboss release

NewReleases is sending notifications on new releases.