Commit Graph
1049 Commits
Author SHA1 Message Date
bitromortac dd5273c88c multi: rename due to required maxHTLC bit
We rename `ChanUpdateOptionMaxHtlc` to `ChanUpdateRequiredMaxHtlc`
as with the latest changes it is now required.

Similarly, rename `validateOptionalFields` to
`ValidateChannelUpdateFields`, export it to use it in a later commit.
2023-02-21 11:10:39 +01:00
Oliver Gugger 38dc67e1ef Merge pull request #6815 from bitromortac/2205-bimodal
pathfinding: probability for bimodal distribution
2023-02-15 14:19:32 +01:00
bitromortac 2ccdfb1151 lncli+routerrpc: adapt mc api to dynamic estimator
The active probability estimator can be switched dynamically using the
`Set/GetMissionControl` API, maintaining backward compatibility. The
lncli commands `setmccfg` and `getmccfg` are updated around this
functionality. Note that deprecated configuration parameters were
removed from the commands.
2023-02-14 13:34:25 +01:00
bitromortac 58d5131e31 lnd+routerrpc: configure server with new estimator
We add new lnd.conf configuration options for both probability
estimators. Note that this is a breaking change for the existing apriori
parameters.
2023-02-14 13:34:25 +01:00
bitromortac 16986ee5c7 lnd+routing+rpc: switch mc to (external) estimator
We use a more general `Estimator` interface for probability estimation
in missioncontrol.

The estimator is created outside of `NewMissionControl`, passed in as a
`MissionControlConfig` field, to facilitate usage of externally supplied
estimators.
2023-02-14 13:34:25 +01:00
Oliver Gugger c79b0799bf Merge pull request #7402 from bottlepay/final-resolution-info
rpcserver: expose store final htlc resolutions flag on info call
2023-02-13 23:12:32 +01:00
Joost Jager 784c0631f3 rpcserver: expose store final htlc resolutions flag on info call
The storage of final htlc resolutions is a safety-critical feature. By
exposing it through the GetInfo call, connected applications can
ensure that the feature is turned on and avoid relying on the assumption
that lnd was configured correctly.
2023-02-13 11:53:27 +01:00
adiabat 17f7b9f322 routerrpc: Check for nil IncomingCircuitKey
The grpc stream.Recv() will decode an ForwardHtlcInterceptResponse
without an IncomingCircuit, which will leave that pointer nil,
causing a nil pointer dereferece when components of in.IncomingCircuitKey
are used in the resolveFromClient() function.

This commit checks for the nil pointer and returns an error before
the rest of the parsing.
2023-02-10 13:40:40 -05:00
Torakushi cdb015223b walletrpc+lnwallet: possibility to define an address type for changes in FundPsbt
By default, P2TR addresses are used for changes. However, some users
might encounter some problems with this change. We add the possibility
to define a custom address type in FundPsbt for default/imported accounts
(only P2TR for now). If no address type is specified for these accounts,
we will use P2WKH by default.
2023-02-08 12:35:44 +01:00
bitromortac b0a998af8d routing: rename apriori estimator
* we rename the current probability estimator to be the "apriori"
  probability estimator to distinguish from a different implementation
  later
* the AprioriEstimator is exported to later be able to type switch
* getLocalPairProbability -> LocalPairProbabiltiy (later part of an
  exported interface)
* getPairProbability -> getPairProbabiltiy (later part of an exported
  interface)
