| RAPID_GOSSIP_SYNC_SERVER_DB_USER | alice | Username to access Postgres |
| RAPID_GOSSIP_SYNC_SERVER_DB_PASSWORD | _None_ | Password to access Postgres |
| RAPID_GOSSIP_SYNC_SERVER_DB_NAME | ln_graph_sync | Name of the database to be used for gossip storage |
+| RAPID_GOSSIP_SYNC_SERVER_NETWORK | mainnet | Network to operate in. Possible values are mainnet, testnet, signet, regtest |
| BITCOIN_REST_DOMAIN | 127.0.0.1 | Domain of the [bitcoind REST server](https://github.com/bitcoin/bitcoin/blob/master/doc/REST-interface.md) |
| BITCOIN_REST_PORT | 8332 | HTTP port of the bitcoind REST server |
| BITCOIN_REST_PATH | /rest/ | Path infix to access the bitcoind REST endpoints |
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()).to_lowercase();
+ match network.as_str() {
+ "mainnet" => Network::Bitcoin,
+ "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 {