Skip to content

Latest commit

 

History

History
187 lines (141 loc) · 5.14 KB

File metadata and controls

187 lines (141 loc) · 5.14 KB

ρlατfοrm

Distributed validator network for decentralized AI evaluation on Bittensor

CI Coverage License GitHub stars Rust

Platform Banner

Alt


Overview

Platform is a WASM-only, peer-to-peer validator network for deterministic evaluation of miner submissions on Bittensor. Validators execute challenge logic in a hardened WASM runtime, reach stake-weighted consensus over libp2p, and submit finalized weights to the chain.

Core principles

  • Decentralized libp2p mesh (gossipsub + DHT) with no centralized relays.
  • Stake-weighted PBFT-style consensus for challenge state and weight aggregation.
  • Deterministic WASM execution with strict runtime policy and auditability.

Documentation Index


Network Architecture

flowchart LR
    Owner[Sudo Owner] -->|Signed challenge actions| Mesh[(libp2p Mesh)]
    Mesh --> DHT[(DHT: submissions + consensus state)]
    Mesh --> V1[Validator 1]
    Mesh --> V2[Validator 2]
    Mesh --> VN[Validator N]
    V1 -->|Evaluations + votes| Mesh
    V2 -->|Evaluations + votes| Mesh
    VN -->|Evaluations + votes| Mesh
    V1 -->|Final weights| BT[Bittensor Chain]
    V2 -->|Final weights| BT
    VN -->|Final weights| BT
Loading

Consensus & Weight Submission

sequenceDiagram
    participant L as Leader
    participant V1 as Validator 1
    participant V2 as Validator 2
    participant Vn as Validator N
    participant BT as Bittensor

    L->>V1: Proposal(action, height)
    L->>V2: Proposal(action, height)
    L->>Vn: Proposal(action, height)
    V1-->>L: Vote(approve/reject)
    V2-->>L: Vote(approve/reject)
    Vn-->>L: Vote(approve/reject)
    L-->>V1: Commit(>=2f+1 approvals)
    L-->>V2: Commit(>=2f+1 approvals)
    L-->>Vn: Commit(>=2f+1 approvals)
    V1->>BT: Submit weights
    V2->>BT: Submit weights
    Vn->>BT: Submit weights
Loading

Runtime Policy (WASM-First)

flowchart LR
    Validator[Validator Node] --> Runtime[WASM Runtime]
    Runtime --> Policy[Runtime Policy]
    Runtime --> HostFns[Whitelisted Host Functions]
    Runtime --> Audit[Audit Logs]
    Policy --> Runtime
    HostFns --> Runtime
    Runtime -->|Deterministic outputs| Validator
Loading

WASM Route Handling

sequenceDiagram
    participant Client
    participant RPC as RPC Server
    participant WE as WASM Executor
    participant WM as WASM Module

    Client->>RPC: challenge_call(id, method, path)
    RPC->>WE: execute_handle_route(request)
    WE->>WM: handle_route(serialized_request)
    WM-->>WE: serialized_response
    WE-->>RPC: WasmRouteResponse
    RPC-->>Client: JSON-RPC result
Loading

Review Assignment Flow

flowchart LR
    Submit[Submission] --> Select[Validator Selection]
    Select --> LLM[3 LLM Reviewers]
    Select --> AST[3 AST Reviewers]
    LLM --> |Review Results| Aggregate[Result Aggregation]
    AST --> |Review Results| Aggregate
    Aggregate --> Score[Final Score]
    LLM -.-> |Timeout| Replace1[Replacement Validator]
    AST -.-> |Timeout| Replace2[Replacement Validator]
Loading

Subnet Owner Resolution

flowchart TB
    Sync[Metagraph Sync] --> Parse[Parse Neurons]
    Parse --> UID0{UID 0 Found?}
    UID0 -->|Yes| Update[Update ChainState.sudo_key]
    UID0 -->|No| Keep[Keep Existing]
    Update --> Owner[Subnet Owner = UID 0 Hotkey]
Loading

Quick Start (Validator)

Using Docker Compose (Recommended)

git clone https://github.com/PlatformNetwork/platform.git
cd platform

# Configure environment
cp .env.example .env
# Edit .env and set your VALIDATOR_SECRET_KEY (BIP39 mnemonic)
nano .env

# Start validator
docker compose up -d

# View logs
docker compose logs -f validator

Environment Variables

Variable Description Required
VALIDATOR_SECRET_KEY BIP39 mnemonic (24 words) Yes
NETUID Subnet UID (default: 100) No
SUBTENSOR_ENDPOINT Bittensor RPC endpoint No
RPC_PORT RPC API port (default: 8080) No
P2P_PORT P2P port (default: 8090) No

See Validator Operations for hardware, configuration, and monitoring.


License

MIT