Skip to content

Conversation

@Lagrang3
Copy link
Collaborator

@Lagrang3 Lagrang3 commented Sep 23, 2024

I can think of a way to effectively disable a channel in askrene: by calling askrene-inform-channel and set the maximum_msat to 0. But it seems like a workaround way. I think since we already have an askrene-disable-node command, we should also
support an askrene-disable-channel command as well.

I have also refactored the way channels are marked as disabled.
Previously we had disabled channels by using gossmap_local_updatechan call which would produce a plugin crash
when calling getroutes if we disable a channel that either doesn't exist or it is defined in a layer that we don't use
in that call. Now instead we build a bitmap of disabled channels that we pass on to the MCF solver. The bitmap uses the indexes of the channels relative to the final gossmap, ie. the public gossip plus all localmods coming from the layers.

@Lagrang3 Lagrang3 force-pushed the askrene-disable-channel branch from 6907ed1 to a0f874e Compare September 25, 2024 07:47
@Lagrang3 Lagrang3 marked this pull request as ready for review September 25, 2024 07:48
@Lagrang3 Lagrang3 added this to the v24.11 milestone Sep 25, 2024
@Lagrang3 Lagrang3 mentioned this pull request Sep 25, 2024
1 task
@ShahanaFarooqui
Copy link
Collaborator

@Lagrang3 I have updated the third commit (d4cb5b8) for addressing the CI failures in the Pre-build checks, which were caused by missing updates to schema.json and index.rst.

@rustyrussell
Copy link
Contributor

rustyrussell commented Sep 29, 2024

Definitely need this interface, I agree.

But I prefer to fix the gossmap_update_localchan semantics, otherwise there is a potential hole if we apply a modification and then the channel in the underlying gossip_store is removed: we would have the same crash.

Also, we should not combine nodes and channels in the report output: harsh experience has lead us to now avoid things which don't have simply types (grpc interface has strong types, making this awkward).

@Lagrang3 Lagrang3 marked this pull request as draft September 29, 2024 09:04
@Lagrang3 Lagrang3 force-pushed the askrene-disable-channel branch 2 times, most recently from da572d0 to 3c02b42 Compare September 30, 2024 10:01
@Lagrang3 Lagrang3 marked this pull request as ready for review September 30, 2024 10:01
Add askrene-disable-channel RPC and
refactor the what channels and nodes are excluded in the MCF solver (use
a bitmap instead of gossmap_local_updatechan).

Changelog-EXPERIMENTAL: askrene: add askrene-disable-channel RPC

Signed-off-by: Lagrang3 <[email protected]>
@Lagrang3 Lagrang3 force-pushed the askrene-disable-channel branch from 3c02b42 to e9df91a Compare September 30, 2024 11:15
@rustyrussell
Copy link
Contributor

Rolled into #7707

@Lagrang3 Lagrang3 deleted the askrene-disable-channel branch December 2, 2024 08:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants