Commit Graph

8203 Commits

Author SHA1 Message Date
Olaoluwa Osuntokun
a53323205c
Merge pull request #3133 from cfromknecht/wt-polish
watchtower: integrate altruist watchtower and watchtower client
2019-06-14 21:34:10 +02:00
Conner Fromknecht
47548e0eee
Merge pull request #3141 from wpaulino/instant-wallet-startup
build: update btcwallet dependency to include initial sync improvements
2019-06-14 12:27:05 -07:00
Johan T. Halseth
f98f452528
channeldb: avoid modifying bucket during cursor traversal
This is not safe according to bbolt documentation.
2019-06-14 21:09:03 +02:00
Johan T. Halseth
ed8d635cf1
contractcourt/briefcase: avoid bucket modification in ForEach loop
Since the contents were deleted before the bucket was deleted, we just
delete the bucket immediately.
2019-06-14 21:09:02 +02:00
Johan T. Halseth
b7a37728c0
channeldb/migrations: avoid modifying bucket during ForEach loop
bbolt documenation state that this is not safe and leads to undefined
behavior.
2019-06-14 21:09:02 +02:00
Wilmer Paulino
7b7a87cf04
build: update btcwallet dependency to include initial sync improvements 2019-06-14 01:36:04 -07:00
Johan T. Halseth
f63c5d0170
Merge pull request #3182 from yaslama/addressTypeInitialization
Initialize addressType to UnknownAddressType
2019-06-14 10:32:01 +02:00
Olaoluwa Osuntokun
18ec2bdbf4
Merge pull request #3011 from orbitalturtle/auto-regenerate-cert
Auto regenerate TLS cert
2019-06-14 06:34:41 +02:00
Olaoluwa Osuntokun
866fa2b8f9
Merge pull request #3173 from cfromknecht/aggregate-router-logging
routing/router: log aggregate graph processing stats
2019-06-14 06:27:11 +02:00
Conner Fromknecht
059887bd7b
watchtower/wtdb: apply sanity checks to session policy before accepting 2019-06-13 19:54:22 -07:00
Conner Fromknecht
1979f9a7c0
watchtower/multi: use sane sweep fee rate in unit tests 2019-06-13 19:54:22 -07:00
Conner Fromknecht
a543c781fe
watchtower/wtpolicy: add basic validity constraints 2019-06-13 19:54:22 -07:00
Conner Fromknecht
37052f1561
watchtower/wtdb: only accept properly sized blobs
Modifies the bbolt and mock tower databases to only accept blobs that
are the expected size of the session's blob type. This prevents resource
exhaustion attacks where a client may provide disproportionately large
encrypted blob, even though all supported blob types are of fixed-size.
2019-06-13 19:54:22 -07:00
Conner Fromknecht
dce24d1d47
watchtower/wtdb+wtserver: pass properly sized blob in unit tests 2019-06-13 19:54:22 -07:00
Conner Fromknecht
29009fdc34
watchtower/standalone: disable reward towers 2019-06-13 19:54:22 -07:00
Conner Fromknecht
6504058c74
watchtower/wtserver: add DisableReward config option 2019-06-13 19:54:21 -07:00
Conner Fromknecht
a246d8216a
watchtower/multi: define blob TypeAltruistCommit and TypeRewardCommit 2019-06-13 19:54:21 -07:00
Conner Fromknecht
2d47618055
watchtower/multi: define AltruistSessions feature bit as 0/1 2019-06-13 19:54:21 -07:00
Conner Fromknecht
86e1d111e5
watchtower/wtwire/message: bump wtwire messages outside reserved ranges
BOLT01 reserves the following ranges:
 - Setup & Control (types 0-31)
 - Channel (types 32-127)
 - Commitment (types 128-255)
 - Routing (types 256-511)

The wtwire messages now occupy 600-607.
2019-06-13 19:54:21 -07:00
Conner Fromknecht
7cabe2667f
watchtower/wtclient/client: use existing session with same TxPolicy
This commit modifies the client's filtering when selecting from existing
sessions. The new logic compares the configured TxPolicy with the
TxPolicy of the candidate sessions, which has the effect of ignoring
operational parameters such as MaxUpdates. Prior, changing MaxUpdates
would cause the client to request a new session even if it had perfectly
good slots available in a policy with an equal TxPolicy.
2019-06-13 19:54:21 -07:00
Conner Fromknecht
98c2d329e5
watchtower/multi: embed TxPolicy in wtpolicy.Policy
This commit splits out the parameters that shape the justice transaction
into their own struct, which then embedded within the overarching
wtpolicy.Policy which may have additional parameters describing
operation of the session.

