Add OutputSweeper persisting and spending outputs (OutputSweeper, Persistence, Outputs)

https://github.com/lightningdevkit/rust-lightning/pull/2825

Host: jbesraa  -  PR author: tnull

Notes

Bitcoin wallet outputs are the set of UTXOs the wallet can control and sign. In Lightning, we use the outputs during the initialization of channels or in other times around closing channels. [ldk/2825] introduces a new module in order to help with managing the outputs in Lightning environment.

Questions

  1. Did you review the PR? Concept ACK, approach ACK, tested ACK, or NACK?
  2. What are the main scenarios in Lightning we want to utilizie the OutputSweeper introduced in this pull request?
  3. Per this pull request, what are the three conditions for regenerating and broadcasting a transaction?
  4. What is ANTI_REORG_DELAY?
  5. How can this OutputSweeper conflict if integrated incorrectly with bitcoin wallet software? [ldk/2825]: https://github.com/lightningdevkit/rust-lightning/pull/2825