Commit graph

13609 commits

Author SHA1 Message Date
Elle Mouton
cc2fbd18b1
rpcperms: re-init mw lookup map after removal of one
After removing a registered middlware from the slice, we need to update
the index lookup map with the updated index for each middleware.
2022-07-15 14:25:54 +02:00
yyforyongyu
edf647222c
docs: add release note for skip_temp_err 2022-07-15 19:03:38 +08:00
yyforyongyu
07e9adfd8c
routerrpc+cmd: use skip_temp_err when sending to route 2022-07-15 19:03:12 +08:00
yyforyongyu
46ca28fe22
routerrpc: add new field skip_temp_err in SendToRouteRequest 2022-07-15 19:03:12 +08:00
yyforyongyu
39ac4ca92c
routing: fix unit test for SendToRoute
This commit removes the old multi shards test for `SendToRoute` as the
method doesn't support sending MPP. The original test passed due to a
flawed mocking method, where the mockers bypassed the public interfaces
to maintain their internal state, which caused a non-exsiting situation
that a temp error wouldn't fail the payment. A new unit test is added to
demonstrate the actual case.
2022-07-15 19:03:12 +08:00
yyforyongyu
d9915723dd
routing: add unit test for SendToRouteSkipTempErr 2022-07-15 19:03:12 +08:00
yyforyongyu
e99c63c804
routing: add SendToRouteSkipTempErr to skip temp error failure
This commit adds a new method `SendToRouteSkipTempErr` that skips
failing the payment unless a terminal error occurred. This is
accomplished by demoting the original `SendToRoute` to a private method
and creating two new methods on top of it to minimize code change.
2022-07-15 19:03:12 +08:00
Carsten Otto
c6fffeb1c2
router: fix typos 2022-07-15 19:03:12 +08:00
Oliver Gugger
e6b25309bd
Merge pull request #6731 from guggero/linter-upgrade
tools: upgrade linter version to v1.46.2
2022-07-15 11:25:25 +02:00
Oliver Gugger
af97b8f877
Merge pull request #6722 from guggero/sign-schnorr-tweaked
signrpc: add Schnorr signatures to sign and verify message
2022-07-14 14:51:47 +02:00
Oliver Gugger
1e02d8910f
Merge pull request #6718 from hieblmi/chan-point-for-updatechanstatus
lncli: chan_point option for abandonchannel
2022-07-14 10:32:40 +02:00
ErikEk
98abaf266c
doc: release notes 2022-07-14 10:29:29 +02:00
ErikEk
14453ea7db
itest: cover sign and verify msg 2022-07-14 10:29:29 +02:00
ErikEk
b5af0ce327
signrpc: add schnorr sig to sign and validate msg 2022-07-14 10:29:29 +02:00
Oliver Gugger
9d568cc119
Merge pull request #6630 from guggero/rpc-middleware-replace-request
RPC middleware: allow replacing request messages and response errors too
2022-07-14 10:24:19 +02:00
Oliver Gugger
f649c6fd47
docs: update release notes 2022-07-14 09:36:50 +02:00
Oliver Gugger
9774db614b
itest: add integration test for error interception 2022-07-14 09:36:50 +02:00
Oliver Gugger
e1efb39177
itest: add integration test for request replacement 2022-07-14 09:36:50 +02:00
Oliver Gugger
b1d8767a0c
rpcperms: intercept errors too 2022-07-14 09:36:50 +02:00
Oliver Gugger
502542da60
lnrpc: add is_error to intercept message 2022-07-14 09:36:48 +02:00
Oliver Gugger
d604055ccc
lnrpc: describe request replacement in API docs
This commit updates the comments in the proto file to mention the new
behavior of also being able to replace request messages.
2022-07-14 09:36:36 +02:00
Oliver Gugger
86c64abfe6
rpcperms: allow requests to be replaced as well
With this commit we allow a replacement message to be sent by the
middleware for a request type as well as the response type. This allows
an incoming RPC request to be modified before it is forwarded to lnd.
2022-07-14 09:36:36 +02:00
Oliver Gugger
dc32ca61f8
rpcperms: add replaceProtoMsg
Because of the way the gRPC Receive() method is designed, we need a way
to replace a proto message with the content of another one without
replacing the original instance itself (e.g. overwrite all values in the
existing struct instance).
2022-07-14 09:36:36 +02:00
Oliver Gugger
66258ee7b5
lnrpc: enable RPC middleware in REST WebSockets
If we don't flag the /v1/middleware call as request streaming, it can't
be used properly with REST WebSockets because the proxy would close the
connection after the first request message.
2022-07-14 09:36:36 +02:00
Oliver Gugger
b0d85c41a5
docs: add release notes 2022-07-14 09:33:50 +02:00
Oliver Gugger
850330a34e
multi: fix linter issues
Fix some issues found by the new nonamedreturn rule and rename some
nolint comment to the new rule name.
2022-07-14 09:30:53 +02:00
Oliver Gugger
da75619245
golangci: disable new exhauststruct rule
A new linter rule was added in the latest version that wants all fields
in a struct to be declared, even if the default value is used. Because
that would mean a large diff for us, we disable the rule for now.
2022-07-14 09:29:34 +02:00
Oliver Gugger
7d7ab4da3a
tools: upgrade linter to latest version 2022-07-14 09:29:16 +02:00
Olaoluwa Osuntokun
af47943f52
Merge pull request #6714 from guggero/remote-signer-fix
lnwallet: don't create BIP044 key scope by default
2022-07-13 17:17:56 -07:00
Slyghtning
2f5192012e lncli: chan_point option for abandonchannel [skip ci] 2022-07-13 10:20:55 -04:00
Oliver Gugger
47822fada6
Merge pull request #6724 from ellemouton/ignorepair
lncli: add ignore_pair flag to queryroutes
2022-07-13 13:51:49 +02:00
Elle Mouton
ae6161d847
lncli: add ignore_pair flag to queryroutes 2022-07-13 10:00:50 +02:00
yyforyongyu
d391514815
docs: add release note for optional migration 2022-07-12 21:01:15 +08:00
yyforyongyu
ac6e1a836c
channeldb: skip dry run mode for optional migrations 2022-07-12 21:01:15 +08:00
yyforyongyu
b391503ddf
migration30: validate migration results before deleting old buckets
This commit adds a new method `validateMigration` to be used prior to
the deletion of the old buckets to be extraly cautious.
2022-07-12 21:01:12 +08:00
yyforyongyu
78a73f9761
migration30: cover the case where v0.15.0 is active
This commit changes how we locate the next migration height by including
the scenario where `lnd@v0.15.0` is active. In the new version, we will
see a mixed of new and old logs under the same open channel bucket.
Hence, we need to alter how we locate the next un-migrated height.
2022-07-12 21:01:12 +08:00
yyforyongyu
87f58a274b
multi: add the flag prune-revocation to perform the optional migration 2022-07-12 21:01:11 +08:00
yyforyongyu
afb2f72ce2
channeldb: add optional meta and migration30
This commit enables the db to run optional migrations that are specified
by config flags. To achieve this, an optional meta is introduced to
manage the optional migrations. We distinguish the two types of
migrations here so it's easier to manage them for the concern a future
migration can cause trouble for us to determine the db version if we
don't.
2022-07-12 21:01:11 +08:00
yyforyongyu
1832a93d19
migration30: add benchmark test 2022-07-12 21:01:11 +08:00
yyforyongyu
5316fcd6c9
migration30+migtest: add unit tests for migration 2022-07-12 21:01:11 +08:00
yyforyongyu
61bff6086c
migration30: add migration to convert old revocation logs
This commit adds the migration that's used to convert the old revocation
logs into the new format. The migration is fault-tolerant, meaning the
process can be interrupted and the migration will pick up what's left
when running again. We also cap how many records to be processed in each
db transaction to prevent OOM.
2022-07-12 21:01:08 +08:00
yyforyongyu
2a06145137
migration30: add unit tests for iterator 2022-07-12 20:51:48 +08:00
yyforyongyu
75dbbb55ad
migration30: add supporting functions to help with unit tests
This commit adds supporting functions that will be used in the unit
test. The testing data are also added as hard-coded. We choose to copy
the most of the testing data from our itest results such that a) they
are "real" data that can be used to calculate scripts and b) we preserve
the result generated by the current code so a future change won't affect
our test.
2022-07-12 20:51:48 +08:00
yyforyongyu
ebbdf78d52
migration30: add iterator to assist migration
This commit adds several utility functions to assist the migration. In
particular, an updateLocator is added to gives us the next un-migration
position in our buckets. This locator helps us to continue the job
in case of an interrupted migration. It also serves as an indicator on
whether the migration is finished or not.
2022-07-12 20:51:45 +08:00
Oliver Gugger
d365babe25
docs: add release notes 2022-07-08 16:08:22 +02:00
Oliver Gugger
989648b7ec
itest: fix timeout in sign_psbt test 2022-07-08 16:08:21 +02:00
Oliver Gugger
9fd9234d86
lnwallet: don't create BIP044 key scope by default
With a change in #6379 we made sure that all default scopes are added to
the the wallet. Unfortunately this included the BIP044 key scope that
our wallet doesn't really use. This breaks the remote signing setup
because we don't export the account of the BIP044 scope and therefore
run into an issue on the watch-only side when attempting to create the
wallet.
2022-07-08 14:32:03 +02:00
Oliver Gugger
6980a18ab1
Merge pull request #6712 from Roasbeef/itest-keep-failed-payments
lntest: keep all failed payments by default for HarnessNode
2022-07-08 14:31:37 +02:00
Oliver Gugger
713c996d20
Merge pull request #6709 from ellemouton/guaranteeRPCInterceptorOrder
rpcperms: guarantee execution order of interceptors
2022-07-08 12:27:08 +02:00
yyforyongyu
674b0ec5fb
migration30: add related revocation log and lnwallet code
This commit adds relevant code from the revocation_log.go and the
package lnwallet. The code is needed to migrate the data, and we choose
to copy the code instead of importing to preserve the version such that
a future change won't affect current migration. An alternative would be
tagging each of the packages imported.
2022-07-08 13:17:57 +08:00