2023-02-07 16:18:38 +01:00
Oliver Gugger 13252aec1d lnrpc+rpcwallet: add version to MuSig2 RPC calls 2023-02-06 10:50:29 +01:00
Oliver Gugger ce5fa2e043 multi: add version to MuSig2 API, bump btcd/btcec to v2.3.2
With this commit we bump the github.com/btcd/btcec/v2 library to v2.3.2
which implements the MuSig2 BIP version v1.0.0rc2. With this the
github.com/btcsuite/btcd/btcec/v2/schnorr/musig2 package becomes
v1.0.0rc2 and the github.com/lightningnetwork/lnd/internal/musig2v040
stays at the old v0.4.0 version.
2023-02-03 18:30:10 +01:00
Oliver Gugger cb9f2d0398 input+lnrpc: make key sorting optional in input pkg
To allow us to properly test all test vectors, we can't default to true
on key sorting. Instead we add a parameter to the input package and move
the default value to the RPC server.
2023-02-03 18:30:09 +01:00
Oliver Gugger 13789f5d95 input+lnwallet: move some MuSig2 calls to input pkg
As a preparation for making it possible to version switch calls to the
MuSig2 API, we move some of the calls to the input package where in a
future commit we'll call the corresponding code in the correct package.
2023-02-03 18:30:09 +01:00
Elle Mouton 2fd4f3f180 go.mod+lnrpc+github: point to latest kvdb changes
Use kvdb package v1.4.1. This update also forced the protobuf version to
be bumped which required `make rpc` to be run to update the generated
files. This also required a bump in the github pinned dependencies
config for the grpc and protobuf libs.
2023-01-25 14:03:00 +02:00
ziggie 7b68289a7a walletrpc: add sign/verify methods
Adding the grpc functionality to sign and verify messages with
single addresses
2023-01-24 09:22:05 +01:00
positiveblue 8563e1f409 channeldb/invoices: add IsAMP and IsKeysend helpers
The only way to know if an invoice is AMP, Keysend, etc is to look at
its shape/characteristics. This commit adds a couple of helper functions
to encapsulate the logic of these checks.

If all these types cannot intersect: an invoice cannot be AMP and
Keysend or Keysend and Bolt12, etc it could be useful to add an extra
field to store this information instead of relying on checking how the
invoice looks like.
2023-01-20 03:43:39 -08:00
Olaoluwa Osuntokun ea0eb2ce72 Merge pull request #7215 from positiveblue/invoices-channeldb-dep
Invoices: invert package dependency with `channeldb`
2023-01-17 10:13:22 -08:00
Oliver Gugger 04447927ea Merge pull request #7055 from ellemouton/wtclientMigrations
watchtower: reduce AckedUpdate storage footprint
2023-01-17 10:37:52 +01:00
positiveblue 5ff5225245 multi: break invoice depenency on channeldb
Now that we have the new package `lnd/channeldb/models` we can invert the
depenency between `channeldb` and `invoices`.

- Move all the invoice related types and errors to the
`invoices` package.

- Ensure that all the packages dealing with invoices use the types and
  interfaces defined in the `invoices` package.

- Implement the InvoiceDB interface (defined in `lnd/invoices`) in
  channeldb.

- Add new mock for InterfaceDB.

- `InvoiceRegistery` tests are now in its own subpacakge (they need to
  import both invoices & channeldb). This is temporary until we can
  decouple them.
2023-01-16 07:31:09 -08:00
positiveblue 383cb40f8d multi: create channeldb/models package
Add a new subpackage to `lnd/channeldb` to hold some of the types that
are used in the package itself and in other packages that should not
depend on `channeldb`.
2023-01-16 07:14:55 -08:00
Oliver Gugger 3dd9e04b8b Merge pull request #7306 from YusukeShimizu/docs-invoice-default-expiry
Docs invoice default expiry
2023-01-12 10:29:07 +01:00
bruwbird 71f2615190 lnrpc: update invoice request expiry comment 2023-01-12 09:17:34 +09:00
bitromortac 045e5cf307 routerrpc: update QueryProbability documentation
Changes the docstring of QueryProbability to reflect changes that were
introduced in #6857.
2023-01-11 16:47:54 +01:00
Elle Mouton c3a2368f46 multi: migrate towers to use RangeIndex for AckedUpdates
In this commit, a migration is done that takes all the AckedUpdates of
all sessions and stores them in the RangeIndex pattern instead and
deletes the session's old AckedUpdates bucket. All the logic in the code
is also updates in order to write and read from this new structure.
2023-01-11 13:59:03 +02:00
Carla Kirk-Cohen 1cb08e42ef lnrpc: update custom message API to explain ability to override 2023-01-05 12:05:06 -05:00
bitromortac 2d7fda2a41 routerrpc: mark QueryProbability deprecated
We deprecate `QueryProbability`, as it displays the same information as
`QueryMissionControl` less the probability. `QueryRoutes` still contains
the total probability of a route.
2022-12-12 13:23:31 +01:00
bitromortac 454c115b6e routing+routerrpc: add capacity in rpcs
FetchPairCapacity is used by the following endpoints to introduce the
capacity for probability calculations:

