Commit Graph

9579 Commits

Author SHA1 Message Date
ab451f634e cnct+lnrpc: report anchor resolution 2020-03-18 12:27:03 +01:00
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
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
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
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
8a9b7595b7 Merge pull request #4094 from guggero/btcd-docker
docker: pin down btcd version
2020-03-18 10:05:21 +01:00
f5f0b2107b docker: pin down btcd version
There was a recent change merged into btcd that isn't backward
compatible with older RPC clients. To make sure our docker quick
start example still works, we need to pin down btcd to the version
that is still compatible with lnd.
2020-03-18 08:54:48 +01:00
b6a0bfcabe Merge pull request #3848 from carlaKC/htlcnotifier-3-addhtlcnotifierrpc
[htlcnotifier 4/4]: lnrpc: Add HTLC Event Subscription
2020-03-17 16:37:52 -07:00
5147a6d63d netann/channel_update: set timestamp via modifier 2020-03-17 16:25:22 -07:00
f6c194c3cd netann/node_announcement: consolidate signing logic 2020-03-17 16:25:02 -07:00
089ac647d8 discovery/chan_series: use netann.ChannelUpdateFromEdge helper 2020-03-17 16:24:25 -07:00
7b0d564692 discovery: move remotePubFromChanInfo to gossiper, remove utils 2020-03-17 16:24:10 -07:00
6a813e3433 discovery/multi: move CreateChanAnnouncement to netann 2020-03-17 16:23:54 -07:00
d82aacbdc5 discovery/utils: use netann.ChannelUpdateFromEdge 2020-03-17 16:23:37 -07:00
9d92cfd2b4 netann/channel_update: use generic SignAnnouncement 2020-03-17 16:23:19 -07:00
df44d19936 discovery/multi: move SignAnnouncement to netann 2020-03-17 16:23:01 -07:00
5ab7dd89e7 rpcserver: parameterize acceptortimeout 2020-03-17 16:43:14 -03:00
e8e99c6533 cnct: simplify channel arbitrator state logging 2020-03-17 16:25:39 +01:00
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
c376cdb733 input: add anchor witness type 2020-03-17 16:25:35 +01:00
dd77d9263e cnct: persist anchor resolutions 2020-03-17 16:25:33 +01:00
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
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
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
1c93e9e03d sweep: isolate min fee rate bucket 2020-03-17 14:19:37 +01:00
dc6c4637b6 lnwallet+channeldb: add anchor resolutions
Co-authored-by: Joost Jager <joost.jager@gmail.com>
2020-03-17 14:19:35 +01:00
30fc03d84d lnwallet/test: pass in test channel type 2020-03-17 14:19:33 +01:00
b03c3c2df3 Merge pull request #4051 from carlaKC/3000-peererrors
peers: Track errors across connections
2020-03-17 10:02:53 +02:00
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
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
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
65f51192df Merge pull request #4082 from Roasbeef/scb-anchors
chanbackup: add SCB support for anchor commitments
2020-03-16 17:08:29 -07:00
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
de2fefe52a lnwallet+lncfg: fix typos 2020-03-16 17:07:21 -07:00
823a9cc2c2 chanbackup: add SCB support for new anchor commitments 2020-03-16 17:07:03 -07:00
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
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
7d305fdc46 lnrpc: add commitment_type to listchannels 2020-03-13 20:00:48 +01:00
4b8d0d913a build: bump travis bitcoind version to v0.19.1 2020-03-13 11:03:00 -07:00
0a5b918db2 routerrpc: add htlcnotifier subscription 2020-03-13 09:47:19 +02:00
aa70d5d02a routerrpc: add quit channel to signal shutdown 2020-03-13 09:36:39 +02:00
67d4bad73f rpcserver+routerrpc: add subscribe events to router backend
Add SubscribeHtlcEvents to RouterBackend in preparation for the
addition of a HtlcNotifier stream.
2020-03-13 09:30:16 +02:00
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
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
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
44ba481f56 Merge pull request #4069 from guggero/windows-build
travis+lncli: fix windows build
2020-03-11 14:51:54 +01:00
5484436520 Merge pull request #4010 from halseth/avoid-resend-chansync-loop
peer: avoid chansync resend loop
2020-03-11 14:47:07 +01:00
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
c9c667bbf2 pilot: log whether autopilot is active at startup 2020-03-11 12:56:16 +01:00
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