Commit Graph

47 Commits

Author SHA1 Message Date
Elle Mouton
cbc8a414f7 multi: add pprof
This commit adds a config option that can be set inorder to spin up a
pprof profile server on the given port.
2022-09-22 13:54:40 +02:00
Oliver Gugger
d86e49706f aperture: only register prometheus metrics when enabled
To avoid running into an issue in the race unit test with the Prometheus
histogram metrics that aren't concurrency safe, we don't register any of
them if Prometheus isn't enabled in the first place.
This shouldn't be an issue in production, since we don't start multiple
instances of Aperture _within the same process_ at the same time.
2022-03-25 14:22:31 +01:00
positiveblue
2c3cb8c9f7 multi: bump btcec/v2 and btcutil to new versions 2022-03-25 10:30:54 +01:00
Elle Mouton
559d2b3b97 aperture: add NewConfig function
Add a NewConfig func so that all pointer variables in the config object
can be initialised so that we can avoid needing to do nil checks
everywhere.
2022-02-14 09:37:41 +00:00
Elle Mouton
32842116d6 aperture: export hashmail grpc metrics to prometheus 2022-02-10 09:44:30 +02:00
Elle Mouton
9362f2325f multi: extract prometheus config and exporter
In this commit, the prometheus config is extracted from the hashmail
config so that it can be used more generally.
2022-02-10 09:41:35 +02:00
Elle Mouton
ffeafa4d2e aperture: hashmail keepalive enforcement policy
Lower the MinTime frequency that the client is allowed to send pings to
1 min instead of the default of 5 mins.
2022-02-08 12:07:26 +02:00
Oliver Gugger
9ffd5d8de7 aperture: connect REST proxy correctly when insecure is set 2022-02-02 17:18:49 +01:00
Elle Mouton
655bca0ecb aperture: disable websocket proxy pings for hashmail server
Set the ping and pong intervals of the websocket proxy to zero in order
to disable them. This is needed since a browser client is unable to
respond to these pings.
2022-01-21 13:40:30 +02:00
Olaoluwa Osuntokun
dd485d9a8e aperture: add basic gRPC prometheus scraping for hashmail server 2021-11-29 20:22:40 -08:00
Oliver Gugger
7c7b1145eb hashmail_server: fix writes up to 2 MB
This commit adds the ability for a mailbox message to be up to 2MB in
size.
2021-11-24 17:32:47 +01:00
Oliver Gugger
7bcc8355d0 multi: configure and start hashmail server
With this commit we make it possible to enable the Lightning Node
Connect mailbox server to be enabled and started as a local service
within aperture.
2021-11-24 17:32:47 +01:00
Oliver Gugger
c45cd3a317 proxy+aperture: refactor to local service
We want aperture to handle some of the incoming requests on its own,
without forwarding/proxying them to a remote backend. Those "local"
services can register themselves and will be given every request for
inspection. If a service decides to handle it locally, the request is
passed to that service and not forwarded.
2021-11-24 17:32:46 +01:00
carla
3184fe63de multi: add base dir to aperture 2021-10-04 09:11:32 +02:00
carla
0b8128232d aperture: add config file flag and parse command line flags 2021-09-28 10:14:44 +02:00
carla
e6fae0f007 aperture: add validation to config 2021-09-28 10:14:43 +02:00
carla
264fc2f998 aperture: allow relative macaroon/tls paths 2021-09-28 10:14:41 +02:00
carla
c22c0db128 aperture: parse command line flags 2021-09-28 10:14:40 +02:00
Elle Mouton
853b131d80 multi: cleanup proxy
This commit adds to ability to cleanup the Proxy by adding a Close
method and calling this method during server shut down.
2021-08-03 14:30:55 +02:00
Oliver Gugger
beed396b0e Merge pull request #56 from lightninglabs/custom-config-file
Refactor to be run as library in integration tests
2021-07-30 09:12:14 +02:00
Oliver Gugger
aa3f3cfcde multi: update to lnd with etcd 3.5 2021-07-30 09:00:21 +02:00
Alex Miller
f7fa03917e aperture: add servername to self-signed cert 2021-07-22 16:31:16 -04:00
Elle Mouton
0206ecb031 multi: add disable authenticator option
To make it easier to use aperture in a setup where we only need its
proxy functionality but not its LSAT capabilities, we add the option to
disable the authenticator. This makes it possible to run aperture
without needing to connect it to an lnd node.
2021-07-15 11:19:30 +02:00
Oliver Gugger
5061b659c9 aperture: allow updating services at runtime
In order to be able to dynamically update the proxy's backend
configuration, we add a new method that can overwrite the list of
backend services.
2021-07-15 11:19:30 +02:00
Oliver Gugger
b85c7089a2 aperture: allow aperture to be run in-process
We refactor the main Aperture service code into a struct that can be
started and stopped. This allows aperture to be used more easily as a library in
other projects.
2021-07-15 11:19:29 +02:00
Oliver Gugger
087c52a358 multi: export config structs
In order to allow running aperture as a library, we need to export its
configuration structs so they can be instantiated externally.
2021-07-15 11:19:29 +02:00
Oliver Gugger
b88feb173f multi: update to lnd 0.13.0-beta
We update the compile time dependency of lnd to version 0.13.0-beta to
make it easier to run aperture in the same process as other projects
which also updated.
The runtime dependency is still kept at v0.12.0-beta as we don't use any
new RPCs.
2021-07-15 11:19:12 +02:00
Oliver Gugger
c4778c3fd2 multi: update dependencies 2021-05-07 16:47:03 +02:00
Gregor Pogacnik
665eed84e1 Kirin comments renamed to Aperture 2020-12-29 17:26:12 +01:00
Oliver Gugger
ad6a69b1b5 mod: update to latest lnd and lndclient dep 2020-12-02 10:17:52 +01:00
Oliver Gugger
e1269a7f86 aperture+challenger: add error channel to challenger
To make sure we can capture errors in the challenger's invoice
subscription, we hand the main error channel to the challenger so it can
report back errors on it.
2020-09-23 10:11:49 +02:00
Olaoluwa Osuntokun
d6438114d4 aperture: relax TLS requirements
In this commit, we modify our cipher suites and required TLS versions to
allow anything greater than TL 1.1. TLS 1.0 (sslv3) is broken so we
require versions that're safely above that. Without this change, widely
used clients such as `openssl` will fail to connect out to an Aperture
proxy.
2020-08-21 19:44:10 -07:00
Oliver Gugger
c82df1bddc aperture: only renew certificate if we signed it
In case we use an externally provided certificate (which is created by
an external Let's Encrypt process for example), we don't want to try to
renew it. We identify our own certificates by the organization field we
set.
2020-08-14 14:16:01 +02:00
Oliver Gugger
97cf351b19 aperture: interrupt signals 2020-08-11 10:08:44 +02:00
Oliver Gugger
475bfb9675 aperture: create and start/stop challenger 2020-08-11 10:08:44 +02:00
Oliver Gugger
96e69a979c challenger+auth: implement invoice checker 2020-08-11 10:08:39 +02:00
Oliver Gugger
ec089c4723 config+proxy: disable static file serving by default 2020-07-17 11:09:23 +02:00
Olaoluwa Osuntokun
64ea3fbcac Merge pull request #37 from wpaulino/tor-nil-config
aperture: check tor config nil-ness before access
2020-05-20 17:20:41 -07:00
Wilmer Paulino
44b1b0963b aperture: check tor config nil-ness before access
This prevents a panic on startup for instances running with
configurations that don't specify any Tor options.
2020-05-18 15:59:43 -07:00
Elle Mouton
162571ac45 aperture: Custom price per service 2020-05-13 09:57:40 +02:00
Oliver Gugger
52e03c826b config+aperture: add insecure flag 2020-05-05 09:54:07 +02:00
Oliver Gugger
1214dd3ab7 aperture: fix cert validity and renew if about to expire 2020-05-05 09:54:00 +02:00
Oliver Gugger
b8855c2d18 aperture: streamline getTLSConfig 2020-05-05 09:43:45 +02:00
Oliver Gugger
489296abca aperture: extract TLS configuration into function 2020-05-05 09:43:44 +02:00
Oliver Gugger
ee865f0d39 aperture: remove unused certificate/key parameters 2020-05-05 09:43:44 +02:00
Oliver Gugger
e885935d8c aperture: restrict TLS ciphers to use 2020-05-05 09:43:38 +02:00
Olaoluwa Osuntokun
0c14706fa4 aperture: propagate rename 2020-03-18 13:57:18 -07:00