lnd.xprv/chainntnfs
Olaoluwa Osuntokun 5044cd6468
chainntnfs/btcdnotify: recognize JSON-RPC error in RegisterSpendNtfn
This commit fixes a prior bug in the logic for registering a new spend
notification. Previously, if the transaction wasn’t found in the
mempool or already confirmed within the chain, then
GetRawTransactionVerbose would return an error which would cause the
function itself to exit with an error.

This issue would then cause the server to be unable to start up as the
breach arbiter would be unable to register for spend notifications for
all the channels that it needed to be watching.

We fix this error simply by recognizing the particular JSON-RPC error
that will be returned in this scenario and treating it as a benign
error.
2017-09-12 17:11:47 +02:00
..
btcdnotify chainntnfs/btcdnotify: recognize JSON-RPC error in RegisterSpendNtfn 2017-09-12 17:11:47 +02:00
neutrinonotify multi: switch from btcrpcclient to rpcclient 2017-08-24 18:54:24 -07:00
interface_test.go multi: switch from btcrpcclient to rpcclient 2017-08-24 18:54:24 -07: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