Skip to content

tx-sync: Re-register watched outputs after spend has been reorged out of chain #2734

Closed
@tnull

Description

@tnull

Currently, in lightning-transaction-sync, we'd remove an output from our list of watched_outputs once we see its spend confirmed on-chain. If now a reorg happens we'd gladly unconfirm the spending tx, however, we would currently not re-add the spent output to be watched.

In order to fix this we could consider to

  1. Keep additional tracking state around that would allow us to match any unconfirmed txid to the originally registered WatchedOutput and then simply re-add it to watched_outputs or
  2. Take a reference to ChainMonitor/ChannelMonitors and call load_outputs_to_watch on the start of each sync round. This would allow us to always retrieve the newest items to watch on a per-round basis. However, this would also exclude us from using lightning-transaction-sync with any objects besides the core LDK ones. (we could however also consider making a method similar to load_outputs_to_watch to Filter to accommodate for this) or
  3. Have ChannelMonitors re-register the affected outputs to watch once we inform them about spending transaction unconfirmation.

I'm not the biggest fan of 2), but considering 1)/3).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions