lnd/lnwallet
Christopher Jämthagen bdb38cafcc lnwallet: fix bug that makes commitment transaction unspendable
Introduce TimelockShift which is used to make sure the commitment
transaction is spendable by setting the locktime with it so that
it is larger than 500,000,000, thus interpreting it as Unix epoch
timestamp and not a block height. It is also smaller than the current
timestamp which has bit (1 << 30) set, so there is no risk of having
the commitment transaction be rejected. This way we can safely use
the lower 24 bits of the locktime field for part of the obscured
commitment transaction number.
2017-02-22 15:46:59 -08:00
..
btcwallet lnwallet/btcwallet: fix bug in non-recognition of self-funds in chan force close 2017-02-07 20:01:19 -08:00
README.md multi: add link to LICENSE in README license badges (#100) 2017-01-12 16:31:08 -08:00
channel.go Use 48-bit commitment transaction numbers 2017-02-22 15:46:59 -08:00
channel_test.go lnwallet: update channel state machine tests to latest changes 2017-02-21 01:43:18 -08:00
config.go config: add --pendingchannel lnd flag 2016-10-22 02:11:18 +03:00
interface.go lnwallet/btcwallet: fix bug in non-recognition of self-funds in chan force close 2017-02-07 20:01:19 -08:00
interface_test.go lnwallet: ensure reservation state is cleaned up in case of Cancel 2017-02-22 14:51:41 -08:00
log.go lnwallet: correct comment for logging object 2016-12-27 16:43:07 -08:00
parameters.go fundingmanager+lnwallet: add HTLC dust limit logic 2016-12-13 11:01:57 -08:00
reservation.go lnwallet+funding: properly propagate NewLightningChannel errors 2017-01-22 15:06:41 -08:00
script_utils.go lnwallet: fix bug that makes commitment transaction unspendable 2017-02-22 15:46:59 -08:00
script_utils_test.go test: Add table driven tests for script_utils 2017-02-22 15:46:59 -08:00
size.go multi: update btcsuite API's to latest upstream changes 2017-01-05 13:56:34 -08:00
wallet.go Use 48-bit commitment transaction numbers 2017-02-22 15:46:59 -08:00

README.md

lnwallet

[Build Status] (https://travis-ci.org/lightningnetwork/lnd) [MIT licensed] (https://github.com/lightningnetwork/lnd/blob/master/LICENSE) [GoDoc] (http://godoc.org/github.com/lightningnetwork/lnd/lnwallet)

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