This is done as a preliminary step to support comparison of sessions
based on matching TxPolicy configurations. This prevents otherwise
identical Policies from being counted as different if operational
parameters like MaxUpdates differ, even if it has no material difference
to the justice transaction.
2019-06-13 19:54:20 -07:00
Conner Fromknecht
9b365567b6
watchtower/wtclient/client: avoid over requesting sessions
This commit fixes a bug that would cause us to request more sessions
that needed from the session negotiator. With the current stat ticker,
we'd ask the negotiator for a new session every 30s if session
session negotiation did not return before printing the stats. Now we'll
avoid requesting to sessions by jumping back into the select loop.
2019-06-13 19:54:20 -07:00
Conner Fromknecht
72e355f933
lnd_test: add altruist watchtower itest 2019-06-13 19:54:20 -07:00
Conner Fromknecht
8ab56b2a5c
rpcserver: add missing channelbalance log 2019-06-13 19:54:20 -07:00
Conner Fromknecht
985ac7f5b7
lnd: integrate companion watchtower 2019-06-13 19:54:20 -07:00
Conner Fromknecht
c1f24feb8b
config: expose watchtower conf 2019-06-13 19:54:19 -07:00
Conner Fromknecht
bd5b8700d8
lncfg: add Watchtower config 2019-06-13 19:54:19 -07:00
Conner Fromknecht
c823878154
watchtower/conf: abstract address normalizer to prevent import cycle 2019-06-13 19:54:19 -07:00
Conner Fromknecht
db65d7ead4
watchtower/conf: remove experimental conditional compilation 2019-06-13 19:54:19 -07:00
Conner Fromknecht
7c0a03c7c8
server+utxonursery: generate pkscript closures
This commit moves the newSweepPkScript function
previously in the nursery to be a helper function
within the server. Additionally, the function now
returns a closure that satisfies the configuration
interfaces of several other subsystems.

As a result, the configuration sites contain much
less boilerplate, as it's now encapsulated in
the newSweepPkScriptGen helper.
2019-06-13 19:54:19 -07:00
Conner Fromknecht
efcdefee39
peer: pass watchtower client's to active links 2019-06-13 19:54:19 -07:00
Conner Fromknecht
d2f3d5ef6c
server: add watchtower client 2019-06-13 19:54:18 -07:00
Conner Fromknecht
fb8214b808
config: expose+validate private tower addr 2019-06-13 19:54:18 -07:00
Conner Fromknecht
5266f597fd
log: add watchtower client logs 2019-06-13 19:54:18 -07:00
Conner Fromknecht
88b5780978
lncfg/wtclient: adds watchtower client CLI configuration 2019-06-13 19:54:18 -07:00
Conner Fromknecht
2bffdf3a1d
lncfg/address: expose TCPResolver 2019-06-13 19:54:18 -07:00
Conner Fromknecht
851c070595
htlcswitch/link: fix Min/MaxFeeUpdateTimeout godocs 2019-06-13 19:54:18 -07:00
Conner Fromknecht
c41017610b
htlcswitch/link: backup revoked states to watchtower 2019-06-13 19:54:18 -07:00
Conner Fromknecht
7566b26e03
htlcswitch/interface: add TowerClient iface 2019-06-13 19:54:17 -07:00
Conner Fromknecht
ab4a4b77f5
watchtower/wtclient/session_queue: unify logging 2019-06-13 19:54:17 -07:00
Conner Fromknecht
3b51906a78
watchtower/multi: use new blob.BreachKey for enc/dec of justice kits 2019-06-13 19:54:17 -07:00
Conner Fromknecht
59bf4857f4
watchtower/blob/breach_key: define breach key as sha(txid || txid) 2019-06-13 19:33:16 -07:00
Conner Fromknecht
d9cfa610dc
watchtower/wtdb/breach_hint: redefine breach hint as sha(txid) 2019-06-13 19:33:16 -07:00
Olaoluwa Osuntokun
290fd0f14f
build: update btcd version to latest w/ rbf support 2019-06-13 18:41:50 -07:00
Conner Fromknecht
529db69ec9
routing/router: log aggregate graph processing stats 2019-06-13 18:18:30 -07:00
Turtle
37d0059d05 lntest: add new test for auto-generating expired certs 2019-06-13 20:55:47 -04:00
Turtle
f2ca4e1ea0 lntest: add getters for TLSCertPath and TLSKeyPath fields 2019-06-13 20:40:56 -04:00
Turtle
f0b2abaec8 lnd: regenerate TLS certs when they expire 2019-06-13 20:40:56 -04:00
Conner Fromknecht
1b89ba1782
watchtower/multi: move BreachHint to blob pkg 2019-06-13 17:40:04 -07:00
Olaoluwa Osuntokun
8e6b903476
autopilot: demote node update log to debug 2019-06-13 16:39:46 -07:00