Architecture
Wind Network's architecture is designed for scalability, reliability, and performance
Wind Network's architecture is designed for scalability, reliability, and performance. The system is composed of several interconnected components that work together to provide a comprehensive indexing solution.
Components
Wind Network consists of several modular components:
🔌Geyser Plugin
Connects directly to Solana validators to stream real-time data. This plugin captures blockchain events as they happen, ensuring minimal latency between on-chain activity and indexed data.
🌐Node Network
P2P network for data propagation and redundancy. Built on libp2p gossipsub protocol, nodes communicate and share indexed data to ensure high availability and fault tolerance.
🗄️Indexers
Specialized nodes that index and serve data via API. These nodes process raw blockchain data, apply transformations, and make it queryable through REST and WebSocket interfaces.
📦Client SDK
Libraries for interacting with Wind Network services. Available in TypeScript, Rust, and Python, providing idiomatic interfaces for each language ecosystem.
Data Flow
Data Ingestion
Raw blockchain data is captured through the Geyser plugin interface from Solana validators. This includes accounts, transactions, blocks, and program events.
Processing
Data is processed, filtered, and transformed according to indexing rules. This includes deserializing program data, computing derived values, and organizing data for efficient queries.
Storage
Processed data is stored in the selected storage backend. Different storage engines are optimized for different access patterns and use cases.
Query
Users access indexed data through the HTTP/WebSocket API or SDK. Queries are routed to the appropriate storage backend and results are returned in a standardized format.
Storage Options
Wind Network supports multiple storage backends to suit different use cases:
RocksDB (Default)
The default storage option, optimized for high-throughput write operations.
✓ Pros
- • Fast writes
- • Low latency reads
- • Good for hot storage
- • Minimal resource usage
✗ Cons
- • Limited query capabilities
- • No complex analytics
- • Key-value access only
Best for: Real-time data ingestion, recent data access, simple key-based lookups
Apache Parquet
Columnar storage format optimal for analytics workloads.
✓ Pros
- • Excellent compression (3-4x better than JSON)
- • High query performance
- • Efficient for analytics
- • Great for time-series data
✗ Cons
- • Append-only
- • Not suited for frequent updates
- • Higher write latency
Best for: Analytics, cold storage, historical data, data warehouse workloads
PostgreSQL
Relational database with rich query capabilities.
✓ Pros
- • SQL queries
- • Complex analytics
- • ACID compliance
- • Point-in-time recovery
✗ Cons
- • Higher resource usage
- • Slower writes than specialized options
- • Requires maintenance
Best for: Complex queries, local development, transaction analysis, regulatory compliance
Hot/Cold Storage Architecture
Wind Network supports a hot/cold storage architecture for optimal performance and cost efficiency:
🔥 Hot Storage
Recent data stored in RocksDB for fast access. Typically contains the last 7-30 days of data for immediate queries.
❄️ Cold Storage
Historical data archived in Parquet or PostgreSQL. Optimized for analytics and long-term retention.
This approach provides the best of both worlds: fast write performance during data ingestion and excellent query performance for analytics on historical data.
Network Topology
Wind Network operates as a decentralized peer-to-peer network with different node types serving specific functions:
Validator Nodes: Run Geyser plugin, stream raw blockchain data
Indexer Nodes: Process and store data, serve API endpoints
Relay Nodes: Facilitate data propagation, improve network connectivity
Archive Nodes: Long-term storage, historical data queries