Commit Graph

13026 Commits

Author SHA1 Message Date
yyforyongyu
c9843fd206 channeldb+migration: add migration to save the initial balances
This commit adds a migration to patch the newly added fields,
`InitialLocalBalance` and `InitialRemoteBalance` to channel info.
2022-04-20 01:18:12 +08:00
yyforyongyu
8b289e79f5 channeldb+migration: export commonly used methods
This commit exports several commonly used methods that can be used by
later migrations. It also adds a channel commit deserializer.
2022-04-20 01:18:12 +08:00
yyforyongyu
22f8f6ed4a channeldb+lnwallet: save initial balances during channel opening 2022-04-20 01:18:12 +08:00
yyforyongyu
291a8e4eff contractcourt: move breach handling into its own function
This commit refactors the breach handling logic into its own function
so that the related code can be unit tested.
2022-04-20 01:18:12 +08:00
yyforyongyu
9a4589d54e lnwallet: remove unused field PendingHTLCs 2022-04-20 01:18:12 +08:00
yyforyongyu
acde626ac9 lnwallet+htlcswitch: remove the redundant param in OweCommitment
This commit removes the bool param found in OweCommitment, which we
only ever use `true`.
2022-04-20 01:18:12 +08:00
yyforyongyu
fea97699ec contractcourt: remove unused bucket justice-txn
We never writes data to this bucket so it's removed.
2022-04-20 01:18:11 +08:00
yyforyongyu
5f508f9278 channeldb: replace method RevocationLogTail
This commit replaces the method RevocationLogTail which in used in our
unit test with a private method revocationLogTailCommitHeight. The new
method returns the commit height only since that's what's needed in the
test.
2022-04-20 01:18:11 +08:00
yyforyongyu
fcb314bf2c channeldb: add more verbose docs 2022-04-20 01:18:11 +08:00
Olaoluwa Osuntokun
3133154538 Merge pull request #6421 from yyforyongyu/tlv-compress
tlv: add new record type to encode `BigSize`
tlv/v1.0.3
2022-04-19 10:12:05 -07:00
Oliver Gugger
51a7566248 Merge pull request #6354 from guggero/fix-unit-tests
chainview: fix unit test timeout
2022-04-19 13:08:43 +02:00
Oliver Gugger
3f757e56a7 docs: add release notes 2022-04-19 11:13:21 +02:00
Oliver Gugger
1c0b4fd1de chainview: increase connection timeout in test
The unit test sometimes fails with a connection timeout when trying to
connect to the reorg mining node. We attempt to make things more robust
by doubling both the number of retries as well as the retry timeout
itself.
2022-04-19 11:12:50 +02:00
Oliver Gugger
2195c71407 chainview: fix formatting 2022-04-19 11:12:49 +02:00
Oliver Gugger
b08df8437e Merge pull request #6428 from guggero/psbt-1-1-3
mod+docs: bump btcutil/psbt library to v1.1.3
2022-04-19 10:55:25 +02:00
Oliver Gugger
b6e1d2ae41 mod+docs: bump btcutil/psbt library to v1.1.3
Fixes #6386.
Bumps the btcutil/psbt library to the latest version v1.1.3 that fixes
an issue with de-serializing a PSBT that contains an unsigned
transaction with no inputs.
2022-04-19 09:45:38 +02:00
yyforyongyu
4ddb5c586b tlv: add MakeBigSizeRecord to save space
This commit adds a pair of encoder/decoder to take the advantage of the
BigSize format when encoding an uint64 and possibly an uint32.

Often the time an uint64 value is not big enough to fill all the 8
bytes, thus using BigSize can save extra bytes when save it to db. And
for uint32, if we know most of the values do not exceed 65536, we can
also save at least 1 byte using BigSize format.

This commit introduces `MakeBigSizeRecord` that can be used optionally
where db space is a concern.
2022-04-16 12:05:23 +08:00
yyforyongyu
02d17bb81a tlv: update go mod to include require 2022-04-16 12:05:07 +08:00
Olaoluwa Osuntokun
0b20dcc4f5 Merge pull request #6414 from ellemouton/keysendFeatureBit
multi: announce Keysend feature bit
2022-04-15 16:09:04 -07:00
Elle Mouton
c54cc6e841 multi: announce Keysend feature bit
In this commit, we add the keysend feature bit to our NodeAnnouncement
if the accept-keysend option is set.
2022-04-14 14:01:19 +02:00
Olaoluwa Osuntokun
d397e3e680 Merge pull request #6340 from Roasbeef/go-1-18
build: update to Go 1.18
2022-04-13 15:02:26 -07:00
Olaoluwa Osuntokun
440f4d982c Merge pull request #5810 from bottlepay/payment-metadata
routing: send payment metadata
2022-04-13 15:01:56 -07:00
Olaoluwa Osuntokun
cd8a87c0da Merge pull request #6219 from bottlepay/onchain-interceptor
contractcourt: onchain htlc interceptor
2022-04-13 14:58:29 -07:00
Joost Jager
62ae0387ff htlcswitch+invoices: log payment metadata 2022-04-13 22:55:42 +02:00
Joost Jager
9195f29e61 routing+channeldb: send payment metadata from invoice 2022-04-13 22:55:40 +02:00
Joost Jager
135e27ddd3 zpay32: add payment metadata field 2022-04-13 22:55:38 +02:00
Oliver Gugger
044286ae2c Merge pull request #6024 from lightningriders/timepref
routing: add time preference parameter
2022-04-13 22:17:02 +02:00
Joost Jager
ba5abdc090 routing: add time_pref parameter to queryroutes and sendpayment 2022-04-13 20:26:46 +02:00
Joost Jager
269a8e74d3 routing: refactor reliability penalty calculation
Base the calculation on the actual float64 overflow point rather than an
indirect limit on probability.

