Commit Graph

28 Commits

Author SHA1 Message Date
c2516d9352 Merge pull request #4286 from guggero/remove-global-cfg
multi: remove global cfg variable
2020-05-18 19:45:43 -07:00
b195d39ad7 rpc: use existing rpc logger for wtclientrpc
The logger string used to identify the wtclient and wtclientrpc loggers
was the same, leading to being unable to modify the log level of the
wtclient logger as it would be overwritten with the wtclientrpc's one.
To simplify things, we decide to use the existing RPC logger for
wtclientrpc.
2020-05-14 13:35:03 -07:00
50e86f88fe rpcserver+subrpcserver: don't use global cfg 2020-05-14 16:18:02 +02:00
85d5cdfbfd multi: move global registeredChains to cfg 2020-05-14 14:47:35 +02:00
363caa441a rpc: allow wumbo invoices
In this commit, we remove the restriction surrounding the largest
invoices that we'll allow a user to create. After #3967 has landed,
users will be able to send in _aggregate_ a payment larger than the
current max HTLC size limit in the network. As a result, we can just
treat that value as the system's MTU, and allow users to request
payments it multiples of that MTU value.

A follow up to this PR at a later time will also allow wumbo _channels_.
However, that requires us to tweak the way we scale CSV values, as post
wumbo, there is no true channel size limit, only the
_local_ limit of a given node. We also need to implement a way for nodes
to signal to other nodes their accepted max channel size.
2020-04-09 19:02:08 -07:00
767c4f2298 routerrpc: remove reflection-based initialization 2020-03-31 21:41:24 +02:00
338175534e Merge pull request #3812 from guggero/sign-custom
signrpc: sign and verify messages with custom key
2019-12-11 18:51:55 -08:00
1367187454 multi: set invoice feature bits using feature manager 2019-12-10 13:09:52 -08:00
d47f67d260 signrpc+subserver: add key chain to signer 2019-12-10 09:48:13 +01:00
2cc5891c8c lnrpc/walletrpc: use current height as height hint for cpfp
In this commit, we address an issue that would cause us to scan from the
genesis block for the spend of an output that we wish to use to raise
the fee of a transaction through CPFP. This was due to setting a 0
height hint when constructing the input required by the sweeper and was
discovered due to the recently added validation checks at the chain
notifier level. We'll now use the current height as the height hint
instead as the sweeper will end up creating a new transaction that
spends the input.
2019-08-22 13:49:42 -07:00
8f010abac5 multi: add watchtower client RPC subserver 2019-07-30 15:18:15 -07:00
f727b94e12 lnrpc/watchtowerrpc: prevent watchtowerrpc panic when tower not active 2019-07-02 15:06:12 -07:00
59c9418eca lnd+rpcserver: thread watchtower into subserver configs 2019-06-20 17:04:04 -07:00
d01f88ecdc lnrpc/walletrpc: expose pending input sweeps within UtxoSweeper over RPC 2019-06-05 12:10:33 -07:00
eb700d35e1 routerrpc: extend payment request parameters
Add missing parameters to routerrpc version of SendPayment.
2019-06-05 12:41:45 +02:00
dff0387363 lntest: move itest into package 2019-05-28 21:43:23 +02:00
b53899c43c lnd: rename package main->lnd 2019-04-23 20:57:33 +02:00
087de7cc4d routerrpc: adapt to changed interfaces of routing subsystem 2019-03-21 10:25:55 +01:00
fcdc8f0e83 lnrpc/invoices: add hold invoice rpc 2019-03-15 10:08:58 +01:00
88252d759b config: add sub-server config parsing logic for the new Router service 2019-02-20 16:10:43 -08:00
70c874be88 invoicesrpc: add SubscribeSingleInvoice rpc 2019-02-01 09:43:17 +01:00
3545685177 invoicesrpc: create sub server
Sub server implementation is still empty. This is a preparatory
step for adding invoice functionality.
2019-02-01 09:42:35 +01:00
59e2be5306 config: add ChainRPC config 2019-01-21 14:02:00 -08:00
8754635de5 rpcsercer+subservercfg: populate autopilot RPC config 2018-12-13 12:33:45 +01:00
413aad5efa lnrpc+subserver_cfg: add configs for autopilot sub-server 2018-12-13 12:33:44 +01:00
14ca3bb012 config: add a new entry for the WalletKit sub-RPC server to subRpcServerConfigs 2018-12-06 16:25:36 -08:00
a8ac3cfe7d lnd+rpc: fix linter errors 2018-11-28 20:57:10 -08:00
4002caec69 config+rpc: create new generalized dynamic sub rpc server config framework
In this commit, we add the glue infrastructure to make the sub RPC
server system work properly. Our high level goal is the following: using
only the lnrpc package (with no visibility into the sub RPC servers),
the RPC server is able to find, create, run, and manage the entire set
of present and future sub RPC servers. In order to achieve this, we use
the reflect package and build tags heavily to permit a loosely coupled
configuration parsing system for the sub RPC servers.

We start with a new `subRpcServerConfigs` struct which is _always_
present.  This struct has its own group, and will house a series of
sub-configs, one for each sub RPC server. Each sub-config is actually
gated behind a build flag, and can be used to allow users on the command
line or in the config to specify arguments related to the sub-server. If
the config isn't present, then we don't attempt to parse it at all, if
it is, then that means the RPC server has been registered, and we should
parse the contents of its config.

The `subRpcServerConfigs` struct has two main methods:
`PopulateDependancies` and `FetchConfig`. The `PopulateDependancies` is
used to dynamically locate and set the config fields for each new
sub-server. As the config may not actually have any fields (if the build
flag is off), we use the reflect pacakge to determine if things are
compiled in or not, then if so, we dynamically set each of the config
parameters. The `PopulateDependancies` method implements the
`lnrpc.SubServerConfigDispatcher` interface. Our goal is to allow sub
servers to look up their actual config in this main config struct. We
achieve this by using reflect to look up the target field _as if it were
a key in a map_. If the field is found, then we check if it has any
actual attributes (it won't if the build flag is off), if it is, then we
return it as we expect it to be populated already.
2018-11-28 20:57:05 -08:00