Commit Graph

10771 Commits

Author SHA1 Message Date
Conner Fromknecht
6f06c30421
mock: support late registration of spend ntfns 2019-03-19 19:22:47 -07:00
Conner Fromknecht
997aa3ecf0
breacharbiter: detect all spends, add terminal states
This commit modifies the breach arbiter to monitor
all breached inputs for spends and remove them from
the set of inputs to be swept if they are spent to
a terminal state. Prior, we would only watch for
spends on htlcs that may need to transition and
sweep the corresponding second-level htlc.

With these changes, we will no monitor commitment
outputs for spends, as well as spends from the
second level htlcs themselves. If either of these
is detected, we remove them from the set of inputs
to sweep via the justice transaction because there
is nothing the breach arbiter can do.

This functionality will be needed when adding
watchtower support, as the breach arbiter must
detect the case when the tower sweeps on behalf of
the user and stop pursuing the sweep itself. In
addition, this now properly handles the potential
case where somehow the remote party is able to sweep
the their commitment or second-level htlc to their
wallet, and prevent the breach arbiter from trying
to sweep the outputs as it would now.

Note that in the latter event, the internal
accounting may still be incorrect, as it is assumed
that all breached funds return to the victim.
However, these issues will deferred and fixed at a
later date, as the more crucial aspect is that the
breach arbiter doesn't blow up as a result of towers
sweeping channels.
2019-03-19 19:22:35 -07:00
Conner Fromknecht
3641beb002
breacharbiter: capitalize "unable to" error msgs 2019-03-19 19:21:03 -07:00
Olaoluwa Osuntokun
6d3b142f2a
Merge pull request #2800 from Roasbeef/simplify-timeout-resolver
contractcourt: simplify htlcTimeoutResolver
2019-03-19 17:27:24 -07:00
Olaoluwa Osuntokun
da76c34418
channeldb: convert invoice settle/cancel calls to use Batch 2019-03-19 17:11:17 -07:00
Olaoluwa Osuntokun
e8da6dd0b4
channeldb: convert concurrent channel state machine calls to use Batch 2019-03-19 17:11:14 -07:00
Olaoluwa Osuntokun
3555d3dbd4 channeldb: convert all Update calls to use Batch
In this commit, we convert all the `Update` calls which are serial, to
use `Batch` calls which are optimistically batched together for
concurrent writers. This should increase performance slightly during the
initial graph sync, and also updates at tip as we can coalesce more of
these individual transactions into a single transaction.
2019-03-19 17:10:46 -07:00
Olaoluwa Osuntokun
abda447edb
Merge pull request #2705 from halseth/travis-go-1.12
travis: use go 1.12.x
2019-03-19 16:51:18 -07:00
Olaoluwa Osuntokun
1cea8d98c9
utoxnursery: allow nursery to start up if timeout spend happens
Fixes #2793.
2019-03-19 16:50:30 -07:00
Olaoluwa Osuntokun
db411c244e
contractcourt: add new set of tests in htlcTimeoutResolver to exercise refactorings 2019-03-19 16:50:28 -07:00
Olaoluwa Osuntokun
6b24b6dabd
contractcourt: simplify htlcTimeoutResolver, unify with HTLC contest logic
In this commit, we simplify the existing `htlcTImeoutResolver` with some
newly refactored out methods from the `htlcTimeoutContestResolver`. The
resulting logic is easier to follow as it's more linear, and only deals
with spend notifications rather than both spend _and_ confirmation
notifications.
2019-03-19 16:50:27 -07:00
Olaoluwa Osuntokun
e1a07b68e8
contractcourt: extract which timeout HTLC output to watch into new method 2019-03-19 16:50:09 -07:00
Olaoluwa Osuntokun
b078cea83f contractcourt: move claimCleanUp from contest resolver to timeout 2019-03-19 16:49:56 -07:00
Olaoluwa Osuntokun
232dd73abd
Merge pull request #2691 from cfromknecht/increase-default-recovery-window
cmd/lncli: increase default recovery window to 2.5k
2019-03-19 16:12:32 -07:00
Olaoluwa Osuntokun
71161848aa
Merge pull request #2736 from cfromknecht/config-num-workers
lncfg: add CLI worker configuration
2019-03-19 15:47:38 -07:00
Joost Jager
ec0d241905
lncli: add cltv limit 2019-03-19 10:38:09 +01:00
John Griffith
acb8fd4796
lnrpc: add payment cltv limit 2019-03-19 10:36:54 +01:00
Joost Jager
06cd64cbbc
routing: add cltv limit to payment session 2019-03-19 10:36:51 +01:00
Joost Jager
e3bb3d46a2
routing: abstract path finding interface 2019-03-19 10:36:48 +01:00
Joost Jager
6006549ed5
routing: enforce cltv limit in path finding 2019-03-19 10:36:45 +01:00
Joost Jager
c5961d4904
routing: only warn for zero cltv delta edges
This condition may be caused by a bug somewhere else in the system.
Expose it here as a warn log line.
2019-03-19 10:36:43 +01:00
Olaoluwa Osuntokun
158a32c4e1
Merge pull request #1228 from halseth/fee-estimation-rpc
Fee estimation RPC
2019-03-18 16:08:26 -07:00
Olaoluwa Osuntokun
eb30870d8f
build: update to latest version of btcutil with Litecoin bug fix
Fixes #1949.
Fixes #1985.
2019-03-18 15:37:59 -07:00
Johan T. Halseth
6aae6fda93
lncli/autopilot: add -ignorelocal state flag to query 2019-03-18 14:58:19 +01:00
Johan T. Halseth
d4813422c9
autopilot+autopilotrpc: ignore local channels if ignore_local_state set 2019-03-18 14:43:40 +01:00
Johan T. Halseth
c7ab6f3603
lnrpc/autopilotrpc: add ignore_local_state flag 2019-03-18 14:42:58 +01:00
Johan T. Halseth
dd072304b0
autopilot: move queryHeuristic out of agent
This commit moves the logic querying the available heuristics out of the
autopilot agent and into the autopilot manager. This lets us query the
heuristic without the autopilot agent being active.

