Commit Graph

9450 Commits

Author SHA1 Message Date
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
Johan T. Halseth
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
Johan T. Halseth
c9c667bbf2
pilot: log whether autopilot is active at startup 2020-03-11 12:56:16 +01:00
Johan T. Halseth
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
Oliver Gugger
7917d22daf
Makefile: don't format proto
There are different versions of clang-format being installed on
different versions of ubuntu that apparently produce different
results when formatting the proto files. This is likely too much
of a hurdle for new contributors to also manually install the
correct version of a command line tool just to format stuff.
2020-03-11 10:17:45 +01:00
Oliver Gugger
f55860ccd8
lncli: fix windows compilation 2020-03-11 10:07:43 +01:00
Oliver Gugger
3b8dd4bd63
travis: cross-compile windows 2020-03-11 09:12:52 +01:00
Oliver Gugger
0a9dc6aeb2
Merge pull request #4042 from guggero/travis-rpc
travis: format, compile and verify protos
2020-03-11 09:04:21 +01:00
Conner Fromknecht
fcecc5cc39
Merge pull request #4066 from guggero/unlock-stdin
lncli: allow unlock with password from stdin
2020-03-10 17:58:55 -07:00
Olaoluwa Osuntokun
113c5c2054
Merge pull request #4062 from cfromknecht/size-typo
input/size: correct NestedP2WSHSize comment
2020-03-10 17:40:44 -07:00
Oliver Gugger
59875b6ec4
github: add proto formatting to pull request template 2020-03-10 20:19:21 +01:00
Oliver Gugger
10e247540f
watchtowerrpc: fix typo 2020-03-10 20:19:21 +01:00
Oliver Gugger
1e1b68accf
lnrpc: update README to describe new commands 2020-03-10 20:19:20 +01:00
Oliver Gugger
fdcb30e57f
lnrpc: run clang-format 2020-03-10 20:19:08 +01:00
Conner Fromknecht
ae815f221f
input/size: correct NestedP2WSHSize comment 2020-03-10 11:53:58 -07:00
Wilmer Paulino
e17ad8bc84
Merge pull request #4048 from wpaulino/tor-hashed-password
server+tor: add support for Tor HASHEDPASSWORD authentication method
2020-03-10 11:12:41 -07:00
Tomas Carnecky
018e8b5b97
server+tor: add support for Tor HASHEDPASSWORD authentication method
This provides users an alternative over the SAFECOOKIE authentication
method, which may not be as useful if users are connecting to a remote
Tor sevrer due to lnd not being able to retrieve the cookie file.
2020-03-10 10:32:44 -07:00
Oliver Gugger
ed8924c6c5
lncli: allow unlock with password from stdin 2020-03-10 14:29:45 +01:00
Conner Fromknecht
7a1013fb9e
make+travis: verify compiled protos on travis 2020-03-10 13:03:01 +01:00
Olaoluwa Osuntokun
3dda93e30d
Merge pull request #3821 from halseth/pluggable-anchors-lnwallet
[anchor] pluggable anchor commitments
2020-03-09 19:49:05 -07:00
Olaoluwa Osuntokun
f29169e7d6
Merge pull request #4000 from joostjager/payment-raw-failure
routing+channeldb: mpp bucket structure
2020-03-09 18:57:04 -07:00
Conner Fromknecht
852ab592bb
Merge pull request #4034 from cfromknecht/nested-size-fix
input/size: correct NP2WKH and NP2SH input count
2020-03-09 18:24:52 -07:00
Olaoluwa Osuntokun
5ba630f02b
Merge pull request #3963 from guggero/safety-doc
doc: add Operational Safety Guidelines document
2020-03-09 17:39:03 -07:00
Olaoluwa Osuntokun
462048ae81
Merge pull request #1895 from Crypt-iQ/lnwire_fuzzing_09_11_2018
fuzz: new fuzz package and lnwire parsing harnesses
2020-03-09 17:23:19 -07:00
Olaoluwa Osuntokun
cbef26b9f6
Merge pull request #3993 from guggero/unconfirmed-chanbackup
chanbackup: update on-disk backup file with unconfirmed channels
2020-03-09 17:18:23 -07:00
Olaoluwa Osuntokun
1589810f07
build: update to x/crypto version w/o broken poly1305 arm assembly
In this commit, we update to a new version of `x/crypto` that drops
broken ARM assembly that can cause a segfault in systems like raspis.
The broken assembly was removed in this commit to the runtime:
8b774103d3.

Fixes #4052.
2020-03-09 12:29:43 -07:00
Joost Jager
c0cb05d7b4
lnrpc: expose raw htlc failure
Adds a new rpc field to the payment htlc proto message and populates it
with data that is now stored in the db.
2020-03-09 18:31:41 +01:00
Joost Jager
866623e84b
channeldb/migration13: migrate to mpp structure
This commit migrates the payments in the database to a new structure
that allows for multiple htlcs per payments. The migration introduces a
new sub-bucket that contains a list of htlcs and moves the old single
htlc into that.
2020-03-09 18:31:39 +01:00
Joost Jager
4cea2d5213
channeldb/migtest: add migration test tools
This commit adds test helper code to dump, restore and verify the
low-level bbolt database structure.
2020-03-09 18:31:37 +01:00
Joost Jager
f86e68a1a2
channeldb+routing: store full htlc failure reason
This commit extends the htlc fail info with the full failure reason that
was received over the wire. In a later commit, this info will also be
exposed on the rpc interface. Furthermore it serves as a building block
to make SendToRoute reliable across restarts.
2020-03-09 18:31:35 +01:00
Joost Jager
48c0e42c26
channeldb+routing: store all payment htlcs
This commit converts the database structure of a payment so that it can
not just store the last htlc attempt, but all attempts that have been
made. This is a preparation for mpp sending.

In addition to that, we now also persist the fail time of an htlc. In a
later commit, the full failure reason will be added as well.

A key change is made to the control tower interface. Previously the
control tower wasn't aware of individual htlc outcomes. The payment
remained in-flight with the latest attempt recorded, but an outcome was
only set when the payment finished. With this commit, the outcome of
every htlc is expected by the control tower and recorded in the
database.

Co-authored-by: Johan T. Halseth <johanth@gmail.com>
2020-03-09 18:31:33 +01:00
Johan T. Halseth
b7885dbbae
lnwallet+size: select HTLC fees based on channel type 2020-03-09 12:59:35 +01:00
Johan T. Halseth
ea2a58e80f
fundingmanager+lnwallet: enable anchor commitments
If both nodes are signalling the feature, make all opened channels using
this type.
2020-03-09 12:59:35 +01:00