Commit Graph

11424 Commits

Author SHA1 Message Date
Conner Fromknecht
f8d201a605
channeldb/invoice: only allow pay-addr lookup w/ no query hash
Without this check, it's possible to send a probe HTLC w/ a valid
payment address but invalid payment hash that gets settled. Because
there was no assertion that the HTLC's payment hash matches the
invoice, the link would fail when it receives an invalid preimage for
the HTLC on its commitment.
2021-04-13 12:18:42 -07:00
Conner Fromknecht
791a82878d
Merge pull request #5208 from carlaKC/makefile-acc
makefile: bump goacc commit
2021-04-13 11:57:14 -07:00
carla
a80a6f0453
Makefile: bump goacc commit 2021-04-13 15:39:03 +02:00
Roei Erez
65ab3dbfc8 server: better way to clean chainControl resources
In this commit the location of where chain control services
are stopped is shifted to be closer to the point they are started.
Stopping of two services: "wallet" and "feeEstimator" that are started
inside the "newChainControlFromConfig" was shifted from server.go to
the cleanup function.

In addition the chainView.Stop was also removed from the server.Stop as
it is already handled by the router, where it is being started.
2021-04-13 13:45:28 +03:00
Roei Erez
becae748de server: stop sub systems in case of server failed to start.
In this commit every succesfull started sub system is tracked
and in case of a failure to complete the Start function all
these sub systems are stopped using a generic cleanup function.
2021-04-13 13:45:28 +03:00
Roei Erez
3223df74e5 channelnotifier+discover+invoices: return error in Stop functions
In order to be consistent with other sub systems an error is now
returned from the Stop functions.
This also allows writing a generic cleanup mechanism to stop all
sub systems in case of a failure.
2021-04-13 13:26:01 +03:00
Bjarne Magnussen
6ab625d69b
chanfunding: factor out sanity check for change that is dust 2021-04-13 11:37:20 +02:00
Bjarne Magnussen
59c40ec8b4
chanfunding: fee estimation based on change output in CoinSelect
Add a dust-limit to `CoinSelect` and let the fee estimation consider if a change output is needed or not, assuring that if the change is below the dust-limit it will go towards the fee instead.
2021-04-13 11:37:12 +02:00
yyforyongyu
37aa49c7aa
routing: fix pathfind edge features being nil 2021-04-13 15:53:18 +08:00
Bjarne Magnussen
235e73205d
chanfunding: refactor fee estimate calculation 2021-04-12 14:39:38 +02:00
Martin Habovštiak
16027b0151
Better document the nature of accept-keysend
This explains the purpose of `accept-keysend` and its planned deprecation in detail.

Fixes #5190
2021-04-10 10:41:18 +02:00
Conner Fromknecht
213b264e4c
Merge pull request #5187 from bottlepay/config-commit-time
config: add commit time parameter
2021-04-09 16:44:40 -07:00
Wilmer Paulino
2f1f616c65
lntest: use validatechannels config option for itests 2021-04-09 15:47:04 -07:00
Pierre Rochard
99cba51849 rpcserver+lnrpc: make graph node addresses consistent
This commit adds a []*lnrpc.NodeAddress typed node_addresses field
on the NodeUpdate message of SubscribeChannelGraph to mirror the
addresses field in the LightningNode message of DescribeGraph.

