upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/sync/manager.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2025-12-05 12:03:52 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2025-12-05 12:03:52 +0000
commit339b0c02f2cec25ae804dc882f5ce7d1dd58b9a6 (patch)
treee3d80676913de96c2ac75eb2dc9a8954c88ab633 /src/sync/manager.rs
parentef7ba7c59b8e0b6369f63b8a46e202693963d92b (diff)
rename sunc_bootstrap_relay_url
Diffstat (limited to 'src/sync/manager.rs')
-rw-r--r--src/sync/manager.rs33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/sync/manager.rs b/src/sync/manager.rs
index 6fcfcd7..96bf0f4 100644
--- a/src/sync/manager.rs
+++ b/src/sync/manager.rs
@@ -60,8 +60,9 @@ fn get_sync_source_addr(bind_address: &str) -> SocketAddr {
60 60
61/// Coordinates proactive sync from configured and discovered relays 61/// Coordinates proactive sync from configured and discovered relays
62pub struct SyncManager { 62pub struct SyncManager {
63 /// Initial relay URL to sync from (from config) 63 /// Bootstrap relay URL for initial sync (from config)
64 initial_relay_url: Option<String>, 64 /// Additional relays are discovered from repository announcements that list our service
65 bootstrap_relay_url: Option<String>,
65 /// Our relay's domain (for filtering) 66 /// Our relay's domain (for filtering)
66 relay_domain: String, 67 relay_domain: String,
67 /// Database for storing accepted events 68 /// Database for storing accepted events
@@ -82,20 +83,20 @@ impl SyncManager {
82 /// Create a new SyncManager 83 /// Create a new SyncManager
83 /// 84 ///
84 /// # Arguments 85 /// # Arguments
85 /// * `initial_relay_url` - Optional initial relay URL from config 86 /// * `bootstrap_relay_url` - Optional bootstrap relay URL from config
86 /// * `relay_domain` - Our relay's domain (used to exclude self from sync) 87 /// * `relay_domain` - Our relay's domain (used to exclude self from sync)
87 /// * `database` - Shared database for storing events and querying announcements 88 /// * `database` - Shared database for storing events and querying announcements
88 /// * `write_policy` - Write policy for validating synced events 89 /// * `write_policy` - Write policy for validating synced events
89 /// * `config` - Configuration for health tracking settings 90 /// * `config` - Configuration for health tracking settings
90 pub fn new( 91 pub fn new(
91 initial_relay_url: Option<String>, 92 bootstrap_relay_url: Option<String>,
92 relay_domain: String, 93 relay_domain: String,
93 database: SharedDatabase, 94 database: SharedDatabase,
94 write_policy: Nip34WritePolicy, 95 write_policy: Nip34WritePolicy,
95 config: &Config, 96 config: &Config,
96 ) -> Self { 97 ) -> Self {
97 Self { 98 Self {
98 initial_relay_url, 99 bootstrap_relay_url,
99 relay_domain, 100 relay_domain,
100 database, 101 database,
101 write_policy, 102 write_policy,
@@ -109,14 +110,14 @@ impl SyncManager {
109 /// Create a new SyncManager with metrics 110 /// Create a new SyncManager with metrics
110 /// 111 ///
111 /// # Arguments 112 /// # Arguments
112 /// * `initial_relay_url` - Optional initial relay URL from config 113 /// * `bootstrap_relay_url` - Optional bootstrap relay URL from config
113 /// * `relay_domain` - Our relay's domain (used to exclude self from sync) 114 /// * `relay_domain` - Our relay's domain (used to exclude self from sync)
114 /// * `database` - Shared database for storing events and querying announcements 115 /// * `database` - Shared database for storing events and querying announcements
115 /// * `write_policy` - Write policy for validating synced events 116 /// * `write_policy` - Write policy for validating synced events
116 /// * `config` - Configuration for health tracking settings 117 /// * `config` - Configuration for health tracking settings
117 /// * `metrics` - Sync metrics for Prometheus 118 /// * `metrics` - Sync metrics for Prometheus
118 pub fn with_metrics( 119 pub fn with_metrics(
119 initial_relay_url: Option<String>, 120 bootstrap_relay_url: Option<String>,
120 relay_domain: String, 121 relay_domain: String,
121 database: SharedDatabase, 122 database: SharedDatabase,
122 write_policy: Nip34WritePolicy, 123 write_policy: Nip34WritePolicy,
@@ -124,7 +125,7 @@ impl SyncManager {
124 metrics: SyncMetrics, 125 metrics: SyncMetrics,
125 ) -> Self { 126 ) -> Self {
126 Self { 127 Self {
127 initial_relay_url, 128 bootstrap_relay_url,
128 relay_domain, 129 relay_domain,
129 database, 130 database,
130 write_policy, 131 write_policy,
@@ -137,14 +138,14 @@ impl SyncManager {
137 138
138 /// Create a SyncManager with a single relay URL (Phase 1 compatibility) 139 /// Create a SyncManager with a single relay URL (Phase 1 compatibility)
139 pub fn with_single_relay( 140 pub fn with_single_relay(
140 sync_relay_url: String, 141 bootstrap_url: String,
141 database: SharedDatabase, 142 database: SharedDatabase,
142 write_policy: Nip34WritePolicy, 143 write_policy: Nip34WritePolicy,
143 ) -> Self { 144 ) -> Self {
144 // Extract domain from URL for filtering 145 // Extract domain from URL for filtering
145 let relay_domain = extract_domain_from_url(&sync_relay_url).unwrap_or_default(); 146 let relay_domain = extract_domain_from_url(&bootstrap_url).unwrap_or_default();
146 Self { 147 Self {
147 initial_relay_url: Some(sync_relay_url), 148 bootstrap_relay_url: Some(bootstrap_url),
148 relay_domain, 149 relay_domain,
149 database, 150 database,
150 write_policy, 151 write_policy,
@@ -176,9 +177,9 @@ impl SyncManager {
176 /// and processes incoming events. Runs indefinitely until cancelled. 177 /// and processes incoming events. Runs indefinitely until cancelled.
177 pub async fn run(self) { 178 pub async fn run(self) {
178 tracing::info!( 179 tracing::info!(
179 "Starting SyncManager (domain: {}, initial relay: {:?})", 180 "Starting SyncManager (domain: {}, bootstrap relay: {:?})",
180 self.relay_domain, 181 self.relay_domain,
181 self.initial_relay_url 182 self.bootstrap_relay_url
182 ); 183 );
183 184
184 // Create the filter service 185 // Create the filter service
@@ -196,13 +197,13 @@ impl SyncManager {
196 // Collect all relays to connect to 197 // Collect all relays to connect to
197 let mut relays_to_connect: Vec<String> = Vec::new(); 198 let mut relays_to_connect: Vec<String> = Vec::new();
198 199
199 // Start with initial relay if configured 200 // Start with bootstrap relay if configured
200 if let Some(ref url) = self.initial_relay_url { 201 if let Some(ref url) = self.bootstrap_relay_url {
201 if !self.is_own_relay(url) { 202 if !self.is_own_relay(url) {
202 relays_to_connect.push(url.clone()); 203 relays_to_connect.push(url.clone());
203 active_relays.insert(url.clone()); 204 active_relays.insert(url.clone());
204 } else { 205 } else {
205 tracing::info!("Skipping initial relay (is our own relay): {}", url); 206 tracing::info!("Skipping bootstrap relay (is our own relay): {}", url);
206 } 207 }
207 } 208 }
208 209