lnd.xprv/chainntnfs
Sam Lewis 1f95b660b9 chainntfns: Fix off by 1 block height error
In the historical dispatch of btcdnotify, the dispatcher checks if a
transaction has been included in a block. If this check happens before
the notifier has processed the update, it's possible that the
currentHeight of the notifier and the currentHeight of the chain might
be out of sync which causes an off by one error when calculating a
target height for the transaction confirmation. This change uses the
height of the block the transaction was found in, rather than the
currentHeight that's known by the notifier to eliminate this.
2017-11-13 22:36:25 -08:00
..
btcdnotify chainntfns: Fix off by 1 block height error 2017-11-13 22:36:25 -08:00
neutrinonotify chainntfns/neutrinonotify: update driver to comply with BIP 2017-11-02 20:04:07 -07:00
interface_test.go chainntnfs: Add chainntfs lazy consumer test 2017-11-13 22:36:25 -08:00
interface.go lnwallet: use new ChainNotifier API, typo fixes 2017-05-11 15:21:05 -07:00
log.go lnd: remove seelog logger 2017-06-25 14:19:56 +01:00
README.md multi: fix formatting issues in packge README's 2017-03-27 16:25:25 -07:00

chainntnfs

Build Status MIT licensed GoDoc

The chainntnfs package implements a set of interfaces which allow callers to receive notifications in response to specific on-chain events. The set of notifications available include:

  • Notifications for each new block connected to the current best chain.
  • Notifications once a txid has reached a specified number of confirmations.
  • Notifications once a target outpoint (txid:index) has been spent.

These notifications are used within lnd in order to properly handle the workflows for: channel funding, cooperative channel closures, forced channel closures, channel contract breaches, sweeping time-locked outputs, and finally pruning the channel graph.

This package is intentionally general enough to be applicable outside the specific use cases within lnd outlined above. The current sole concrete implementation of the ChainNotifier interface depends on btcd.

Installation and Updating

$ go get -u github.com/lightningnetwork/lnd/chainntnfs