diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2025-12-04 17:49:05 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2025-12-04 17:49:05 +0000 |
| commit | bf558b0dc17e14f96eea624ea5591315a2909154 (patch) | |
| tree | f36a9250ad329a933949c842414c3455e4679326 /src/main.rs | |
| parent | b167f1b2ae7edbcab95554b5203d22d9e372c8b5 (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.rs | 28 |
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?; |