-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathrequirements.txt
More file actions
78 lines (70 loc) · 3.14 KB
/
Copy pathrequirements.txt
File metadata and controls
78 lines (70 loc) · 3.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# Pinned production dependencies.
#
# All versions are == (not >=) so CI/prod rebuilds are reproducible and a
# silent transitive upgrade can't break signature verification or consensus
# compatibility between leader and peers.
#
# To bump: change the pin, rebuild the venv (.venv/bin/pip install -r
# requirements.txt), run `make test-unit && make test-cross-chain`, and
# commit. Never drift to >= without a matching upgrade-plan test.
# Bittensor subnet integration
# 2026-07-16: finney upgraded its runtime so the neurons_lite runtime-API netuid
# param is now a Composite-wrapped u16. bittensor 10.1.0 / async-substrate-interface
# 1.6.3 encode it as a bare int → `ValueError: Invalid type for data: 112 ...
# Composite(... u16 ...)` on subtensor.metagraph(netuid=), which broke BOTH the API
# metagraph-sync (submissions 503 / standalone) AND validator weight emission,
# fleet-wide. Fix = bump to bittensor 10.5.0, which pulls the fixed
# async-substrate-interface 2.2.1. Verified empirically against live finney
# (subtensor.metagraph(netuid=112) → n=256). Stay on the 10.x line: bittensor 11.x
# is the new unified SDK (opentensor/bittensor archived; moved to
# RaoFoundation/subtensor) with a rewritten API (no Subtensor.metagraph) — a
# separate migration, not this hotfix.
bittensor==10.5.0
# bittensor-cli REMOVED: it pulls scalecodec (py-scale-codec), which conflicts
# with async-substrate-interface 2.x's `cyscale` (shared namespace → an import-time
# `_check_conflicts()` RuntimeError that breaks every bittensor import). btcli is
# NOT used inside the image at runtime — only operators install it host-side to
# register a wallet (scripts/install_prereqs.sh). Wallet loading in the image uses
# bittensor-wallet, which stays.
bittensor-wallet==4.1.1
async-substrate-interface==2.2.1
# HTTP / core
# bittensor 10.5.0 requires requests>=2.33.0,<3.0 (was pinned 2.32.5).
requests>=2.33.0,<3.0
# bittensor 10.5.0 requires aiohttp>=3.13.4,<4.0 (was pinned 3.13.3).
aiohttp==3.13.4
httpx==0.28.1
numpy==2.4.2
# Fast JSON for the large store files (~44MB submissions.json re-serialized per
# write). ~5-10x the stdlib, shrinking the GIL-held encode/decode window so the
# writer-thread persist offload actually frees the event loop. Optional at
# runtime (harness/fastjson.py falls back to the stdlib), pinned for prod.
orjson==3.11.9
# Testing
pytest==9.0.2
pytest-asyncio==1.3.0
requests-mock==1.12.1
# Miner and solver dependencies
flask==3.1.3
web3==7.14.1
eth-utils==5.3.1
eth-abi==5.2.0
eth-account==0.13.7
eth-keys==0.7.0
pynacl==1.6.2
base58==2.1.1
python-dotenv==1.2.2
# App Intents API
fastapi==0.135.1
uvicorn==0.41.0
# App Intents LLM code generation
anthropic==0.84.0
# MCP (Model Context Protocol) SDK — required by the miner agent's
# mcp_server which exposes test_strategy, score_strategy, read_contract,
# etc. as tools to the Claude CLI. Without this package, Claude's MCP
# session silently fails to initialize and the agent runs with only
# built-in tools (no ability to test or score its own output).
mcp==1.26.0
# AWS Secrets Manager + CloudWatch (Phase 5). Falls back gracefully if
# missing so dev rigs that don't have AWS creds still work.
boto3==1.42.91