From fcc865eb2477baa4135581d9e3138d54d0392dbf Mon Sep 17 00:00:00 2001 From: Elias Rohrer Date: Wed, 14 Jun 2023 15:33:18 +0200 Subject: [PATCH 1/4] Update BDK sync parameters --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 3fd358fab..dae40c1a9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -171,11 +171,11 @@ const DEFAULT_FEE_RATE_CACHE_UPDATE_INTERVAL_SECS: u64 = 60 * 10; const DEFAULT_LOG_LEVEL: LogLevel = LogLevel::Debug; // The 'stop gap' parameter used by BDK's wallet sync. This seems to configure the threshold -// number of blocks after which BDK stops looking for scripts belonging to the wallet. +// number of derivation indexes after which BDK stops looking for new scripts belonging to the wallet. const BDK_CLIENT_STOP_GAP: usize = 20; // The number of concurrent requests made against the API provider. -const BDK_CLIENT_CONCURRENCY: u8 = 8; +const BDK_CLIENT_CONCURRENCY: u8 = 4; // The default Esplora server we're using. const DEFAULT_ESPLORA_SERVER_URL: &str = "https://blockstream.info/api"; From f5b7238e5f27e78dc672a0344500674c7fa6e2ad Mon Sep 17 00:00:00 2001 From: Elias Rohrer Date: Wed, 14 Jun 2023 14:49:41 +0200 Subject: [PATCH 2/4] Increase sync intervals and make them non-harmonious We choose constants that reduce the chance of overlapping syncs past the initial one. --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index dae40c1a9..c18038f19 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -165,8 +165,8 @@ const DEFAULT_STORAGE_DIR_PATH: &str = "/tmp/ldk_node/"; const DEFAULT_NETWORK: Network = Network::Bitcoin; const DEFAULT_LISTENING_ADDR: &str = "0.0.0.0:9735"; const DEFAULT_CLTV_EXPIRY_DELTA: u32 = 144; -const DEFAULT_BDK_WALLET_SYNC_INTERVAL_SECS: u64 = 60; -const DEFAULT_LDK_WALLET_SYNC_INTERVAL_SECS: u64 = 20; +const DEFAULT_BDK_WALLET_SYNC_INTERVAL_SECS: u64 = 80; +const DEFAULT_LDK_WALLET_SYNC_INTERVAL_SECS: u64 = 30; const DEFAULT_FEE_RATE_CACHE_UPDATE_INTERVAL_SECS: u64 = 60 * 10; const DEFAULT_LOG_LEVEL: LogLevel = LogLevel::Debug; From de8a7372ca1517e9500fe84aadbe8fad62f5dac8 Mon Sep 17 00:00:00 2001 From: Elias Rohrer Date: Wed, 14 Jun 2023 15:23:09 +0200 Subject: [PATCH 3/4] Don't listen by default As we expect LDK Node to be primarily used as a client, we should be conservative about listening/accepting inbound connections. The user should make a dedicated choice to do so. --- src/lib.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index c18038f19..1fc41c52a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -163,7 +163,6 @@ uniffi::include_scaffolding!("ldk_node"); // Config defaults const DEFAULT_STORAGE_DIR_PATH: &str = "/tmp/ldk_node/"; const DEFAULT_NETWORK: Network = Network::Bitcoin; -const DEFAULT_LISTENING_ADDR: &str = "0.0.0.0:9735"; const DEFAULT_CLTV_EXPIRY_DELTA: u32 = 144; const DEFAULT_BDK_WALLET_SYNC_INTERVAL_SECS: u64 = 80; const DEFAULT_LDK_WALLET_SYNC_INTERVAL_SECS: u64 = 30; @@ -206,14 +205,14 @@ const WALLET_KEYS_SEED_LEN: usize = 64; /// | Parameter | Value | /// |----------------------------------------|------------------| /// | `storage_dir_path` | /tmp/ldk_node/ | -/// | `network` | `Bitcoin | -/// | `listening_address` | 0.0.0.0:9735 | +/// | `network` | Bitcoin | +/// | `listening_address` | None | /// | `default_cltv_expiry_delta` | 144 | -/// | `onchain_wallet_sync_interval_secs` | 60 | -/// | `wallet_sync_interval_secs` | 20 | +/// | `onchain_wallet_sync_interval_secs` | 80 | +/// | `wallet_sync_interval_secs` | 30 | /// | `fee_rate_cache_update_interval_secs` | 600 | /// | `trusted_peers_0conf` | [] | -/// | `log_level` | `Debug` | +/// | `log_level` | Debug | /// pub struct Config { /// The path where the underlying LDK and BDK persist their data. @@ -253,7 +252,7 @@ impl Default for Config { Self { storage_dir_path: DEFAULT_STORAGE_DIR_PATH.to_string(), network: DEFAULT_NETWORK, - listening_address: Some(DEFAULT_LISTENING_ADDR.parse().unwrap()), + listening_address: None, default_cltv_expiry_delta: DEFAULT_CLTV_EXPIRY_DELTA, onchain_wallet_sync_interval_secs: DEFAULT_BDK_WALLET_SYNC_INTERVAL_SECS, wallet_sync_interval_secs: DEFAULT_LDK_WALLET_SYNC_INTERVAL_SECS, From 4f8703d2e55eee0455e5d157c1c77c9306549a68 Mon Sep 17 00:00:00 2001 From: Elias Rohrer Date: Wed, 14 Jun 2023 15:22:16 +0200 Subject: [PATCH 4/4] Set `Config` defaults in bindings --- bindings/ldk_node.udl | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/bindings/ldk_node.udl b/bindings/ldk_node.udl index c46bf4ace..30801b7d3 100644 --- a/bindings/ldk_node.udl +++ b/bindings/ldk_node.udl @@ -3,15 +3,15 @@ namespace ldk_node { }; dictionary Config { - string storage_dir_path; - Network network; - NetAddress? listening_address; - u32 default_cltv_expiry_delta; - u64 onchain_wallet_sync_interval_secs; - u64 wallet_sync_interval_secs; - u64 fee_rate_cache_update_interval_secs; - LogLevel log_level; - sequence trusted_peers_0conf; + string storage_dir_path = "/tmp/ldk_node/"; + Network network = "Bitcoin"; + NetAddress? listening_address = null; + u32 default_cltv_expiry_delta = 144; + u64 onchain_wallet_sync_interval_secs = 80; + u64 wallet_sync_interval_secs = 30; + u64 fee_rate_cache_update_interval_secs = 600; + LogLevel log_level = "Debug"; + sequence trusted_peers_0conf = []; }; interface Builder {