Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 04 Jan 19:34
e662a48

0.2.0 (2026-01-04)

⚠ BREAKING CHANGES

  • Production validators now require the broker by default.

Features

  • add --no-bootnode flag and improve bootnode reconnection (c1045a6)
  • add bridge API to proxy submissions to term-challenge (85c30da)
  • add challenge custom events for WebSocket broadcast (39b0ccf)
  • add Custom P2P message type for challenge-specific protocols (00ebeec)
  • add docker-compose for bootnode deployment (d0f3f1e)
  • Add dynamic route discovery via /.well-known/routes (106681f)
  • add infinite retry loop (30s) for platform-server connection in validator-node (d8e28b6)
  • add keypair to RpcHandler for webhook P2P broadcast (0f4eb83)
  • add P2P message forwarding to challenge containers (8abeda7)
  • add periodic cleanup of stale task containers (4b26cf4)
  • add periodic validator sync to challenge containers (cff55d7)
  • add persistent data volume for challenge containers (1b5463b)
  • add platform-server (central API) with PostgreSQL, Data API, Claim/Lease (6bd057d)
  • add secure-container-runtime crate with powerful helpers (38862c4)
  • Add Sentry error monitoring (enabled by default) (fdd0f65)
  • add verbose logging option to docker-compose.server.yml (57e17e6)
  • add WebSocket event listener for distributed evaluation (54057fd)
  • add WebSocket transport to secure-container-runtime (004f60c)
  • authenticated WebSocket + validator whitelist endpoint (f18b74b)
  • auto-convert hotkeys to UIDs in weight submission (319f92d)
  • auto-create Docker network and connect validator (e8de0ce)
  • auto-pull docker images and add refresh challenges command (3b9f9f2)
  • Auto-retry bootstrap peer connection every 30 seconds (326b8a6)
  • auto-start challenge containers from platform-server registry (4362a3c)
  • centralized LLM review with miner API key (39e72c1)
  • challenge-sdk: add P2P chain storage module (8bac6e9)
  • consensus: Add stake-based governance with bootstrap period (7dc4e3f)
  • csudo: complete CLI refactoring with beautiful interactive mode (60b115c)
  • Derive libp2p peer ID from validator keypair for stable identity (e64b1c6)
  • DEVELOPMENT_MODE support for local Docker images (71a8086)
  • emission-based weight distribution with UID 0 burn (169ac1b)
  • generic bridge API for multi-challenge support (686c44f)
  • Hardcode default bootnode address (9f270af)
  • immediate stake validation via identify protocol (d38b39b)
  • implement sr25519 signature verification for agent submissions (6fb3820)
  • integrate container broker into validator node (1a0592f)
  • Major platform improvements and bittensor-rs Subtensor API integration (db6cd10)
  • make secure broker the default container backend (e50e1df)
  • orchestrator: add ContainerBackend abstraction for secure mode (5e729c9)
  • orchestrator: use Docker named volume for persistent challenge data (c1db0ed)
  • pass BROADCAST_SECRET to challenge containers (a5d7505)
  • pass VERBOSE env var to challenge containers for debug logging (2c6cb55)
  • platform-server: dynamic challenge orchestration (55686f0)
  • real sr25519 signatures + binary evaluation in Docker (353aff3)
  • sdk: add P2P messages for real-time progress sharing (b524581)
  • security: add stake-weighted PBFT, merkle sync verification, and hotkey rate limiting (27353a0)
  • security: implement authenticated P2P communication with challenge containers (5e48ea2)
  • sentry: improve error tracking with hotkey context (1039741)
  • server: add submissions and evaluations API routes (88e9d4a)
  • sr25519 crypto + Docker image whitelist security (b723820)
  • state: add versioned state serialization with automatic migration (1fe787b)
  • storage: add anti-corruption protections for RocksDB (f45d41c)
  • sync metagraph at startup for validator stake lookup (c155fe4)
  • unified platform binary with server/validator modes (5036425)
  • validate miner_hotkey is SS58 format in /submit endpoint (972161d)
  • validator-node: authenticate WebSocket connection with signature (5934e7d)
  • validator-node: handle ChallengeStopped WebSocket event (f3d52d0)
  • validator: integrate with platform-server for centralized weights (1c5b77a)
  • validator: sync validators to challenge containers on startup (94f72c5)
  • weights: Add CRv4 timelock encryption support (475126d)
  • weights: add persistence for commit-reveal state (53dd4dd)

