Commit Graph

9112 Commits

Author SHA1 Message Date
Joost Jager
ea397c9d6e cnct: resolve anchors post-confirmation
Sweeping anchors and being able to bump the fee was already added in a
previous commit. This commit extends anchor sweeping with an anchor
resolver object that becomes active after the commitment tx confirms.
At that point, the anchors do not serve the purpose of getting the
commitment tranaction confirmed anymore. It is however still possible to
reclaim some of their value if using a low fee rate.
2020-03-18 12:27:01 +01:00
Joost Jager
d84b596f55 cnct: do not ignore resolver reports after resolution
Preparation for anchor resolver. The recovered anchor amount should
still be included in the pending channel report even after it has been
resolved.

This also fixes an existing bug that in some cases caused the recovered
amount from an htlc resolver not to be included in the total.
2020-03-18 12:26:59 +01:00
Joost Jager
07a39b1ebf cnct: do not persist stateless resolvers
Preparation for the anchor resolver which does not have persistent
state.
2020-03-18 12:26:57 +01:00
Joost Jager
d2b6472843 cnct: pre-confirmation anchor sweep
Start anchor sweep attempts immediately after the commitment transaction
has been published. This makes the anchor known to the sweeper and
allows the user to bump the fee on it to get their commitment
transaction confirmed in case the fee committed too is insufficient for
timely confirmation.
2020-03-18 12:26:55 +01:00
Joost Jager
e8e99c6533 cnct: simplify channel arbitrator state logging 2020-03-17 16:25:39 +01:00
Joost Jager
3b517390d8 cnct+sweeper: give contract court access to relay fee
Relay fee is needed later to sweep anchors at the minimum fee rate.
2020-03-17 16:25:37 +01:00
Joost Jager
c376cdb733 input: add anchor witness type 2020-03-17 16:25:35 +01:00
Joost Jager
dd77d9263e cnct: persist anchor resolutions 2020-03-17 16:25:33 +01:00
Joost Jager
7f3d4e7d49 cnct: create channel interface for arbitrator
Allows unit testing of the channel arbitrator with fewer dependencies.
This is a preparation for the addition of anchor sweeping.
2020-03-17 16:25:31 +01:00
Joost Jager
c0b1b3be14 cnct: always set trigger height to close height
Prior to this change, the trigger height for closed channels was set to
the current best block height. As this height is in some cases used as a
height hint, the spend may have been missed.
2020-03-17 16:25:29 +01:00
Joost Jager
29e1489179 sweep: leave exclusive group unchanged on parameter update
Exclusive group is a static property that doesn't need to be updated.
Requiring the exclusive group to be passed into UpdateParams creates a
burden for the caller to make sure they supply the existing group.

This change will be beneficial for users that bump anchor sweeps that
have exclusive groups set.
2020-03-17 14:19:39 +01:00
Joost Jager
1c93e9e03d sweep: isolate min fee rate bucket 2020-03-17 14:19:37 +01:00
Johan T. Halseth
dc6c4637b6 lnwallet+channeldb: add anchor resolutions
Co-authored-by: Joost Jager <joost.jager@gmail.com>
2020-03-17 14:19:35 +01:00
Joost Jager
30fc03d84d lnwallet/test: pass in test channel type 2020-03-17 14:19:33 +01:00
Carla Kirk-Cohen
b03c3c2df3 Merge pull request #4051 from carlaKC/3000-peererrors
peers: Track errors across connections
2020-03-17 10:02:53 +02:00
carla
4c48d0361d lnrpc+lncli: display peer errors in listpeers
This change adds a set of errors to the peer struct returned by list
peers. A latest error boolean is added to allow for more succinct
default lncli responses.
2020-03-17 08:22:50 +02:00
carla
54089febd6 peer+server: store errors for peers with open channels
Add an error buffer to the peer struct which will store errors for
peers that we have active channels with. We do not store these errors
with peers that we do not have channels open with to prevent peers from
connecting and costlessly spamming us with error messages. When the peer
disconnects, the error buffer is offloaded to the server so that we can
track errors across connections. When peers reconnect, they are created
with their historic error buffer.
2020-03-17 08:22:35 +02:00
carla
a223e4eedb queue: add fixed size circular buffer
This commit introduces a fixed size circular buffer  which stores
elements in a fixed size underlying array, wrapping to overwrite items
when the buffer gets full.
2020-03-17 08:22:23 +02:00
Olaoluwa Osuntokun
65f51192df Merge pull request #4082 from Roasbeef/scb-anchors
chanbackup: add SCB support for anchor commitments
2020-03-16 17:08:29 -07:00
Olaoluwa Osuntokun
43323f98fa lntest/itest: add itest for SCB file restore for anchor commitments
In this commit, we extend the current SCB recovery tests to also cover
the new anchor commitment type. We only add a single test that covers
the most common case to avoid needing to tests all cases for all
commitment types which is being done in a follow up PR.
2020-03-16 17:07:27 -07:00
Olaoluwa Osuntokun
de2fefe52a lnwallet+lncfg: fix typos 2020-03-16 17:07:21 -07:00
Olaoluwa Osuntokun
823a9cc2c2 chanbackup: add SCB support for new anchor commitments 2020-03-16 17:07:03 -07:00
Olaoluwa Osuntokun
2e2f0450fd Merge pull request #4080 from wpaulino/travis-bitcoind-0.19.1
build: bump travis bitcoind version to v0.19.1
2020-03-13 15:21:51 -07:00
Olaoluwa Osuntokun
7f7805494c Merge pull request #4068 from halseth/anchors-rpc-committype
[anchors] lnrpc: add commitment_type to listchannels
2020-03-13 15:20:36 -07:00
Johan T. Halseth
7d305fdc46 lnrpc: add commitment_type to listchannels 2020-03-13 20:00:48 +01:00
Wilmer Paulino
4b8d0d913a build: bump travis bitcoind version to v0.19.1 2020-03-13 11:03:00 -07:00
Olaoluwa Osuntokun
4cb518c174 Merge pull request #4056 from wpaulino/tor-onion-store
tor+server: add OnionStore to AddOnionConfig with file-based implementation
2020-03-12 18:49:57 -07:00
Olaoluwa Osuntokun
d570cb04f7 Merge pull request #4061 from Roasbeef/arm-chacha-segfault-fix
build: update to x/crypto version w/o broken poly1305 arm assembly
2020-03-12 16:59:46 -07:00
Johan T. Halseth
15be39b8db Merge pull request #4071 from halseth/autopilot-log-active
[trivial] pilot: log whether autopilot is active at startup
2020-03-11 16:22:33 +01:00
Johan T. Halseth
44ba481f56 Merge pull request #4069 from guggero/windows-build
travis+lncli: fix windows build
2020-03-11 14:51:54 +01:00
Johan T. Halseth
5484436520 Merge pull request #4010 from halseth/avoid-resend-chansync-loop
peer: avoid chansync resend loop
2020-03-11 14:47:07 +01:00
Johan T. Halseth
d4bb0854df Merge pull request #4070 from guggero/disable-clang-format
Makefile: don't format proto on Travis
2020-03-11 14:43:44 +01:00
Johan T. Halseth
c9c667bbf2 pilot: log whether autopilot is active at startup 2020-03-11 12:56:16 +01:00
Johan T. Halseth
7b8eae38e5 peer: avoid chansync resend loop
If a peer receives a channel reestablish message shortly after the
channel has been closed, it will resend its own channel reestablish
message. In the meantime the other peer could also have seen the channel
being closed and will also resend its own message. This leads to a
resend loop that never terminates.

