upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2025-12-04 17:49:05 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2025-12-04 17:49:05 +0000
commitbf558b0dc17e14f96eea624ea5591315a2909154 (patch)
treef36a9250ad329a933949c842414c3455e4679326 /src/main.rs
parentb167f1b2ae7edbcab95554b5203d22d9e372c8b5 (diff)
feat(sync): Phase 2 - multi-relay and complete filters
- Add relay discovery from stored announcements - Implement FilterService with three-layer strategy - Support multiple simultaneous relay connections - Filter batching for large tag sets
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/main.rs b/src/main.rs
index 21b351f..31e7cf6 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -51,21 +51,25 @@ async fn main() -> Result<()> {
51 config.domain 51 config.domain
52 ); 52 );
53 53
54 // Start SyncManager if sync_relay_url is configured 54 // Start SyncManager for proactive sync (Phase 2: multi-relay support)
55 if let Some(ref sync_url) = config.sync_relay_url { 55 // Even without initial sync_relay_url, SyncManager can discover relays from stored announcements
56 info!("Starting proactive sync from: {}", sync_url); 56 let sync_manager = SyncManager::new(
57 let sync_manager = SyncManager::new( 57 config.sync_relay_url.clone(),
58 sync_url.clone(), 58 config.domain.clone(),
59 relay_with_db.database.clone(), 59 relay_with_db.database.clone(),
60 relay_with_db.write_policy.clone(), 60 relay_with_db.write_policy.clone(),
61 ); 61 );
62 tokio::spawn(async move { 62
63 sync_manager.run().await; 63 if config.sync_relay_url.is_some() {
64 }); 64 info!("Starting proactive sync from: {:?}", config.sync_relay_url);
65 } else { 65 } else {
66 info!("Proactive sync disabled (no NGIT_SYNC_RELAY_URL configured)"); 66 info!("Proactive sync enabled (will discover relays from stored announcements)");
67 } 67 }
68 68
69 tokio::spawn(async move {
70 sync_manager.run().await;
71 });
72
69 // Start HTTP server with integrated relay and database 73 // Start HTTP server with integrated relay and database
70 info!("Starting HTTP server on {}", config.bind_address); 74 info!("Starting HTTP server on {}", config.bind_address);
71 http::run_server(config, relay_with_db.relay, relay_with_db.database, metrics).await?; 75 http::run_server(config, relay_with_db.relay, relay_with_db.database, metrics).await?;