Bug Fixes

  • add 30s delay before crash exit to allow Watchtower updates (1635a16)
  • add bootnode retry timer to validator event loop (007b920)
  • add bridge routes to unified platform binary (ce04921)
  • add cache bind mount for Docker-in-Docker path mapping (107b064)
  • add challenge to ChainState when receiving P2P Proposal (0ab4c2e)
  • add DNS servers to docker-compose.server.yml (ef47913)
  • add eval logs bind mount for Docker-in-Docker (1b29e3d)
  • add events/broadcast route to platform bin + secure with BROADCAST_SECRET (ebb468f)
  • add logging for P2P outbox message processing (aef5359)
  • Add peer ID to bootstrap peer address (2be994d)
  • add whitelist route and metagraph sync to platform bin server mode (c09cd79)
  • allow all ghcr.io/platformnetwork/ images in agent runner whitelist (9ed64b3)
  • allow custom DATABASE_URL (Supabase, etc.) (f543705)
  • auto-detect validator network for challenge containers (5bf156f)
  • auto-recover from corrupted distributed-db and state (332f75d)
  • bittensor: update to bittensor-rs f79759e with DRAND fix (11cfe4a)
  • broadcast ChallengeStarted event to validators (9047616)
  • broadcast ChallengeStopped event to validators in platform bin server (b99e43d)
  • challenge-sdk: fix consensus test math (8aa071f)
  • change stale container cleanup to 2 hours (8f4592d)
  • ci: move -E filter before -- in cargo llvm-cov nextest (c91e830)
  • ci: properly use cargo cache across jobs (14bc231)
  • ci: separate cache keys for release and debug builds (a2149e4)
  • clippy warnings and add mandatory CI hooks (9a9c395)
  • clippy: resolve all clippy warnings for CI (e8829bd)
  • connect validator container to platform-network on startup (41d9d8b)
  • consensus: correct test expectations for 33% default threshold (d621eb8)
  • consensus: improve P2P mesh stability and reduce quorum threshold (34f65a0)
  • correct netuid_index calculation and salt serialization (c2ba34b)
  • correct sled corruption recovery to remove actual db files (00df049)
  • db: strip trailing database name from URL (19d4298)
  • Derive peer ID from hotkey (public key) not seed (39f578d)
  • docker: add clang/libclang-dev for zstd-sys bindgen (650d5f7)
  • docker: default to validator-node for backward compatibility (4d6f210)
  • docker: use ubuntu:24.04 for glibc 2.39 compatibility (af00fac)
  • don't cleanup challenge containers with different suffixes (f433704)
  • force exact network name 'platform-network' (27071de)
  • gossipsub: resolve empty mesh issue by removing add_explicit_peer calls (375ce2e)
  • implement targeted P2P send (broadcasts to all) (121d5f0)
  • include challenge_configs in chain_getState RPC response (00690e7)
  • migrate remaining ed25519 to sr25519 + add mandatory CI hooks (65bd1e8)
  • network: add mesh repair mechanism for gossipsub (bad9b34)
  • network: add mesh repair mechanism for gossipsub (b171ff4)
  • network: handle gossipsub Subscribed event for proper mesh membership (f8efbd6)
  • network: improve gossipsub mesh stability for bootnodes (381ae26)
  • orchestrator: pass PORT=8080 env var to challenge containers (ab4782e)
  • Pass bootstrap-peer argument directly in docker-compose (d3ac865)
  • pass real challenge config values in ChallengeStarted event (06dc544)
  • pass VALIDATOR_SECRET_KEY to challenge containers (44e1dce)
  • populate registered_hotkeys from metagraph sync (aff29f3)
  • remove obsolete version from docker-compose.bootnode.yml (3ba56f2)
  • resolve CI lint and clippy warnings (c470b4c)
  • reveal mechanism weights when internal epoch manager detects reveal phase (3291318)
  • skip stake validation in no-bittensor mode for PeerIdentified event (f6ff0a2)
  • trigger commit/reveal on Subtensor timing windows in tests (fa85fea)
  • Update bittensor-rs to 3fc7ab5 and export sync_metagraph (c328831)
  • Update bittensor-rs to a1a4558 and fix clippy warnings (b9bc10c)
  • Update bittensor-rs to db10a19 - fix commit-reveal detection (80f10e5)
  • update challenge endpoints for P2P and dev mode containers (9ee7c7a)
  • update coverage badge generation to use peaceiris/actions-gh-pages (347daba)
  • update release-please config for workspace (c6ff25c)
  • use challenge name (not UUID) for CHALLENGE_ID env var (b5bd205)
  • use container ID for challenge container naming suffix (39e4724)
  • use container name for challenge endpoint instead of 127.0.0.1 (f04d4fa)
  • use correct salt type for reveal_weights (41e0a05)
  • use effective stake (alpha + root) for validator validation (cb30a93)
  • use orchestrator endpoint instead of hardcoded URL for challenge containers (bd4c349)
  • use PLATFORM_PUBLIC_URL for validator challenge containers (7ce3b24)
  • Use proper Substrate SR25519 derivation for peer ID (95321e5)
  • use real container endpoints for P2P outbox polling (ae9250d)
  • use simple release type for workspace (60c3078)
  • use simple release type with manifest config (ba79252)
  • use stake_weight for validator stake validation (be15cdc)
  • use stored endpoints for challenge container URLs (2adda1a)
  • use total_stake from runtime API for validator stake validation (dcb389c)
  • use u16 for NetUidStorageIndex in hash computation (c8a392e)
  • use u16 salt directly for reveal_mechanism_weights (72f3806)
  • validator uses Subtensor.set_mechanism_weights() for CRv4 (eda164e)
  • validator uses Subtensor.set_mechanism_weights() for CRv4 (3e0b1e5)
  • validator: change default RPC port from 8545 to 8080 (c610dde)
  • validator: check sudo/owner FIRST before any stake validation (81524af)
  • validator: use correct container name with validator suffix for challenge endpoints (c6137eb)
  • warn when validator cannot join platform network (3c1bdde)

Performance Improvements

  • ci: optimize caching for Rust builds and Docker images (52fb82b)

Code Refactoring

  • clean dead code in evaluator, increase proxy timeout (cbffb81)
  • event-driven commit/reveal from Bittensor timing (4d3f0ff)
  • migrate from ed25519 to sr25519 for Substrate/Bittensor compatibility (dbf722e)
  • remove anti-cheat weight manipulation for pure pass-through (63ed510)
  • remove P2P networking, centralized architecture only (66477bd)
  • remove P2P networking, centralized architecture only (9ef71a6)
  • Remove redundant weights_v2.rs, use bittensor_rs::Subtensor directly (5317b8d)
  • remove term-challenge specific code from validator-node (a4713e9)
  • Replace WeightSubmitter with bittensor_rs::Subtensor (1b55113)
  • simplify WeightAssignment to hotkey + weight only (56ccd21)

Documentation

  • add badges and repobeats analytics to README (5c2a3bb)
  • add banner image to README (2a89445)
  • add hardware requirements section (4 vCPU, 16GB RAM minimum) (e1ffadb)
  • add network requirements (port 9000/tcp) (a0fee78)
  • comprehensive README with incentive mechanism and validator guide (b85812f)
  • improve README formatting and clarify aggregation method (31ab5bc)
  • improve README formatting and clarify aggregation method (ccc90f0)
  • move description before badges (4c6c3fc)
  • move repobeats after badges, update rust to 1.90+ (491f255)
  • remove Validator Utility Maximization section from README (fef431a)
  • simplify README - remove weight capping, commit-reveal, and agent terminology (8897501)
  • update storage requirements (250GB min, 500GB recommended) (43b6805)
  • validator: simplify guide - no GPU, no third-party APIs needed (79a1e97)

Miscellaneous

  • add git hooks for format and CI checks (b42dfc8)
  • add MIT license file (7fd5106)
  • update bittensor-rs to 453ce56 (proper SCALE decoding) (56f99f9)
  • update Rust to 1.92 (latest stable) (ca22249)

CI/CD

  • add automatic versioning with release-please (80070f7)
  • add code coverage badge with cargo-llvm-cov (7b22a73)
  • docker push only after build/clippy/test pass (616dfac)
  • optimize CI with nextest, better caching, and parallel jobs (6155af8)
  • optimize with fully parallel jobs (360c14c)
  • optimize workflow with disk cleanup and rust-cache (4bd7164)
  • restore parallel jobs with proper cache dependencies (11d25b0)
  • round coverage to whole number (35bc17e)
  • use platform-runner label (7080d56)
  • use self-hosted runners (63c1e86)