Commit Graph
9131 Commits
Author SHA1 Message Date
Olaoluwa Osuntokun 46cec2fdc0 sweep: convert to use new kvdb abstraction 2020-03-18 19:35:10 -07:00
Olaoluwa Osuntokun ace7a78494 discovery: covert to use new kvdb abstraction 2020-03-18 19:35:07 -07:00
Olaoluwa Osuntokun 852b2380a9 macaroons: convert to use new kvdb abstraction 2020-03-18 19:35:04 -07:00
Olaoluwa Osuntokun 557b930c5f watchtower: convert to use new kvdb abstraction 2020-03-18 19:35:01 -07:00
Olaoluwa Osuntokun 28bbaa2a94 routing: convert to use new kvdb abstraction 2020-03-18 19:34:58 -07:00
Olaoluwa Osuntokun 4e68914e9d htlcswitch: convert to use new kvdb abstraction 2020-03-18 19:34:55 -07:00
Olaoluwa Osuntokun 320101d054 contractcourt: convert to use new kvdb abstraction 2020-03-18 19:34:52 -07:00
Olaoluwa Osuntokun f0911765af channeldb: convert to uniformly use new kvdb abstractions
In this commit, we migrate all the code in `channeldb` to only reference
the new `kvdb` package rather than `bbolt` directly.

In many instances, we need to add two version to fetch a bucket as both
read and write when needed. As an example, we add a new
`fetchChanBucketRw` function. This function is identical to
`fetchChanBucket`, but it will be used to fetch the main channel bucket
for all _write_ transactions. We need a new method as you can pass a
write transaction where a read is accepted, but not the other way around
due to the stronger typing of the new `kvdb` package.
2020-03-18 19:34:49 -07:00
Olaoluwa Osuntokun fc808ac538 channeldb/kvdb: create new package for an abstract kv store
In this commit, we create a new package `kvdb`, which is meant to serve
as the basis for any future database abstractions within `lnd`. Rather
than directly use the `walletdb` package (which we base off of), we
instead use a series of type-aliases to re-type the fundamental
types/interfaces of the `walletdb` package. This lets us type
`kvdb.RwTx` instead of `walletdb.ReadWriteTransaction` everywhere.
Additionally, our usage of type-aliases is also intended to create an
easy pathway in the future wherein we can gradually re-defined or
re-implement these types to wean off of the `walletdb` package.
2020-03-18 19:34:45 -07:00
Joost Jager e2052f7f65 Merge pull request #3758 from joostjager/anchor-output-poc-joost
cnct: anchor output sweeping and fee bumping
2020-03-18 18:59:06 +01:00
Joost Jager fa115b543d lncli: add bumpchannelclose command
This command allows users to easily bump the fee on their unconfirmed
closing transactions.
2020-03-18 12:27:06 +01:00
Joost Jager d60303b092 lnrpc: expose commit hashes for waiting close channels
To make it easier to determine which pending sweep to bump in order to
get your anchor commitment tx confirmed.
2020-03-18 12:27:05 +01:00
Joost Jager ab451f634e cnct+lnrpc: report anchor resolution 2020-03-18 12:27:03 +01:00
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
Oliver Gugger 8a9b7595b7 Merge pull request #4094 from guggero/btcd-docker
docker: pin down btcd version
2020-03-18 10:05:21 +01:00
Oliver Gugger 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
Conner Fromknecht 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
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. HalsethandJoost Jager 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
carla 0a5b918db2 routerrpc: add htlcnotifier subscription 2020-03-13 09:47:19 +02:00
carla aa70d5d02a routerrpc: add quit channel to signal shutdown 2020-03-13 09:36:39 +02:00
carla 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
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