lighthouse/common
Mac L a73d698e30 Add TLS capability to the beacon node HTTP API (#2668)
Currently, the beacon node has no ability to serve the HTTP API over TLS.
Adding this functionality would be helpful for certain use cases, such as when you need a validator client to connect to a backup beacon node which is outside your local network, and the use of an SSH tunnel or reverse proxy would be inappropriate.

## Proposed Changes

- Add three new CLI flags to the beacon node
  - `--http-enable-tls`: enables TLS
  - `--http-tls-cert`: to specify the path to the certificate file
  - `--http-tls-key`: to specify the path to the key file
- Update the HTTP API to optionally use `warp`'s [`TlsServer`](https://docs.rs/warp/0.3.1/warp/struct.TlsServer.html) depending on the presence of the `--http-enable-tls` flag
- Update tests and docs
- Use a custom branch for `warp` to ensure proper error handling

## Additional Info

Serving the API over TLS should currently be considered experimental. The reason for this is that it uses code from an [unmerged PR](https://github.com/seanmonstar/warp/pull/717). This commit provides the `try_bind_with_graceful_shutdown` method to `warp`, which is helpful for controlling error flow when the TLS configuration is invalid (cert/key files don't exist, incorrect permissions, etc). 
I've implemented the same code in my [branch here](https://github.com/macladson/warp/tree/tls).

Once the code has been reviewed and merged upstream into `warp`, we can remove the dependency on my branch and the feature can be considered more stable.

Currently, the private key file must not be password-protected in order to be read into Lighthouse.
2021-10-12 03:35:49 +00:00
..
account_utils Update zeroize_derive (#2625) 2021-09-25 05:58:37 +00:00
clap_utils Remove unused deps (#2592) 2021-09-30 04:31:42 +00:00
compare_fields Check for unused deps in CI (#1262) 2020-06-14 10:59:50 +10:00
compare_fields_derive Update external deps (#1711) 2020-10-05 08:22:19 +00:00
deposit_contract Implement SSZ union type (#2579) 2021-09-25 05:58:36 +00:00
directory Remove unused deps (#2592) 2021-09-30 04:31:42 +00:00
eth2 Fix cargo audit warns for nix, psutil, time (#2699) 2021-10-11 00:10:35 +00:00
eth2_config Remove unused deps (#2592) 2021-09-30 04:31:42 +00:00
eth2_interop_keypairs Fix nightly bump num bigint (#2591) 2021-09-12 23:55:20 +00:00
eth2_network_config Remove unused deps (#2592) 2021-09-30 04:31:42 +00:00
eth2_wallet_manager Remove unused deps (#2592) 2021-09-30 04:31:42 +00:00
fallback Improve eth1 fallback logging (#2490) 2021-08-30 00:51:26 +00:00
filesystem Update file permissions (#2499) 2021-09-03 02:41:10 +00:00
hashset_delay Upgrade dependencies (#2513) 2021-08-17 01:00:24 +00:00
lighthouse_metrics Web3Signer support for VC (#2522) 2021-09-16 03:26:33 +00:00
lighthouse_version Release v2.0.0 (#2673) 2021-10-05 03:53:18 +00:00
lockfile Enable Compatibility with Windows (#2333) 2021-05-19 23:05:16 +00:00
logging Add test_logger as feature to logging (#2586) 2021-10-06 00:46:07 +00:00
lru_cache Keep track of failed head chains and prevent re-lookups (#1534) 2020-08-18 03:54:09 +00:00
malloc_utils Avoid negative values in malloc_utils metrics (#2692) 2021-10-11 00:10:34 +00:00
monitoring_api Remove unused deps (#2592) 2021-09-30 04:31:42 +00:00
sensitive_url Add SensitiveUrl to redact user secrets from endpoints (#2326) 2021-05-04 01:59:51 +00:00
slot_clock Validator monitor support for sync committees (#2476) 2021-08-31 23:31:36 +00:00
target_check Improve compilation error on 32-bit (#2424) 2021-06-30 04:56:22 +00:00
task_executor Web3Signer support for VC (#2522) 2021-09-16 03:26:33 +00:00
test_random_derive Update external deps (#1711) 2020-10-05 08:22:19 +00:00
validator_dir Remove unused deps (#2592) 2021-09-30 04:31:42 +00:00
warp_utils Add TLS capability to the beacon node HTTP API (#2668) 2021-10-12 03:35:49 +00:00
README.md Directory Restructure (#1163) 2020-05-18 21:24:23 +10:00

eth2

Common crates containing eth2-specific logic.