Add websocket config to CLI
This commit is contained in:
parent
da26341011
commit
9c5eded1ab
@ -173,6 +173,7 @@ impl Config {
|
|||||||
self.network.apply_cli_args(args)?;
|
self.network.apply_cli_args(args)?;
|
||||||
self.rpc.apply_cli_args(args)?;
|
self.rpc.apply_cli_args(args)?;
|
||||||
self.rest_api.apply_cli_args(args)?;
|
self.rest_api.apply_cli_args(args)?;
|
||||||
|
self.websocket_server.apply_cli_args(args)?;
|
||||||
|
|
||||||
if let Some(log_file) = args.value_of("logfile") {
|
if let Some(log_file) = args.value_of("logfile") {
|
||||||
self.log_file = PathBuf::from(log_file);
|
self.log_file = PathBuf::from(log_file);
|
||||||
|
@ -552,6 +552,7 @@ impl ConfigBuilder {
|
|||||||
self.client_config.network.discovery_port += bump;
|
self.client_config.network.discovery_port += bump;
|
||||||
self.client_config.rpc.port += bump;
|
self.client_config.rpc.port += bump;
|
||||||
self.client_config.rest_api.port += bump;
|
self.client_config.rest_api.port += bump;
|
||||||
|
self.client_config.websocket_server.port += bump;
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.eth2_config.spec_constants != self.client_config.spec_constants {
|
if self.eth2_config.spec_constants != self.client_config.spec_constants {
|
||||||
|
@ -147,7 +147,7 @@ fn main() {
|
|||||||
.conflicts_with("port-bump")
|
.conflicts_with("port-bump")
|
||||||
.takes_value(true),
|
.takes_value(true),
|
||||||
)
|
)
|
||||||
/* Client related arguments */
|
/* REST API related arguments */
|
||||||
.arg(
|
.arg(
|
||||||
Arg::with_name("no-api")
|
Arg::with_name("no-api")
|
||||||
.long("no-api")
|
.long("no-api")
|
||||||
@ -169,6 +169,29 @@ fn main() {
|
|||||||
.conflicts_with("port-bump")
|
.conflicts_with("port-bump")
|
||||||
.takes_value(true),
|
.takes_value(true),
|
||||||
)
|
)
|
||||||
|
/* Websocket related arguments */
|
||||||
|
.arg(
|
||||||
|
Arg::with_name("no-ws")
|
||||||
|
.long("no-ws")
|
||||||
|
.help("Disable websocket server.")
|
||||||
|
.takes_value(false),
|
||||||
|
)
|
||||||
|
.arg(
|
||||||
|
Arg::with_name("ws-address")
|
||||||
|
.long("ws-address")
|
||||||
|
.value_name("ADDRESS")
|
||||||
|
.help("Set the listen address for the websocket server.")
|
||||||
|
.conflicts_with_all(&["no-ws"])
|
||||||
|
.takes_value(true),
|
||||||
|
)
|
||||||
|
.arg(
|
||||||
|
Arg::with_name("ws-port")
|
||||||
|
.long("ws-port")
|
||||||
|
.value_name("PORT")
|
||||||
|
.help("Set the listen TCP port for the websocket server.")
|
||||||
|
.conflicts_with_all(&["no-ws", "port-bump"])
|
||||||
|
.takes_value(true),
|
||||||
|
)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Eth1 Integration
|
* Eth1 Integration
|
||||||
|
@ -8,6 +8,7 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
beacon_chain = { path = "../beacon_chain" }
|
beacon_chain = { path = "../beacon_chain" }
|
||||||
|
clap = "2.32.0"
|
||||||
exit-future = "0.1.3"
|
exit-future = "0.1.3"
|
||||||
futures = "0.1.25"
|
futures = "0.1.25"
|
||||||
serde = "1.0"
|
serde = "1.0"
|
||||||
|
45
beacon_node/websocket_server/src/config.rs
Normal file
45
beacon_node/websocket_server/src/config.rs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
use clap::ArgMatches;
|
||||||
|
use serde::{Deserialize, Serialize};
|
||||||
|
use std::net::Ipv4Addr;
|
||||||
|
|
||||||
|
/// The core configuration of a Lighthouse beacon node.
|
||||||
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||||
|
pub struct Config {
|
||||||
|
pub enabled: bool,
|
||||||
|
/// The IPv4 address the REST API HTTP server will listen on.
|
||||||
|
pub listen_address: Ipv4Addr,
|
||||||
|
/// The port the REST API HTTP server will listen on.
|
||||||
|
pub port: u16,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Default for Config {
|
||||||
|
fn default() -> Self {
|
||||||
|
Config {
|
||||||
|
enabled: true,
|
||||||
|
listen_address: Ipv4Addr::new(127, 0, 0, 1),
|
||||||
|
port: 5053,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Config {
|
||||||
|
pub fn apply_cli_args(&mut self, args: &ArgMatches) -> Result<(), &'static str> {
|
||||||
|
if args.is_present("no-ws") {
|
||||||
|
self.enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(rpc_address) = args.value_of("ws-address") {
|
||||||
|
self.listen_address = rpc_address
|
||||||
|
.parse::<Ipv4Addr>()
|
||||||
|
.map_err(|_| "ws-address is not a valid IPv4 address.")?;
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(rpc_port) = args.value_of("ws-port") {
|
||||||
|
self.port = rpc_port
|
||||||
|
.parse::<u16>()
|
||||||
|
.map_err(|_| "ws-port is not a valid u16.")?;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
@ -1,31 +1,13 @@
|
|||||||
use beacon_chain::events::{EventHandler, EventKind};
|
use beacon_chain::events::{EventHandler, EventKind};
|
||||||
use serde::{Deserialize, Serialize};
|
|
||||||
use slog::{error, info, Logger};
|
use slog::{error, info, Logger};
|
||||||
use std::marker::PhantomData;
|
use std::marker::PhantomData;
|
||||||
use std::net::Ipv4Addr;
|
|
||||||
use std::thread;
|
use std::thread;
|
||||||
use types::EthSpec;
|
use types::EthSpec;
|
||||||
use ws::{Sender, WebSocket};
|
use ws::{Sender, WebSocket};
|
||||||
|
|
||||||
/// The core configuration of a Lighthouse beacon node.
|
mod config;
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
||||||
pub struct Config {
|
|
||||||
pub enabled: bool,
|
|
||||||
/// The IPv4 address the REST API HTTP server will listen on.
|
|
||||||
pub listen_address: Ipv4Addr,
|
|
||||||
/// The port the REST API HTTP server will listen on.
|
|
||||||
pub port: u16,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Default for Config {
|
pub use config::Config;
|
||||||
fn default() -> Self {
|
|
||||||
Config {
|
|
||||||
enabled: true,
|
|
||||||
listen_address: Ipv4Addr::new(127, 0, 0, 1),
|
|
||||||
port: 5053,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct WebSocketSender<T: EthSpec> {
|
pub struct WebSocketSender<T: EthSpec> {
|
||||||
sender: Option<Sender>,
|
sender: Option<Sender>,
|
||||||
|
Loading…
Reference in New Issue
Block a user