Skip to content

gossipd should be more forgiving on routing errors #867

Description

@ZmnSCPxj

Currently, gossipd is somewhat heavy-handed in treating routing errors. Currently it simply deactivates the failing channels, which will get reactivated when we receive a channel_update message --- but we do not expect to get channel_update often, so an otherwise perfectly-fine channel might get disabled indefinitely on our routing map.

One idea is to have a simple timer on how long we ban a channel on a temporary routing failure. We could add a u64 banned_until field to each node_connection that defaults to 0. If the current time is less than or equal to banned_until, we do not consider that connection for routing. If we get a channel_update we also clear this field. Then on a temporary channel failure instead of clearing active we simply get the current time, add say 30 seconds to it, then load the resulting time into banned_until.

xref: #638 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions