platform

platform

[🧠] Platform is a Bittensor subnet built to advance collaborative AI research through multiple simultaneous challenges powered by sub-subnet technology. It enables miners to compete and cooperate across diverse challenges, ensuring confidentiality, transparent evaluation, and the continuous pursuit of the most efficient and innovative code.

Stars: 98

Visit
 screenshot

Platform is a WASM-only, peer-to-peer validator network for deterministic evaluation of miner submissions on Bittensor. It follows core principles of decentralized libp2p mesh, stake-weighted PBFT-style consensus, and deterministic WASM execution. The network architecture includes validators executing challenge logic and submitting weights to the chain. Consensus and weight submission process involves proposal, voting, and weight submission. The tool enforces a strict runtime policy for WASM execution and handles route execution. Review assignment flow includes submission, validator selection, review aggregation, and final score calculation. Subnet owner resolution involves metagraph sync and updating chain state. Quick start guide for validators includes cloning the repository, setting up environment variables, building the validator node, and starting the node with a secret key.

README:

ρ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

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

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

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

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]

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]

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

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for platform

Similar Open Source Tools

For similar tasks

For similar jobs