lnd.xprv/lnwallet
Olaoluwa Osuntokun ef520f49c3
lnwallet: during channel resynchronization detect lack of commitment window
In this commit, we extend the ProcessChanSyncMsg to detect a case where
we don’t have the necessary revocation window to send out a new commit.
This can arise if the remote party sends us a new state, but we haven’t
yet fully processed their FundingLocked message yet, so we would be
unable to create a new commitment state.

We fix this by enumerating each of our actions in the case of an error.
If we get ErrNoWindow, then this indicates that we can’t give the
remote party the commitment we would like to optimistically send over.
This isn’t an issue though, as in the next round, we’ll resynchronize
our state.
2017-12-11 15:42:15 -08:00
..
btcwallet lnwallet: Add destination addresses to listchaintxns 2017-12-08 15:11:23 -08:00
channel_test.go lnwallet: properly reject new commitment if next revocation point isn't known 2017-12-11 15:32:31 -08:00
channel.go lnwallet: during channel resynchronization detect lack of commitment window 2017-12-11 15:42:15 -08:00
config.go lnwallet: flesh out the Config struct, wallet constructor now takes 2017-07-30 17:49:41 -07:00
fee_estimator.go lnwallet: in BtcdFeeEstimator is sat/byte is too low, fallback to default rate 2017-11-30 22:13:00 -08:00
interface_test.go lnwallet: Update tests to check destination addresses 2017-12-08 15:11:23 -08:00
interface.go lnwallet: Add destination addresses to listchaintxns 2017-12-08 15:11:23 -08:00
log.go lnwallet: don't attach the rpcclient to the lnwallet logging instance 2017-08-30 20:32:37 -07:00
parameters.go fundingmanager+lnwallet: add HTLC dust limit logic 2016-12-13 11:01:57 -08:00
README.md multi: fix formatting issues in packge README's 2017-03-27 16:25:25 -07:00
reservation.go lnwallet: make 1% reservation computation clearer 2017-11-26 14:08:57 -06:00
script_utils_test.go lnwallet: update commitmentKeyRing to account for distinct HTLC keys 2017-11-16 20:00:03 -08:00
script_utils.go lnwallet: update sender/receiver HTLC scripts to use distinct HTLC keys 2017-11-16 20:00:02 -08:00
signdescriptor_test.go lnwallet: move latest SignDescriptor + serialization 2017-08-25 17:56:50 -07:00
signdescriptor.go lnwallet/signdesc: increases max witness parsing length 2017-09-19 19:18:21 -07:00
sigpool.go lnwallet: ensure sigPool goroutines can always exit 2017-11-11 14:59:56 -08:00
size_test.go lnwallet: Add TxWeightEstimator support for nested pay-to-witness. 2017-10-19 17:37:53 -07:00
size.go lnwallet/size: adds htlc success and timeout witness sizes 2017-11-15 18:04:44 -08:00
txout_test.go lnwallet: move txout serialization out of lnwire 2017-09-14 13:56:25 +02:00
txout.go lnwallet: move txout serialization out of lnwire 2017-09-14 13:56:25 +02:00
wallet.go lnwallet: fix typos 2017-11-27 17:24:45 -06:00
witnessgen.go lnwallet/witnessgen: add HtlcOfferedTimeLock witness type 2017-11-15 18:04:44 -08:00

lnwallet

Build Status MIT licensed GoDoc

The lnwallet package implements an abstracted wallet controller that is able to drive channel funding workflows, a number of script utilities, witness generation functions for the various Lightning scripts, revocation key derivation, and the commitment update state machine.

The package is used within lnd as the core wallet of the daemon. The wallet itself is composed of several distinct interfaces that decouple the implementation of things like signing and blockchain access. This separation allows new WalletController implementations to be be easily dropped into lnd without disrupting the code base. A series of integration tests at the interface level are also in place to ensure conformance of the implementation with the interface.

Installation and Updating

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