* QueryProbability
* QueryRoutes
2022-12-12 13:22:29 +01:00
bitromortac 66ffc64776 router: return probability from findPath
The returned probability can then be used in QueryRoutes to not having
to reconstruct the probability.
2022-12-12 13:22:29 +01:00
bitromortac 516e3a8cca routing: use capacity in pathfinding
Extends the pathfinder with a capacity argument for later usage.

In tests, the inserted testCapacity has no effect, but will be used
later to estimate reduced probabilities from it.
2022-12-12 13:22:28 +01:00
ffranr 561bf82985 chainrpc: add chainkit RPC service
New endpoints: GetBlock, GetBestBlock, and GetBlockHash.
2022-12-07 14:50:14 +00:00
ffranr 308e7ce72d lnrpc: identify *.proto files as separate files within a given directory 2022-12-06 12:52:31 +00:00
ffranr 03f9549f97 chainrpc: generalise chain notifier RPC server name 2022-12-06 12:52:25 +00:00
yyforyongyu 7533de4a8f proto: fix typo [skip ci] 2022-12-06 14:04:42 +08:00
yyforyongyu b7c829f792 proto: add creation data filters in ListPaymentsRequest 2022-12-05 20:04:42 +08:00
yyforyongyu cfa2cb01d0 proto: add creation date filters in ListInvoiceRequest 2022-12-05 20:03:55 +08:00
Tommy Volk 372333fd2b lnrpc: clarify proto documentation for Invoice 2022-12-05 20:01:27 +08:00
Oliver Gugger e7170ef819 Merge pull request #7135 from st4rgut24/revise-addinvoice-help-text
revise help text for addinvoice lncli command
2022-11-18 18:43:58 +01:00
alpeb-btc eefe1c816e lnrpc+cmd: clarify docs about addinvoice no-amount hop hints
Add additional comment to `lnclic addinvoice`'s `--private` flag warning
about including a large number of private channel hints when using zero
ammounts.

Also added a comment to the `private` field in the `Invoice` proto
message.
2022-11-12 05:01:10 -05:00
alpeb-btc 0cae501009 lnrpc: provide hop hints when adding an invoice with no amount
With this change we allow adding hop hints when adding an invoice, even
if its amount is zero.

A couple of new unit test case have been added, and the
`testInvoiceRoutingHints` itest was expanded to account for this
scenario.
2022-11-12 05:01:10 -05:00
alpeb-btc e68ae33c9a lnrpc: refactor populateHopHintsTestCases in addinvoice_test.go
Extract into a separate function the steps to set up the two-channel
mock, to be reused in other cases.
2022-11-12 05:01:09 -05:00
alpeb-btc 143111e368 lnrpc: fix typos in addinvoice_test.go 2022-11-12 05:01:09 -05:00
st4rgut24 8d6d1564c0 cli: revise help text for addinvoice lncli command [skip ci] 2022-11-11 14:31:04 -08:00
habibitcoin 0b1e881d18 scripted-diff: replace ⛰ emoji with $ [skip ci]
-BEGIN VERIFY SCRIPT-
sed -i 's/⛰/$/g' $(git grep -l '⛰')
-END VERIFY SCRIPT-
2022-10-28 12:06:49 -04:00
Joost Jager 3a89a84744 rpcserver: add LookupHtlc call 2022-10-27 16:43:09 +02:00
Joost Jager 511fb00777 htlcswitch: add final htlc event to notifier 2022-10-27 16:42:36 +02:00
Joost Jager b85cda2a1d routerrpc: add htlc notifier subscribed event 2022-10-27 16:42:35 +02:00
Slyghtning 46b8de35ac lnrpc+lncli: rename skip_peer_alias_lookup to reflect opt-in behavior 2022-10-27 07:11:19 -04:00
Joost Jager 6e073cb213 rpcserver: expose graph tlv data 2022-10-25 18:17:35 +02:00
Oliver Gugger 8c66353e4c Merge pull request #7001 from hieblmi/fwdinghistory-alias-info
lncli: incoming and outgoing peer alias in `fwdinghistory`
2022-10-20 17:16:47 +02:00