lnd.xprv/lnwallet
Olaoluwa Osuntokun 5dd7b157a0
lnwallet: fix race condition when forwarding by creating new pubkey
This commit fixes a race condition that would at times occur in the
htlcswitch.TestChannelLinkBidirectionalOneHopPayments test case. A race
condition would occur in the goroutine running ReceiveNewCommitment
compared with the grouting that would obtain the snapshot in order to
make a forwarding decision.

We fix this by creating a new public key for each new commitment
transaction such that we complete avoid the read/write race condition.
2017-06-19 17:43:57 +02:00
..
btcwallet lnwallet/btcwallet: properly pass in FeeEstimator to btcwallet 2017-06-07 17:01:27 -07:00
channel_test.go multi: run all test instances in parallel 2017-06-17 01:00:07 +02:00
channel.go lnwallet: fix race condition when forwarding by creating new pubkey 2017-06-19 17:43:57 +02:00
config.go config: add --pendingchannel lnd flag 2016-10-22 02:11:18 +03:00
interface_test.go multi: run all test instances in parallel 2017-06-17 01:00:07 +02:00
interface.go lnwallet: remove GetTransaction method from BlockChainIO 2017-06-05 19:12:42 -07:00
log.go lnwallet: couple websockets and wtxmgr logging into package logging 2017-04-01 20:14:13 +02: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: NewChannelReservation now accepts target feePerKw for commitment 2017-05-16 18:55:33 -07:00
script_utils_test.go multi: run all test instances in parallel 2017-06-17 01:00:07 +02:00
script_utils.go lnwallet: replace empty byte arrays with nils 2017-06-05 18:54:00 -07:00
size.go lnwallet: convert all references to transaction/block cost to weight 2017-05-16 18:50:55 -07:00
wallet.go lnwallet: fix race condition in channel state machine, use single mutex 2017-06-08 22:24:20 -07: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