# Getting Started

Here’s a refreshed and clear **"Getting Started"** section for your GitBook:

***

Welcome to Aether, a framework designed for building decentralized AI systems. This guide will walk you through everything you need to get up and running, from installation to your first working project.

***

#### **Step 1: Prerequisites**

Before you begin, make sure you have the following installed and configured:

1. **Python 3.9 or higher**\
   [Download Python](https://www.python.org/downloads/)
2. **Redis** (for task queues and consensus mechanisms)\
   Install Redis using your system's package manager or via [Redis installation guide](https://redis.io/docs/getting-started/installation/).
3. **Blockchain Node Access**
   * Ethereum RPC URL (e.g., Infura or Alchemy)
   * Solana CLI and wallet configuration
4. **IPFS Daemon** (optional but recommended)\
   [IPFS Installation Guide](https://docs.ipfs.tech/install/)
5. **Git** (for cloning the repository)\
   [Download Git](https://git-scm.com/)

***

#### **Step 2: Install Aether**

1. Clone the Aether repository:

   ```bash
   git clone https://github.com/<your-repo>/aether.git
   cd aether
   ```
2. Install required Python dependencies:

   ```bash
   pip install -r requirements.txt
   ```
3. (Optional) Set up a virtual environment for isolated dependency management:

   ```bash
   python -m venv venv
   source venv/bin/activate  # For Linux/Mac
   venv\Scripts\activate     # For Windows
   ```

***

#### **Step 3: Configure Aether**

1. **Environment Variables**\
   Create a `.env` file in the root directory to securely store configuration details:

   ```env
   SOLANA_WALLET_PATH=/path/to/solana-wallet.json
   ETHEREUM_WALLET_PRIVATE_KEY=your_private_key_here
   ETHEREUM_RPC_URL=https://mainnet.infura.io/v3/<your-project-id>
   REDIS_HOST=localhost
   REDIS_PORT=6379
   IPFS_API_URL=http://127.0.0.1:5001
   ```
2. **Update the Configuration File**\
   Edit the `config.yaml` file to specify runtime parameters:

   ```yaml
   blockchain:
     solana:
       wallet_env_var: "SOLANA_WALLET_PATH"
     ethereum:
       wallet_env_var: "ETHEREUM_WALLET_PRIVATE_KEY"
       rpc_url_env_var: "ETHEREUM_RPC_URL"

   swarm:
     consensus_threshold: 3
   ```

***

#### **Step 4: Test Your Setup**

1. Run the basic setup test to ensure all dependencies and configurations are correct:

   ```bash
   python tests/setup_test.py
   ```
2. Verify Redis is running:

   ```bash
   redis-cli ping
   ```

   You should see `PONG`.
3. Test IPFS connection (if enabled):

   ```bash
   ipfs swarm peers
   ```

***

#### **Step 5: Build Your First Swarm**

1. Create and initialize a swarm with agents:

   ```python
   from src.swarm.advanced_swarm_behavior import Swarm

   swarm = Swarm(10)  # Create a swarm with 10 agents
   swarm.simulate(3)  # Simulate for 3 rounds
   ```
2. Log tasks on the blockchain:

   ```python
   from src.utils.blockchain_manager import BlockchainManager

   blockchain = BlockchainManager()
   blockchain.log_task("Analyze trends", "Completed successfully")
   ```
3. Share data via IPFS:

   ```python
   from src.utils.ipfs_client import IPFSClient

   ipfs = IPFSClient()
   cid = ipfs.upload_file("data.json")
   print(f"File uploaded to IPFS with CID: {cid}")
   ```

***

#### **Step 6: Explore the Modules**

1. **Swarm Consensus**\
   Learn how agents collaborate and reach agreements through voting.\
   Swarm Consensus Documentation →
2. **Blockchain Integration**\
   Use Ethereum and Solana for on-chain decision-making.\
   Blockchain Integration Documentation →
3. **AI Agent Capabilities**\
   Build agents with multi-modal processing, reinforcement learning, and more.\
   AI Agent Documentation →

***

####


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://aether-framework.gitbook.io/aetherframework/getting-started.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
