futrnostr / futr

nostr client app written in haskell and qt5
GNU General Public License v3.0
55 stars 2 forks source link

Relay Management / Outbox Model #41

Closed prolic closed 6 days ago

prolic commented 3 weeks ago

Relay Management / Outbox Model

Core Changes

  1. Complete rewrite of relay connection handling

    • Separated DM relays from general relays
    • Added proper connection state management
    • Improved error handling and retry logic
    • Added connection status tracking and UI feedback
  2. New Relay Management UI

    • Added dedicated relay management dialog
    • Visual connection status indicators
    • Separate handling for DM vs general relays
    • Add/remove relay functionality
    • Connection state monitoring
  3. Architecture Changes

    • Split relay handling into separate modules
    • Added RelayConnection module for connection management
    • Added Publisher module for event broadcasting
    • Improved state management with separate RelayPoolState
  4. Protocol Implementation

    • Added support for NIP-65 (Outbox Model)
      • Smart event publishing to appropriate relays
      • Publisher module handles write-only relays
      • Efficient event distribution
    • Added support for NIP-17 (Preferred DM Relays)
      • Dedicated DM relay management
      • Automatic DM relay list publishing
      • DM relay discovery and synchronization

Key Features

Technical Improvements