Commit Graph

10572 Commits

Author SHA1 Message Date
Johan T. Halseth
87cdf3b797
htlcswitch/link: revert borking channels on received Errors
Since it turned out borking channels on every received error could cause
us to bork channels in case of a sync error with C-lightning, we revert
this for now.
2020-11-23 14:42:41 +01:00
Johan T. Halseth
ca91d50884
Merge pull request #4750 from halseth/sweeper-required-locktime-txout
Sweeper: support Inputs with required locktimes and txOuts
2020-11-21 11:54:34 +01:00
Johan T. Halseth
8d2e6deade
sweeper_test: add txOut sweep test
Add tests that inputs with required TXOuts gets aggregated and swept, while
keeping locktimes satisfied.
2020-11-21 10:17:10 +01:00
Johan T. Halseth
616503de3e
sweep: add required TxOuts to sweep tx
Now that inputs might have accompanied outputs to be added to the sweep
tx, we add them to the sweep transaction first, and account for it when
calculating the change amount.
2020-11-20 13:06:54 +01:00
Johan T. Halseth
7f9df26efd
sweeper_test: return unique wallet utxos
We also increase the value of the wallet UTXO, as it is needed when we
want to afford fees for larger transactions.
2020-11-20 13:06:54 +01:00
Johan T. Halseth
0cba47dac0
sweep/tx_input_set: account for required outputs in input set
If inputs require outputs to be added at the same time, this will
change the weight and amount calculations, so we must account for that.