Fixes https://github.com/lightningnetwork/lnd/issues/4084
2021-04-09 11:29:22 -05:00
Joost Jager
ffd346e2e1
config: add channel commit batch size parameter 2021-04-09 15:10:43 +02:00
Joost Jager
a181d26287
config: add channel commit interval parameter 2021-04-09 15:10:42 +02:00
Olaoluwa Osuntokun
c27e9ab953
build+lncfg: support pruned bitcoind backends (#5154)
* build: update btcwallet dependency introducing pruned bitcoind support

This is achieved by some recent work within the BitcoindClient enabling
it to retrieve pruned blocks from its server's peers.

* lncfg: add new PrunedNodeMaxPeers config option/flag
2021-04-08 16:35:07 -07:00
Johan T. Halseth
cd87fe89eb
Merge pull request #5181 from yyforyongyu/refactor-itest
itest: move funding tests into one file
2021-04-08 09:53:29 +02:00
Olaoluwa Osuntokun
c998264578
Merge pull request #5108 from cfromknecht/sendtoroute-amp
channeldb+invoices: add spontaneous AMP receiving + sending via SendToRoute
2021-04-07 16:37:23 -07:00
Conner Fromknecht
730b718208
lntest: add AMP itest 2021-04-07 12:09:47 -07:00
Conner Fromknecht
888af51ab4
lntest: make buildRoute method on mppTestContext
This will be reused by the amp itest.
2021-04-07 12:09:47 -07:00
Conner Fromknecht
352ce10658
lnrpc: add UnmarshalAMP decoding 2021-04-07 12:09:47 -07:00
Conner Fromknecht
00581efec6
lnrpc: add AMPRecord to Hop 2021-04-07 12:09:43 -07:00
Conner Fromknecht
cfa9e954c7
channeldb/invoice: allow creating AMP invoices w/o preiamge 2021-04-07 12:08:35 -07:00
Conner Fromknecht
ea934e1be9
invoices: add TestSpontaneousAmpPayment
Adds a set of test cases that exercise the spontaneous AMP payment flow
with valid and invalid reconstructions, as well as with single and
multiple HTLCs. This also asserts that spontaneous AMP is gated behind
the existing AcceptKeysend flag.
2021-04-07 12:08:35 -07:00
Conner Fromknecht
90a255078d
invoices: reconstruct AMP child preimages 2021-04-07 12:08:35 -07:00
Conner Fromknecht
2a49b59f4f
channeldb/invoices: rigorously test updateHtlc for MPP/AMP scenarios 2021-04-07 12:08:35 -07:00
Conner Fromknecht
0b5be8576e
channeldb/invoice: make Copy() a member of InvoiceHTLC 2021-04-07 12:08:35 -07:00
Conner Fromknecht
6780f74c87
channeldb/invoices: set AMP HTLC preimages when settling invoice 2021-04-07 12:08:35 -07:00
Conner Fromknecht
24d283e615
channeldb/invoice_test: only set htlc-level preimage on accept 2021-04-07 12:08:34 -07:00
Conner Fromknecht
88b72ab398
invoices: add processAMP 2021-04-07 12:08:34 -07:00
Conner Fromknecht
3fb70dd936
invoices: add checkSettleResolution and checkFailResolution
Also refactor existing unit tests to use them.
2021-04-07 12:08:34 -07:00
Conner Fromknecht
7e2f5a184b
channeldb: validate feature dependencies when adding invoice 2021-04-07 12:08:34 -07:00
Conner Fromknecht
7bed359296
channeldb: refactor InvoiceRef.String() with all optional fields 2021-04-07 12:08:34 -07:00
Conner Fromknecht
174d577524
channeldb: make payhash on InvoiceRef optional
Currently we support queries by payHash or payHash+payAddr. For handling
of AMP HTLCs, we only need to support querying by payAddr.
2021-04-07 12:08:34 -07:00
Conner Fromknecht
be6698447e
channeldb/invoice: add InvoiceRefByAddr 2021-04-07 12:08:34 -07:00
Conner Fromknecht
438b03afa4
features: define temporary AMP feature bits 30/31 2021-04-07 12:08:34 -07:00
Conner Fromknecht
c2729cbbbd
htlcswitch/hop: parse and validate AMP records 2021-04-07 12:08:33 -07:00
Conner Fromknecht
135a0a9f7f
htlcswitch/hop: make unknown required type const
Currently we use the AMP record type, this allows us to change it easily
as we add new known records. We also bump this to 0x0c instead of 0x0a.
2021-04-07 12:08:33 -07:00
Conner Fromknecht
82b4f11292
record/amp: use switch from 10 -> 14 for AMP TLV type
This is to not conflict with trampoline BOLT.
2021-04-07 12:08:33 -07:00
Conner Fromknecht
8fe4de88c1
record: convert child_index from uint16 to uint32 2021-04-07 12:08:29 -07:00
Johan T. Halseth
46c9140ac0
Merge pull request #5180 from GameXG/master2
lnd: fix #5179 panic: runtime error: invalid memory address or nil po…
2021-04-07 09:10:22 +02:00
GameXG
f980bc38f1 fix #5179 extractPaymentIntent null pointer
payIntent.paymentAddr has not been initialized.
2021-04-07 10:41:31 +08:00
Wilmer Paulino
56c536583f
lncfg: add new PrunedNodeMaxPeers config option/flag 2021-04-06 14:55:19 -07:00
Wilmer Paulino
82fe5d9bba
build: update btcwallet dependency introducing pruned bitcoind support
This is achieved by some recent work within the BitcoindClient enabling
it to retrieve pruned blocks from its server's peers.
2021-04-06 14:55:14 -07:00
yyforyongyu
1be7331c4f
itest: move funding tests into one file 2021-04-07 02:40:06 +08:00
Hampus Sjöberg
af99f70e48 mobile: re-enitialize listeners with RecreateListeners 2021-04-06 15:34:26 +02:00
Johan T. Halseth
d1c7059f14
Merge pull request #5178 from halseth/mobile-docker-prefix
make: pass mobile subserver prefix to docker when generating mobile RPC
2021-04-06 14:54:11 +02:00
Johan T. Halseth
173342a463
Merge pull request #5010 from halseth/walletunlocker-unify-mobile
[mobile] Allow state API on mobile, simplify callback mechanism
2021-04-06 13:35:03 +02:00
Johan T. Halseth
2868b22083
make: pass mobile subserver prefix to docker when generating mobile RPC 2021-04-06 12:52:27 +02:00