If called without the agent being active, the current set of channels
will be considered by the heuristics. If the agent is active also the
pending channels will be considered.
2019-03-18 13:32:18 +01:00
Alex Bosworth
928f06049e
README: remove testnet3 specificity
Eliminate the reference to Bitcoin testnet which is now dated
2019-03-17 11:10:46 -07:00
Olaoluwa Osuntokun
ec62104acc
Merge pull request #2618 from cfromknecht/wtclient
watchtower/wtclient: reliable, asynchronous pipeline for revoked state backups
2019-03-16 14:31:55 -07:00
Johan T. Halseth
54f1f32e71
lnwallet/interface_test: add testCreateSimpleTx 2019-03-15 23:47:15 +01:00
Johan T. Halseth
306c0c8aab
lnwallet: return ErrNoOutputs in case no outputs are sent to 2019-03-15 23:47:15 +01:00
Johan T. Halseth
a5becc2063
lncli: add estimatefee command 2019-03-15 23:47:15 +01:00
Johan T. Halseth
1e2af38f5a
lnrpc+rpcserver: define and implement EstimateFee RPC 2019-03-15 23:47:13 +01:00
Johan T. Halseth
bb092bc61e
lnwallet/interface: add CreateSimpleTx to wallet interface 2019-03-15 23:46:51 +01:00
Johan T. Halseth
3ebc66bd16
mock: add CreateSimpleTx to mockWalletController 2019-03-15 23:46:50 +01:00
Johan T. Halseth
6fb664dbe1
lnwallet/btcwallet: implement CreateSimpleTx 2019-03-15 23:46:50 +01:00
Olaoluwa Osuntokun
b4a1024ac7
Merge pull request #2490 from aakselrod/tor-null-auth-and-listen-fixes
Tor null auth and listen fixes
2019-03-15 14:53:12 -07:00
Olaoluwa Osuntokun
aa1cd04dbf
Merge pull request #2022 from joostjager/holdinvoice
htlcswitch: hodl invoice
2019-03-15 13:26:53 -07:00
Olaoluwa Osuntokun
5ef95a51dc
Merge pull request #2766 from Roasbeef/chain-watcher-fix-off-by-one
contractcourt: fix off-by-one error in closeObserver
2019-03-15 13:26:08 -07:00
Conner Fromknecht
32c4201edd
cmd/lncli: increase default recovery window to 2.5k
Increases the default window from 250 to 2.5k. Many
users have reported attempting recovery with the
default value only to find an empty wallet. This
change should help ensure that the first recovery
attempt succeeds for the majority of nodes that
have modest load. It might prudent to consider
increasing this value further in the future if
the issue persists or average node age increases.
2019-03-15 02:54:07 -07:00
Conner Fromknecht
05e3a7f6c0
watchtower/wtmock/peer: set local pubkey 2019-03-15 02:34:00 -07:00
Conner Fromknecht
80040d9d96
watchtower/wtclient/client_test: adds client-server upload test 2019-03-15 02:33:47 -07:00
Conner Fromknecht
e1e805d1b8
watchtower/wtserver/server: fix race condition on Stop 2019-03-15 02:33:33 -07:00
Conner Fromknecht
a222a63d81
watchtower/wtserver/server: no ack updates 2019-03-15 02:33:20 -07:00
Conner Fromknecht
8b0cc487f0
watchtower/wtdb+wtserver: allow retransmission of last update 2019-03-15 02:33:06 -07:00
Conner Fromknecht
81497eceaf
watchtower/wtmock/peer: create mock net.Conn using bidi MockPeer 2019-03-15 02:32:53 -07:00
Conner Fromknecht
87e8700c5d
watchtower/wtmock/client_db: add mock client db 2019-03-15 02:32:40 -07:00
Conner Fromknecht
f00b4c5e96
watchtower/wtclient/client: hook up full client pipeline 2019-03-15 02:32:27 -07:00
Conner Fromknecht
abef9e09e7
watchtower/wtclient/stats: adds clientStats 2019-03-15 02:32:15 -07:00
Conner Fromknecht
aa2b21117c
watchtower/wtclient/session_queue: batch upload state updates 2019-03-15 02:32:02 -07:00