Implements the foundation for a Nostr-based Bisq marketplace bot:
Core Components:
- NostrHandler: Multi-relay connection management with simultaneous subscribe/publish
- BisqClient: Async wrapper around bisq-cli for marketplace queries
- MessageParser: Flexible command parsing with multiple input formats
- Formatter: Response formatting for Nostr publication
- BisqBot: Main orchestration class coordinating all components
Features:
- Multiple relay support (parallel connections)
- Event deduplication across relays
- Async/await architecture for non-blocking operations
- Comprehensive error handling and recovery
- Flexible command syntax (e.g., "USD BUY", "stats", "help")
Configuration:
- Environment-based configuration with sensible defaults
- Support for N relays via comma-separated config
- Bisq daemon connection configuration
Documentation:
- README.md: Complete user guide with installation and usage
- QUICKSTART.md: 10-minute setup guide
- ARCHITECTURE.md: Detailed technical architecture and design
- RELAY_STRATEGY.md: Multi-relay configuration and optimization
Deployment:
- systemd service file for production deployment on Debian
- setup.sh automated installation script
- .env.example configuration template
Phase 1 Status: ✅ COMPLETE
- Core bot skeleton
- Multi-relay support (no relay dependency needed)
- Nostr subscription and publishing
- Bisq query integration
- Basic command parsing and response
25 lines
612 B
Plaintext
25 lines
612 B
Plaintext
# Bisq Bot Configuration
|
|
|
|
# Nostr Relay Configuration
|
|
# Comma-separated list of relay URLs to connect to
|
|
NOSTR_RELAYS=wss://relay.nostr.band,wss://relay.damus.io,wss://nos.lol
|
|
|
|
# Bot Private Key
|
|
# Generate with: openssl rand -hex 32
|
|
# This is the private key of the Nostr account for the bot
|
|
BOT_PRIVATE_KEY=your_private_key_in_hex_here
|
|
|
|
# Bisq Daemon Configuration
|
|
# Port of the Bisq daemon RPC server
|
|
BISQ_PORT=4848
|
|
|
|
# Host of the Bisq daemon (usually localhost)
|
|
BISQ_HOST=127.0.0.1
|
|
|
|
# Bot Configuration
|
|
# Display name for the bot
|
|
BOT_NAME=bisqbot
|
|
|
|
# Timeout for external requests (seconds)
|
|
REQUEST_TIMEOUT=10
|