Module lightning::chain::chainmonitor[][src]

Logic to connect off-chain channel management with on-chain transaction monitoring.

ChainMonitor is an implementation of chain::Watch used both to process blocks and to update ChannelMonitors accordingly. If any on-chain events need further processing, it will make those available as MonitorEvents to be consumed.

ChainMonitor is parameterized by an optional chain source, which must implement the chain::Filter trait. This provides a mechanism to signal new relevant outputs back to light clients, such that transactions spending those outputs are included in block data.

ChainMonitor may be used directly to monitor channels locally or as a part of a distributed setup to monitor channels remotely. In the latter case, a custom chain::Watch implementation would be responsible for routing each update to a remote server and for retrieving monitor events. The remote server would make use of ChainMonitor for block processing and for servicing ChannelMonitor updates from the client.

Structs

ChainMonitor

An implementation of chain::Watch for monitoring channels.