To avoid two peers getting into this situation, we now allow only one
such resent message per conection.
2020-03-11 12:13:25 +01:00
Oliver Gugger
7917d22daf Makefile: don't format proto
There are different versions of clang-format being installed on
different versions of ubuntu that apparently produce different
results when formatting the proto files. This is likely too much
of a hurdle for new contributors to also manually install the
correct version of a command line tool just to format stuff.
2020-03-11 10:17:45 +01:00
Oliver Gugger
f55860ccd8 lncli: fix windows compilation 2020-03-11 10:07:43 +01:00
Oliver Gugger
3b8dd4bd63 travis: cross-compile windows 2020-03-11 09:12:52 +01:00
Oliver Gugger
0a9dc6aeb2 Merge pull request #4042 from guggero/travis-rpc
travis: format, compile and verify protos
2020-03-11 09:04:21 +01:00
Conner Fromknecht
fcecc5cc39 Merge pull request #4066 from guggero/unlock-stdin
lncli: allow unlock with password from stdin
2020-03-10 17:58:55 -07:00
Olaoluwa Osuntokun
113c5c2054 Merge pull request #4062 from cfromknecht/size-typo
input/size: correct NestedP2WSHSize comment
2020-03-10 17:40:44 -07:00
Oliver Gugger
59875b6ec4 github: add proto formatting to pull request template 2020-03-10 20:19:21 +01:00
Oliver Gugger
10e247540f watchtowerrpc: fix typo 2020-03-10 20:19:21 +01:00
Oliver Gugger
1e1b68accf lnrpc: update README to describe new commands 2020-03-10 20:19:20 +01:00
Oliver Gugger
fdcb30e57f lnrpc: run clang-format 2020-03-10 20:19:08 +01:00
Conner Fromknecht
ae815f221f input/size: correct NestedP2WSHSize comment 2020-03-10 11:53:58 -07:00
Wilmer Paulino
e17ad8bc84 Merge pull request #4048 from wpaulino/tor-hashed-password
server+tor: add support for Tor HASHEDPASSWORD authentication method
2020-03-10 11:12:41 -07:00
Tomas Carnecky
018e8b5b97 server+tor: add support for Tor HASHEDPASSWORD authentication method
This provides users an alternative over the SAFECOOKIE authentication
method, which may not be as useful if users are connecting to a remote
Tor sevrer due to lnd not being able to retrieve the cookie file.
2020-03-10 10:32:44 -07:00
Oliver Gugger
ed8924c6c5 lncli: allow unlock with password from stdin 2020-03-10 14:29:45 +01:00
Conner Fromknecht
7a1013fb9e make+travis: verify compiled protos on travis 2020-03-10 13:03:01 +01:00
Olaoluwa Osuntokun
3dda93e30d Merge pull request #3821 from halseth/pluggable-anchors-lnwallet
[anchor] pluggable anchor commitments
2020-03-09 19:49:05 -07:00