AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Low 25 Bitcoin

graph/db: version FilterKnownChanIDs callback

Public commit record

What the developer wrote

Authored by Elle Mouton

68/100 · Adequate
graph/db: version FilterKnownChanIDs callback

Change the isZombieChan callback in FilterKnownChanIDs (and its
ChannelGraphTimeSeries interface counterpart) from
func(time.Time, time.Time) bool to func(ChannelUpdateInfo) bool.

This allows callers to make version-aware zombie decisions using the full
ChannelUpdateInfo—including freshness type—rather than two raw time.Time
values that are meaningless for v2 channels.

The GossipSyncer adapts its v1-only isStillZombieChannel check by
wrapping it in a closure that extracts Node1/Node2FreshnessTime from the
ChannelUpdateInfo. All other call sites are updated accordingly.
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This commit refactors how LND decides whether a Lightning channel is a 'zombie' (inactive/stale) during gossip synchronization. Previously the code only passed two timestamps into the decision function, which worked for older v1 gossip channels but was meaningless for newer v2 channels that use block heights instead of timestamps. The change passes the full channel update info—including the gossip version—so future code can make version-aware zombie decisions. It is a preparatory/internal cleanup, not a direct fix for an active exploit.

Recommended action

Treat as a routine refactor that lays groundwork for future v2 gossip correctness. Monitor follow-up commits that address the TODO about v2 block-height freshness in `processChanRangeReply`. No urgent action required.

Security signals we found

01

Refactor enables version-aware zombie handling for v2 gossip channels

02

Removes hard-coded GossipVersion1 in MarkEdgeLive call during zombie revival

03

Adds TODO indicating v2 gossip sync protocol support is incomplete

04

Internal API change only; no immediate behavioral change for v1 channels

Risk score

Why this scored 25/100

Our methodology →
Potential impact 5/30
Exploitability 2/25
Stealth signal 3/15
Affected reach 4/15
Confidence 7/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.