This is a preparation for an infinite attempt cost.
2022-04-13 20:26:08 +02:00
Olaoluwa Osuntokun
c0d4308a23 Merge pull request #6389 from guggero/p2tr-addr-used
wallet: fix p2tr addresses not being marked as used
2022-04-13 10:32:51 -07:00
Oliver Gugger
f37ebb68ea docs: add release notes 2022-04-13 14:01:59 +02:00
Oliver Gugger
70c01e5bf1 mod: bump btcwallet to p2tr unused addr fix 2022-04-13 14:01:59 +02:00
Joost Jager
721fb4ee88 contractcourt: add onchain interception 2022-04-13 11:31:33 +02:00
Joost Jager
c392e003aa beacon: add witness cache interface 2022-04-13 11:31:31 +02:00
Joost Jager
7265a5e42b beacon: add constructor 2022-04-13 11:31:29 +02:00
Joost Jager
57e08dfa54 htlcswitch: refactor interceptForward
Preparation for adding on-chain interception.
2022-04-13 10:14:42 +02:00
Olaoluwa Osuntokun
2fadc60ef2 docs/release-notes: add note entry for Go 1.18 2022-04-12 16:14:12 -07:00
Olaoluwa Osuntokun
d6b2283279 docs/INSTALL.md: update min Go version to 1.18
In this commit, we update the min Go version to be version 1.18. This
breaks our prior rule of supporting the last two major versions, but
allows us to use the larger features in 1.18 sooner, such as the newly
released type parameters.
2022-04-12 16:14:07 -07:00
Olaoluwa Osuntokun
a90dfff9a5 build: update to Go 1.18 2022-04-12 16:14:04 -07:00
Oliver Gugger
4bdc3c9a5b Merge pull request #6407 from guggero/multi-fixes
signrpc: fix panic with missing UTXO information when signing Taproot output
2022-04-12 19:43:51 +02:00
Oliver Gugger
9281e7a692 docs: add release notes 2022-04-12 19:30:13 +02:00
Oliver Gugger
1e72d6737d lnrpc+itest: fix panic with missing UTXO info
Fixes #6396.
This commit fixes a panic that occurred when trying to sign for a
Taproot output without specifying the full UTXO information for each
input. Instead of panicking an error is now returned.
2022-04-12 19:30:12 +02:00
Oliver Gugger
2a069b8b4e rpcserver: copy success variable of channel close update
Seems this was forgotten in a refactor a while back.
2022-04-12 19:30:11 +02:00
Olaoluwa Osuntokun
dabb74fa3c Merge pull request #6352 from bhandras/stuck-payment
routing: fail in-flight attempts cleanly on terminal payment failure
2022-04-12 12:52:22 -04:00
Oliver Gugger
1ad667908e Merge pull request #6393 from hitanshu-mehta/fix-typo
Docs: fix typos in sample-lnd.conf and chanfitness/chanevent.go
2022-04-12 18:34:44 +02:00
Andras Banki-Horvath
70ac0070fa docs: update release notes 0.15.0 2022-04-12 11:56:34 +02:00
Andras Banki-Horvath
3d5f33a0cf routing: fail in-flight attempts cleanly on terminal payment failure
In case of a multi shard payment with more than one in-flight shards,
one shard quitting with a terminal failure will stop the payment
lifecycle and close the `shardHandler`'s `quit` channel. In the
`collectResult` function we're waiting for the `Switch` to
asynchronously return a result for each shard. This may have been
interrupted by the aformentioned `quit` channel's closing skipping
attempt failure (or success) notification towards the control tower
and therefore skipping proper settle/fail info fill in the channel db.
Since payments have a composite state of a global failure reason and
settle/fail info for all attempts, any attempt with an unfilled
settle/fail info keeps a payment in-flight even if the payment itself
isn't in-flight anymore.
2022-04-12 11:56:33 +02:00
Oliver Gugger
8047f2388e Merge pull request #6212 from bottlepay/interceptor-check
htlcswitch: interceptor expiry check
2022-04-12 09:55:55 +02:00
Joost Jager
13dff2fb3e htlcswitch: interceptor expiry check 2022-04-12 08:27:06 +02:00
Joost Jager
bae0b6bdf9 htlcswitch/test: isolate test packets
Decouple the tests somewhat and fix a bug along the way where the test
passed because of a left-over package from a prior test.
2022-04-12 08:27:04 +02:00