lnd/discovery
yyforyongyu 443095a907
discovery: signal allow for ignored channel announcements
This commit makes the `handleChanAnnouncement` always returning `true`
for messages processed but ignored by router, even when the extracted
announcements are empty.
Previously we'd return false when the announcements are empty, which
could cause `ChannelUpdate`s being ignored since the validation barrier
will signal deny for the jobs. This can easily be trigger using
following setup,
1. Alice connects to Bob and open a channel.
2. Alice connects to Carol, Bob connects to Carol.
3. Once the channel is open, Alice and Bob will both announce it to Carol.

At some point, we'd have the following messages in Carol's node,
- Alice's ChannelAnnouncement
- Alice's ChannelUpdates, for both directions
- Bob's ChannelAnnouncement
- Bob's ChannelUpdates, for both directions

And a bug could happen, if,
- Alice's ChannelAnnouncement is processed by router, hence added to db,
  but not reporting back to gossiper yet, so the validation barrier
  hasn't sent signal allow.
- Bob's ChannelAnnouncement is processed by router, and returned
  `ErrIgnored` as the edge info is already in db, and reported back to
  gossiper, the validation barrier will signal deny to all the
  ChannelUpdates jobs.
- Depending on how fast Alice's ChannelAnnouncement is processed, we may
  get zero to four denies to the above ChannelUpdates, causing a channel
  edge policy never being updated.
2022-12-08 17:57:02 +08:00
..
bootstrapper.go multi: fix make fmt 2022-08-23 22:10:24 +08:00
chan_series.go discovery: adhere to proper channel chunk splitting for ReplyChannelRange 2020-12-08 15:18:07 -08:00
gossiper_test.go discovery: use T.TempDir to create temporary test directory 2022-08-24 08:58:16 +08:00
gossiper.go discovery: signal allow for ignored channel announcements 2022-12-08 17:57:02 +08:00
log.go multi: init subsystem loggers via build pkg 2018-10-05 13:04:45 +09:00
message_store_test.go discovery: use T.TempDir to create temporary test directory 2022-08-24 08:58:16 +08:00
message_store.go multi: move all channelstate operations to ChannelStateDB 2021-09-29 17:00:03 +02:00
mock_test.go multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
reliable_sender_test.go multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
reliable_sender.go discovery+peer: add logs to reveal shutdown flow 2022-12-08 17:57:01 +08:00
sync_manager_test.go multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
sync_manager.go discovery+peer: add logs to reveal shutdown flow 2022-12-08 17:57:01 +08:00
syncer_test.go multi: fix make fmt 2022-08-23 22:10:24 +08:00
syncer.go discovery+peer: add logs to reveal shutdown flow 2022-12-08 17:57:01 +08:00