use std::io::Cursor;
use std::net::{SocketAddr, ToSocketAddrs};
+use bitcoin::Network;
use bitcoin::hashes::hex::FromHex;
use bitcoin::secp256k1::PublicKey;
use futures::stream::{FuturesUnordered, StreamExt};
pub(crate) const SNAPSHOT_CALCULATION_INTERVAL: u32 = 3600 * 24; // every 24 hours, in seconds
pub(crate) const DOWNLOAD_NEW_GOSSIP: bool = true;
+pub(crate) fn network() -> Network {
+ let network = env::var("RAPID_GOSSIP_SYNC_SERVER_NETWORK").unwrap_or("Bitcoin".to_string());
+ match network.as_str() {
+ "Bitcoin" => Network::Bitcoin,
+ "Testnet" => Network::Testnet,
+ "Signet" => Network::Signet,
+ "Regtest" => Network::Regtest,
+ _ => panic!("Invalid network"),
+ }
+}
+
pub(crate) fn network_graph_cache_path() -> &'static str {
"./res/network_graph.bin"
}
use std::sync::Arc;
use bitcoin::blockdata::constants::genesis_block;
-use bitcoin::Network;
use bitcoin::secp256k1::PublicKey;
use lightning::routing::gossip::NetworkGraph;
use lightning::util::ser::{ReadableArgs, Writeable};
impl RapidSyncProcessor {
pub fn new() -> Self {
+ let network = config::network();
let logger = TestLogger::new();
let network_graph = if let Ok(file) = File::open(&config::network_graph_cache_path()) {
println!("Initializing from cached network graph…");
network_graph
} else {
println!("Initialization from cached network graph failed: {}", network_graph_result.err().unwrap());
- NetworkGraph::new(genesis_block(Network::Bitcoin).header.block_hash(), logger)
+ NetworkGraph::new(genesis_block(network).header.block_hash(), logger)
}
} else {
- NetworkGraph::new(genesis_block(Network::Bitcoin).header.block_hash(), logger)
+ NetworkGraph::new(genesis_block(network).header.block_hash(), logger)
};
let arc_network_graph = Arc::new(network_graph);
Self {