Skip to content

Conversation

@Andezion
Copy link

(Fixes #8552)

Depends on #8493 (this PR is stacked on top of the P2TR dust limit fix)

Problem

When a node restarts after exchanging announcement_signatures with a peer - the remote_sigs are loaded from the database during channel_gossip_init(). But when the peer reconnects, it may not resend announcement_signatures if it already sent them before the disconnect!

This causes the channel to get stuck in CGOSSIP_WAITING_FOR_MATCHING_PEER_SIGS state forever, preventing the channel from being announced to the network.

Solution

Modified channel_gossip_channel_reestablished() in channel_gossip.c to check if we already have remote_sigs loaded from the database. If we do - we call update_gossip_state() to attempt to progress the channel gossip state machine instead of waiting forever for the peer to resend signatures
Added comprehensive tests in test_gossip_announcement.py:

  • test_channel_announcement_after_restart_with_saved_sigs: Reproduces the exact scenario from issue A specific channel is not announcing my side #8552 (channel announcement after node restart)

  • test_channel_announcement_reconnect_without_restart: Verifies channel announcement works after simple reconnect without restart

Important

26.04 FREEZE March 11th: Non-bugfix PRs not ready by this date will wait for 26.06.

RC1 is scheduled on March 23rd

The final release is scheduled for April 15th.

Checklist

Before submitting the PR, ensure the following tasks are completed. If an item is not applicable to your PR, please mark it as checked:

  • The changelog has been updated in the relevant commit(s) according to the guidelines.
  • Tests have been added or modified to reflect the changes.
  • Documentation has been reviewed and updated as needed.
  • Related issues have been listed and linked, including any that this PR closes.
  • Important All PRs must consider how to reverse any persistent changes for tools/lightning-downgrade

Fixes ElementsProject#8395
Changelog-Fixed: Transactions now correctly create change outputs between 330-546 sat for P2TR/P2WPKH instead of absorbing them as fees
Fixes ElementsProject#8395
Changelog-Fixed: Transactions now correctly create change outputs between 330-546 sat for P2TR/P2WPKH instead of absorbing them as fees
Fixes ElementsProject#8552
Changelog-Fixed: Channel announcements now work after restart even if peer doesn't resend announcement_signatures
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.

A specific channel is not announcing my side

1 participant