Commit Graph

6373 Commits

Author SHA1 Message Date
Conner Fromknecht
0a3e1cfbe5
channeldb+witness_beacon: use sha256 lookup+delete witness 2019-02-19 17:06:42 -08:00
Conner Fromknecht
3428fde5ab
htlcswitch/link_test: batch preimage write test 2019-02-19 17:06:28 -08:00
Conner Fromknecht
76cecb1396
htlcswitch/link: batch write to preimage cache
This commit makes use of the batched AddWitness
method of the WitnessCache, in order to avoid
performing one write for each accepted preimage.

Additionally, this fixes an existing hole in the
consistency guarantees since the batched writes
are now guaranteed to take place before accepting
the next CommitSig. Previously, these writes were
processed in an unsynchronized go routine that
could be delayed arbitrarily long before being
executed.

With this change, the async_payments_benchmarks
actually shows a slight improvement in
performance, presumably because we no longer do
an individual write per preimage, even though
the execution is now explicitly in the critical
path. There is likely also a marginal performance
improvement from the reduction in goroutine
overhead.
2019-02-19 17:06:15 -08:00
Conner Fromknecht
29f07a58cb
cnct+lnwl+hswc: use lntypes.Preimage for witness beacon 2019-02-19 17:06:00 -08:00
Conner Fromknecht
2d8bc99d9e
lntypes/preimage: add MakePreimage initializer 2019-02-19 17:05:45 -08:00
Conner Fromknecht
e8b7f1fca3
channeldb/witness_cache: create AddSha256Witnesses helper + test 2019-02-19 17:05:30 -08:00
Conner Fromknecht
56b6becc48
channeldb/witness_cache_test: test batch preimage insertion 2019-02-19 17:05:17 -08:00
Conner Fromknecht
30f61b7630
multi: make AddPreimage variadic, optimistically compute key
In this commit, we modify the WitnessCache's
AddPreimage method to accept a variadic number
of preimages. This enables callers to batch
preimage writes in performance critical areas
of the codebase, e.g. the htlcswitch.

Additionally, we lift the computation of the
witnesses' keys outside of the db transaction.
This saves us from having to do hashing inside
and blocking other callers, and limits extraneous
blocking at the call site.
2019-02-19 17:05:04 -08:00
Olaoluwa Osuntokun
81783a60dc
Merge pull request #2212 from halseth/autopilot-bos-scores
Bos score enabled Autopilot
2019-02-14 15:22:13 -08:00
Johan T. Halseth
acd458db56
Merge pull request #2549 from halseth/router-ignore-unknown-chanupdate
routing: ignore ChannelUpdates for unknown channels
2019-02-14 15:32:52 +01:00
Johan T. Halseth
01ea797d78
routing/router test: add TestIgnoreChannelEdgePolicyForUnknownChannel 2019-02-14 14:21:18 +01:00
Johan T. Halseth
2b012b06a0
channeldb/graph test: add test for update policy for unknown edge 2019-02-14 14:21:18 +01:00
Johan T. Halseth
23ce82f4e3
routing/router: don't apply channel policy updates for unknown channels 2019-02-14 14:21:18 +01:00
Johan T. Halseth
25f1252019
autopilot/externalscoreattach_test: add TestSetNodeScores 2019-02-14 12:37:25 +01:00
Johan T. Halseth
5dabb1ae29
autopilot+lnrpc: wire up SetNodeScores RPC to set scores of agent 2019-02-14 11:41:47 +01:00
Johan T. Halseth
b23e53ea33
autopilot/interface+externalscoreattach: define ScoreSettable
ScoreSettable is an interface that let caller set external scores for
the heuristic. The ExternalScoreAttachment and WeightedCombAttachment
heuristics implement this interface.
2019-02-14 11:41:47 +01:00
Johan T. Halseth
83edcb7153
lnrpc: add API SetScores
Used to set the external scores for the running autopilot agent.
2019-02-14 11:41:47 +01:00
Johan T. Halseth
749d9cccca
autopilot/combinedattach: add SetNodeScores
This commit adds a method SetNodesScores to the WeightedCombAttachment
heuristic.

