Installation

This guide covers the installation and setup process for Wind Network

Prerequisites

Before installing Wind Network, ensure you have the following prerequisites:

Rust 1.70+ and Cargo
Node.js 16+ and npm/yarn (for TypeScript examples)
Solana CLI tools
Git

Quick Start

Clone the Repository

git clone https://github.com/wind-network/windexer.git
cd windexer

Build the Project

cargo build --workspace

Running wIndexer

1. Start a Local Validator with Geyser Plugin

make run-validator-with-geyser

2. Start a Node

In a new terminal window:

make run-node-1

3. Start an Indexer

In another terminal window:

make run-indexer-1

Configuration

Example configuration with multiple storage options:

{
  "storage": {
    "storage_type": "rocksdb",     // Primary storage type (rocksdb, parquet, postgres)
    "rocksdb_path": "/path/to/rocksdb",
    "hot_cold_separation": true,   // Enable hot/cold storage separation
    "parquet": {
      "directory": "/path/to/parquet",
      "max_file_size_mb": 256,
      "compression_enabled": true,
      "partition_by_slot": true    // Create separate files by slot ranges
    },
    "postgres": {
      "connection_string": "postgres://user:password@localhost:5432/windexer",
      "create_tables": true,
      "batch_size": 1000,
      "max_connections": 10
    }
  }
}

Storage Configuration

storage_type - Primary storage backend (rocksdb, parquet, postgres)
hot_cold_separation - Enable tiered storage for optimal performance

Network Configuration

p2p_port - Port for P2P communication (default: 8000)
api_port - Port for HTTP API (default: 3000)

Testing the Installation

Generate Test Data

cd examples/typescript
npm install
npm run generate-data

Query the Indexed Data

npm run query-windexer

Verify Installation

Check that all components are running correctly:

curl http://localhost:3000/api/health

Expected response:

{ "status": "ok", "version": "1.0.0", "timestamp": "2024-03-21T12:00:00Z" }

Next Steps

Now that you have Wind Network installed, explore these resources: