Commit Graph

3936 Commits

Author SHA1 Message Date
5d0d7a8511 htlcswitch: Move DecayedLog definition from sphinx package.
This moves over the implementation deleted in
https://github.com/lightningnetwork/lightning-onion/pull/22 to
structure package dependencies better.
2018-05-02 00:22:24 -07:00
58c422beb5 dep: Upgrade version of lightning-onion. 2018-05-02 00:21:19 -07:00
097fd50747 Merge pull request #1140 from guggero/integrationtest-logfile-upload
Integration tests: upload logs from TravisCI to file.io as well
2018-05-01 21:08:14 -07:00
ef96c97786 Merge pull request #1139 from guggero/integrationtest-logfiles
Integration tests: give nodes a name and print that name in log file name
2018-05-01 21:05:42 -07:00
8fcd6b56cb chainntnfs: expand test for mempool spend notifications
Make sure new clients get notified about txs that are already in the mempool.

Fixes #1074.
2018-05-01 19:09:56 -07:00
c7c25445eb lnwallet: add new test to ensure channel is able to update fees in both directions
Closes #1145.
2018-05-01 17:35:42 -07:00
b75429c6fe test: upload integration test logs from TravisCI to file.io 2018-05-01 13:16:21 +03:00
cbd981c236 lnd_test: make sure node ID is correctly initialized in log file name 2018-04-30 11:59:34 +03:00
d7a254328e Take into account that the new fee will not come in addition to old fee when updating commit fee 2018-04-29 22:42:20 +00:00
578f1d9332 lnd_test: give nodes a name and print that name in log file name 2018-04-28 17:46:50 +03:00
09c9979831 Merge pull request #1138 from halseth/integration-test-remove-block-flake
Integration tests: remove racy block generation
2018-04-27 13:19:39 -07:00
23f67ef009 lnd_test: remove racy block generation
This commit removes the mining of a block within the integration tests,
that would lead to a flake during runs. The reason was that the sweeoing
transaction was actually broadcast already at this point, and this block
was mined with the assumption that it wasn't. However, test would pass
more often than not because the UTXO nursery would be working on
graduating new heights, whcih is a bit slow, so in most cases the block
would be mined before it had broadcast the sweeping transaction.

By removing this block we ensure that the sweeping transaction will be
found for sure in the waitForTxInMempool call below.
2018-04-27 10:01:05 +02:00
4ab2bba5c7 Merge pull request #1005 from cfromknecht/wallet-recovery
Wallet Recovery
2018-04-26 20:21:03 -07:00
1ae3d4f118 dep: update btcwallet w/ wallet recovery 2018-04-26 16:34:21 -07:00
5049d3956b lnd_test: adds wallet recovery test 2018-04-26 16:34:21 -07:00
c977ebb8bd lntest/node: add ability to unlock/init HarnessNode 2018-04-26 16:03:28 -07:00
329793d06b lntest/harness: add NewNodeWithSeed and RestoreNodeWithSeed 2018-04-26 16:03:28 -07:00
92a2ba163e cmd/lncli/commands: ask for recovery window after restore seed 2018-04-26 16:03:28 -07:00
a2fdd8593d lnwallet/interfaace_test: init neutrino with chain params 2018-04-26 16:03:28 -07:00
06a53aa5cc lnwallet/btcwallet/config: add recovery window and bday 2018-04-26 16:03:28 -07:00
ae604061bf lnwallet/btcwallet/btcwallet: pass recovery window to CreateNewWallet 2018-04-26 16:03:27 -07:00
603228ce79 lnd: threads recovery window param from walletunlocker 2018-04-26 16:03:27 -07:00
b9df5e75f7 keychain/interface_test: init test wallet w/o recovery window 2018-04-26 16:03:27 -07:00
1972a795e5 chainregistry: initialize wallet w/ recovery window 2018-04-26 16:03:27 -07:00
0ae62c3720 lnrpc: add RecoveryWindow to InitWalletRequest 2018-04-26 16:03:27 -07:00
3cb87f377f walletunlocker/service_test: check recovery window is threaded 2018-04-26 16:03:09 -07:00
f8c0357770 walletunlocker: accept recovery window from InitWallet 2018-04-26 16:03:09 -07:00
c824af11a1 aezeed: expose BirthdayTime conversion from offset 2018-04-26 16:03:05 -07:00
c54a91f44d rpc: modify SignMessage+VerifyMessage to bind msg to LN context
In this commit, we modify the SignMessage+VerifyMessage slightly in
order to bind the message we're signing to our specific context. We do
this by pre-pending the ascii text "Lightning Signed Message:" to the
msg before we run it through dsha256. Adding this prefix binds the
message to our context in order to avoid accidentally signing a sighash
or the like.
2018-04-25 19:45:32 -07:00
86fd9e361e Merge pull request #1017 from halseth/contract-court-without-on-chain
Contract court acting on confirmed chain events
2018-04-25 17:13:24 -07:00
caf8139750 docs/grpc: correct javascript macaroon example
Creating and adding metadata in single line resulted in null `metadata`
2018-04-25 13:38:39 -07:00
c9eb077935 cmd/lncli: remove unused args for pendingchannels command
Fixes #1123.
2018-04-25 13:28:15 -07:00
4320421110 contractcourt/chain_watcher: don't delete syncDispatch clients on Cancel()
This commit makes clients subscribing to channel events that are marked
"sync dispatch" _not_ being deleted from the list of clients when they
call Cancel(). Instead a go routine will be launched that will send an
error on every read of the ProcessACK channel.