Since the heuristic keeps a list of sub-heuristics, it will attempt to
recursively apply the scores to the sub heuristics.
2019-02-14 11:37:47 +01:00
Johan T. Halseth
dff61facf2
autopilot: add ExternalScoreAttachment heuristic
This commit adds a new autopilot heuristic that is scoring based. It is
a simple heuristic that will keep a list of pubkeys and scores, and will
try opening channels with the nodes with the largest score first.
2019-02-14 11:37:47 +01:00
Olaoluwa Osuntokun
e10fe91f10
Merge pull request #2637 from Roasbeef/neutrino-filter-fix
build: update btcd, btcwallet, btcutil, and neutrino
2019-02-13 17:38:57 -08:00
Johan T. Halseth
4fce641d6a
Merge pull request #2639 from halseth/routing-remove-unised-nodeindex-chanindex
[trivial] routing: remove unused code, nodeIndex and chanIndex
2019-02-13 19:51:59 +01:00
Johan T. Halseth
1259bacd49
routing: remove unused code, nodeIndex and chanIndex 2019-02-13 12:23:45 +01:00
Olaoluwa Osuntokun
4608ef9ecc
build: update btcd, btcwallet, btcutil, and neutrino
In this commit, we update all the `btcsuite` dependencies, along with
neutrino to their latest version. The main change in this version is a
bug fix in the way that we generated the filters that neutrino uses. As
a result, any users running btcd with neutrino today will need to
**regenerate their filter chain** using `--dropcfindex`. Any existing
neutrino clients out there will also need _re sync_ all together as the
"correct" filter header chain.
2019-02-12 19:47:20 -08:00
Olaoluwa Osuntokun
b1ef153ea9
Merge pull request #2631 from Roasbeef/update-neutrino-sync-conn
build: update to latest version of neutrino
2019-02-12 18:21:38 -08:00
Olaoluwa Osuntokun
e9fb6100f2
Merge pull request #2615 from cfromknecht/wtwire-check-remote-init
wtwire: add CheckRemoteInit helper
2019-02-11 19:59:08 -08:00
Olaoluwa Osuntokun
7908e628d9
Merge pull request #2624 from yancyribbens/ltc-dockerfile-fix-build
fix glide build error with docker ltcd
2019-02-11 19:45:00 -08:00
Olaoluwa Osuntokun
0776c7a337
Merge pull request #2603 from Crypt-iQ/error_message_payload_fix
lnwire: change error's MaxPayloadLength to 65535
2019-02-11 19:42:16 -08:00
Olaoluwa Osuntokun
93853df734
Merge pull request #2556 from cfromknecht/list-unspent-recovery
lnrpc+rpcserver: return all utxos by default from ListUnspent
2019-02-11 17:08:29 -08:00
Olaoluwa Osuntokun
cbf352d120
build: update to latest version of neutrino
This latest versino of neutrino contains some fixes that make lnd a bit
snappier when running on mobile devices. We'll now wait until we have our
first peer before we try to sync the chain. We'll also no longer try to fail
to query filter checkpoints if we don't actually have any to fetch.
2019-02-11 16:14:19 -08:00
Conner Fromknecht
fd6fb80816
cmd/lncli: show all utxos in listunspent when no args passed 2019-02-11 13:02:35 -08:00
Conner Fromknecht
34e36e9daa
lnrpc+rpcserver: rename ScriptPubkey to PkScript on Utxo msg 2019-02-11 13:02:25 -08:00
Conner Fromknecht
3fa9d81a41
lntest/harness: assert unconfirmed utxos in ListUnspent during sendCoins 2019-02-11 13:02:11 -08:00
Olaoluwa Osuntokun
932fafd7cd
lnd_test: extend on chain recovery test to assert utxos 2019-02-11 13:02:00 -08:00
Conner Fromknecht
cb2723236f
lnrpc: correct tab indentation to 4 space 2019-02-11 13:01:49 -08:00
Conner Fromknecht
287c4d0658
Merge pull request #2630 from alexbosworth/patch-10
trivial: typo fix
2019-02-11 12:49:56 -08:00
Alex Bosworth
b3ae5bc16e
trivial: typo fix 2019-02-10 21:18:34 -08:00
yancy
465f8a1fdb fix glide build error with docker ltcd 2019-02-10 06:51:06 +00:00
Joost Jager
c44d4046c1
Merge pull request #2572 from joostjager/outgoing-chan-selection
routing: add outgoing channel restriction
2019-02-09 11:33:43 +01:00
Conner Fromknecht
4a0fc3e980
watchtower/multi: thread ChainHash to server 2019-02-08 20:02:17 -08:00
Conner Fromknecht
b3a9650ff9
watchtower/wtserver/server: use CheckRemoteInit to validate Init msgs 2019-02-08 20:02:11 -08:00
Conner Fromknecht
4c7111256e
watchtower/wtwire/features: remove local/global feature names...
in favor of a universal FeatureNames index.
2019-02-08 20:02:05 -08:00
Conner Fromknecht
40df51eaaa
watchtower/wtwire/init_test: table test CheckRemoteInit 2019-02-08 20:01:59 -08:00
Conner Fromknecht
572537874b
watchtower/wtwire/init: add CheckRemoteInit method 2019-02-08 20:01:54 -08:00
Olaoluwa Osuntokun
f4dfcc35aa
Merge pull request #2606 from cfromknecht/wtwire-init-connection-features
watchtower/multi: send connection features + chain hash in Init
2019-02-08 18:48:54 -08:00
Olaoluwa Osuntokun
16d69e8551
Merge pull request #2605 from cfromknecht/wtwire-uniform-feature-names
watchtower/wtwire/features: make wtwire features uniform
2019-02-08 18:39:37 -08:00
Olaoluwa Osuntokun
f184188d18
Merge pull request #2604 from cfromknecht/wtclient-weight-pkscript-fixups
watchtower/wtclient: weight + sweep pkscript fixups
2019-02-08 18:35:44 -08:00
Olaoluwa Osuntokun
696e433d88
Merge pull request #2587 from Roasbeef/sub-server-travis
build+test+make: modify travis make directive to also compile sub-ser…
2019-02-08 15:11:25 -08:00
Joost Jager
7c30a8c493
routing: add outgoing channel restriction 2019-02-08 23:05:56 +01:00
Conner Fromknecht
0045ad567d
watchtower/wtwire/features: make wtwire feature uniform 2019-02-07 16:13:42 -08:00
Johan T. Halseth
c1ab49909f
Merge pull request #2517 from roeierez/chain_control_cleanup
Proper cleanup neutrino database in case of error
2019-02-07 17:26:44 +01:00