1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#![deny(missing_docs, unsafe_code)]
use std::net;
use std::path::PathBuf;
pub use nakamoto_client::{Client, Config, Error, Network};
pub use nakamoto_client::{Domain, LoadingHandler};
pub mod logger;
type Reactor = nakamoto_net_poll::Reactor<net::TcpStream>;
pub fn run(
connect: &[net::SocketAddr],
listen: &[net::SocketAddr],
root: Option<PathBuf>,
domains: &[Domain],
network: Network,
) -> Result<(), Error> {
let mut cfg = Config {
network,
connect: connect.to_vec(),
domains: domains.to_vec(),
listen: if listen.is_empty() {
vec![([0, 0, 0, 0], 0).into()]
} else {
listen.to_vec()
},
..Config::default()
};
if let Some(path) = root {
cfg.root = path;
}
if !connect.is_empty() {
cfg.limits.max_outbound_peers = connect.len();
}
Client::<Reactor>::new()?.run(cfg)
}