This fixes a race in handing off the breach info while lnd was shutting
down. The breach arbiter could end up being shut down (and calling
Cancel()) before while the ChainWatcher was in the process of
dispatching a breach. Since the breach arbiter no longer was among the
registered clients at this point, the ChainWatcher would assume the
breach was handed off successfully, and mark the channel as pending
closed. When lnd now was restarted, the breach arbiter would not know
about the breach, and the ChainWatcher wouldn't attempt to re-dispatch,
as it was already marked as pending closed.
2018-04-25 09:37:26 +02:00
8d5a33e349 lnd_test: modify tests to work with on-chain spend registrations
This commit modifies the integration tests to work with the recent
 changes to the ChannelArbitrator, where it will only act on commitments
 that has been confirmed. Main changes involving when to look for
 transactions in the mempool and in blocks, and using the new RPC for
 getting channels in the "waiting close" phase when they are waiting for
 the commitment to confirm.
2018-04-25 09:37:26 +02:00
028d1b7e26 lnd_test: add more relevant info to error messages 2018-04-25 09:37:26 +02:00
ddf62bbeea contractcourt/channel_arbitrator: remove unused transationTrigger 2018-04-25 09:37:25 +02:00
97977c8a06 rpcserver: add channels waiting for commitment confirmation to pending channels response 2018-04-25 09:37:25 +02:00
8b670d783a lnrpc: add WaitingCloseChannel to PendingChannelResponse 2018-04-25 09:37:25 +02:00
5cdc7550b5 htlcswitch: use FetchAllOpenChannels
This commit changes from using FetchAllChannels to FetchAllOpenChannels,
making the check for whether a channel is pending unnecessary.
2018-04-25 09:37:25 +02:00
0735b8e0b7 channeldb: add method for fetching channels waiting for closing tx
This commit adds a new method FetchWaitingCloseChannels to the database,
used for fetching OpenChannels that have a ChanStatus != Default. These
are channels that are borked, or have had a commitment broadcasted, and
is now waiting for it to confirm.

The fetchChannels method is rewritten to return channels exclusively
based on wheter they are pending or waitingClose.
2018-04-25 09:37:25 +02:00
b2949bd728 contractcourt/channel_arbitrator test: add unit tests
This commit adds MVP unit tests for the following scenarios in the
ChannelArbitrator:
1) A cooperative close is confirmed.
2) A remote force close is confirmed.
3) A local force close is requested and confirmed.
4) A local force close is requested, but a remote force close gets
confirmed.
2018-04-25 09:37:25 +02:00
84f06959f3 contractcourt/chain_arbitrator: remove CloseChannel method from ChannelArbitrator config 2018-04-25 09:37:25 +02:00
5f1da5b5f4 contractcourt/channel_arbitrator: remove unused CloseChannel method from config 2018-04-25 09:37:24 +02:00
bd4e717971 peer: don't load channels that have had commitment broadcasted 2018-04-25 09:37:24 +02:00
70e8087731 contractcourt/channel_arbitrator: mark channel commitment broadcasted instead of closed after broadcast 2018-04-25 09:37:24 +02:00
854e73b8e0 contractcourt/chain_watcher: register for confirmed spend, mark closed when detected
This commit changes the ChainWatcher to only send a chain event in case
the various spends are _confirmed_ on-chain, not only seen on the
network.

A consequence of this is that we now give the ChainWatcher the
responsibility of marking the channel closed when the closing tx is
confirmed, instead of the ChannelArbitrator.
2018-04-25 09:37:24 +02:00
1265c9cc99 contractcourt/chain_arbitrator: add MarkCommitmentBroadcasted to ChanArb cfg 2018-04-25 09:37:24 +02:00
c51f6352c3 channeldb test: rename ForceClose->RemoteForceClose 2018-04-25 09:37:24 +02:00
cde862e7e0 channeldb/codec: add ChannelStatus 2018-04-25 09:37:24 +02:00
b7bb53a8b8 channeldb/channel: add property ChanStatus in place of IsBorked to OpenChannel
This commit changes the bool `IsBorked` in OpenChannel to a `ChanStatus`
struct, of type ChannelStatus. This is used to indicated that a channel
that is technically still open, is either borked, or has had a
commitment broadcasted, but is not confirmed on-chain yet.

The ChannelStatus type has the value 1 for the status Borked, meaning it
is backwards compatible with the old database format.
2018-04-25 09:37:23 +02:00