We wait to get the weight estimator for the sweep tx until needed,
such that we can easily choose whether to include a change output or not
in the estimate. This is needed for the case where the second level
transactions can pay for their own fee, so no change output is needed.
2020-11-20 13:06:54 +01:00
Johan T. Halseth
985b7838ab
sweep+input: add RequiredTxOut to inputs
This is needed to sweep second level HTLC transactions that are signed
using SINGLE|ANYONECANPAY, since the input and ouput must be aligned.
2020-11-20 13:06:54 +01:00
Johan T. Halseth
aa8fa9d0cf
sweep: pass dustLimit to CreateSweepTx 2020-11-20 13:06:53 +01:00
Johan T. Halseth
3d209059c1
input+sweep: let weightestimator take known TxOut 2020-11-20 13:06:53 +01:00
Johan T. Halseth
efd6bc9501
sweep+input: add RequiredLockTime to inputs 2020-11-20 13:06:53 +01:00
Johan T. Halseth
fa4fd02cf1
sweep: add mergeClusters 2020-11-20 13:06:53 +01:00
Johan T. Halseth
128087044f
sweeper: define method createInputClusters 2020-11-20 13:06:53 +01:00
Olaoluwa Osuntokun
0e14e0d904
Merge pull request #4768 from halseth/htlcdust-calc
Correct HTLC dust calculation for remote commitment weight
2020-11-19 19:55:02 -08:00
Olaoluwa Osuntokun
39fb53bc94
Merge pull request #4769 from guggero/gh-docker-build
GitHub: add workflow for building tagged docker images
2020-11-19 19:40:55 -08:00
Conner Fromknecht
1b97bcdac1
Merge pull request #4783 from yyforyongyu/autopilot-code-fix
autopilot: fix returned map size in mergeNodeMaps
2020-11-19 11:10:48 -08:00
Johan T. Halseth
ef8a61db99
Merge pull request #4423 from breez/enable-encode-invoice-via-rpc
Let invoice.Encode receive a function which hashes itself the message
2020-11-19 14:44:38 +01:00
Johan T. Halseth
2411168233
Merge pull request #4784 from yyforyongyu/autopilot-fix-typo
trivial: typo fix
2020-11-19 14:40:50 +01:00
yyforyongyu
9336b9b3d4
autopilot: typo fix 2020-11-19 14:34:29 +08:00
yyforyongyu
0ace42649e
autopilot: fix returned map size in mergeNodeMaps 2020-11-19 14:30:11 +08:00
Conner Fromknecht
1efef51268
Merge pull request #4781 from cfromknecht/fix-timeout-build-tags
lntest/timeouts: fix timeout build predicates
2020-11-18 15:57:32 -08:00
Conner Fromknecht
f86c26878a
lntest/timeouts: fix darwin+kvdb_etcd build
Currently trying to run etcd tests on darwin will cause the timeouts to
improperly select timeouts_darwin.go which are stricter than
timeouts_etcd.go. We fix this by always defaulting to timeouts_etcd.go
no matter the platform, and only falling back to timeouts_darwin.go if
the kvdb_etcd tag is not present.
2020-11-18 15:28:39 -08:00
Conner Fromknecht
b70b6d9a6e
lntest/timeouts: remove spaces from build predicates
Otherwise this breaks various conditional compilation targets and the
linter.
2020-11-18 15:16:25 -08:00
Johan T. Halseth
a8b6966017
Merge pull request #4402 from bhandras/etcd_itest
itests: option to run our integration tests on etcd + boltdb (remote/local)
2020-11-18 19:48:03 +01:00
Johan T. Halseth
4587b6dbab
Merge pull request #4772 from halseth/log-levels-global-sub
build/log: support parsing global+subsystem levels
2020-11-18 19:44:12 +01:00
Andras Banki-Horvath
5e19c41cb8
build: extend sample-lnd-conf with db.etcd.embedded 2020-11-18 15:34:46 +01:00
Andras Banki-Horvath
5f3b800630
lint: fix error reported by the linter 2020-11-18 15:34:46 +01:00
Andras Banki-Horvath
efedb5547c
itest: timeouts for itets with etcd 2020-11-18 15:34:45 +01:00
Andras Banki-Horvath
369ae5e372
itest: move all test db files when using both etcd and bbolt
In some tests we moved channeld.db to a temp location in order to
"time travel". This commit extends the existing semantics by moving all
files, including embedded etcd db too besides the channeld.db file.
2020-11-18 15:34:45 +01:00
Andras Banki-Horvath
9138efc2c3
build: extend itest with etcd=1 param which will run itests on etcd 2020-11-18 15:34:44 +01:00
Andras Banki-Horvath
98342433ab
itest: add etcd flag to control if new lnd nodes should run on etcd 2020-11-18 15:34:44 +01:00
Andras Banki-Horvath
511e817624
lncfg+channeldb: add config to be able to run lnd on embedded etcd 2020-11-18 15:34:43 +01:00
Johan T. Halseth
a2f45cb812
config: update debuglevel description + sample conf 2020-11-18 14:19:23 +01:00
Johan T. Halseth
c1d423dc07
build/log: support parsing global+subsystem levels
This makes it possible to specify both a global+subsystem loglevels,
like:
--debuglevel=debug,PEER=info,SRVR=trace
2020-11-18 14:17:53 +01:00
Johan T. Halseth
fcf2e7f687
build/log_test: add tests for parsing log levels 2020-11-18 14:16:23 +01:00
Oliver Gugger
9494ad6fb1
GitHub: add workflow for building tagged docker images
We add a GitHub workflow that is triggered whenever a new version tag is
pushed. It will trigger a docker image build for that version and
automatically push it to the specified repo.
2020-11-17 20:30:35 +01:00
Olaoluwa Osuntokun
17976df658
Merge pull request #4773 from alexbosworth/patch-14
docs: Add mention of support for Neutrino
2020-11-16 17:56:42 -08:00
Olaoluwa Osuntokun
e63f41c936
Merge pull request #4762 from carlaKC/4748-sweeps
multi: update listsweeps to allow sweeps that are not in ListTransactions
2020-11-16 17:55:41 -08:00
Olaoluwa Osuntokun
e4f0f2aa69
Merge pull request #4667 from guggero/auto-compact
channeldb/kvdb/bolt: automatically compact database on startup
2020-11-16 17:50:14 -08:00
Alex Bosworth
3786c82daf
docs: Add mention of support for Neutrino
Neutrino will now work out of the box in LND
2020-11-16 10:28:46 -08:00
Olaoluwa Osuntokun
c0247583cd
Merge pull request #4697 from carlaKC/4481-batchstartandblocks
contractcourt: batch startup reads and block epoch notifications
2020-11-13 16:16:39 -08:00
Olaoluwa Osuntokun
7afb5b4c95
Merge pull request #4751 from Roasbeef/static-key-require
feature: flip static remote key from optional to required
2020-11-13 16:15:39 -08:00
Olaoluwa Osuntokun
219a5f03e0
Merge pull request #4744 from guggero/dns-seed-config
discovery: allow DNS seeds to be overwritten
2020-11-13 16:12:44 -08:00
carla
887ff442db
multi: fix verbose output for listsweeps and check all against wallet
Previously, the verbose output of listsweeps would fail if we did not
find some sweeps in our wallet's listtransactions output. This could be
the case for sweeps that were rbf-ed, so the endpoint would fail. This
commit also updates the listsweeps endpoint to always check against the
wallet, so that we do not return these discarded sweeps that never
confirmed.
2020-11-13 13:59:52 +02:00
Johan T. Halseth
953443e10c
lnwallet/channel: correct dust calculation on incoming HTLC
Similar to the previous commit, we fix a bug resulting in the wrong
commit weight being calculated when an HTLC just above the remote's
duslimit was added from the remote. This was a result of using the
successFee instead of the timeoutFee when checking whether it was dust,
making us consider it dust when it shouldn't have been.
2020-11-13 12:02:03 +01:00
Johan T. Halseth
e0b133297d
lnwallet/channel: correct dust calculation on outgoing HTLC
In this commit we fix a bug resulting in the wrong commit weight being
calculated when an HTLC just below the remote's duslimit was added. This
was a result of using the timeoutFee instead of the successFee when
checking whether it was dust, making us consider it non-dust when it
should have been.
2020-11-13 11:58:52 +01:00
Oliver Gugger
30c2c0addc
make: remove arch darwin-386 that is unsupported by go 1.15
As of go version 1.15.x, the darwin-386 architecture is no longer
supported. Because we use that go version on Travis to assert all
architectures can be built successfully, we have to remove this
architecture from the list.
2020-11-13 10:19:52 +01:00
Oliver Gugger
9bd8784ae8
GitHub: run cross compilation for all architectures
Because we now have conditionally compiled code that depends on the
architecture it is built for, we want to make sure we can build all
architectures that we also release. Since GitHub builds are very fast,
we can easily do this instead of only compiling for certain select
architectures.
2020-11-13 10:19:51 +01:00
Oliver Gugger
32ee527f6b
server+htlcswitch: auto compact sphinx DB too 2020-11-13 10:19:51 +01:00
Oliver Gugger
a8ef4fc158
channeldb: store and evaluate last compaction time 2020-11-13 10:19:51 +01:00
Oliver Gugger
505be0d8bc
channeldb: implement compaction
This commit adds the compaction feature of the bbolt compact to our bolt
backend. This will try to open the DB in read-only mode and create a
compacted copy in a temporary file. Once the compaction was successful,
the temporary file and the old source file are swapped atomically.
2020-11-13 10:19:50 +01:00