Subtensor API package for bittensor
Project description
Subtensor API Python package
A python wrapper around the @polkadot/api
node library to query the bittensor chain.
Install from pypi
pip install subtensorapi==1.1.0
Running the CLI
Usage
View usage
python3 -m subtensorapi --help
Specify chain endpoint url
python3 -m subtensorapi [sync_and_save|blockAtReg_and_save|sync_and_save_historical|sync_and_save_historical_difficulty] --endpoint_url ENDPOINT_URL
Specify filename to save to
python3 -m subtensorapi [sync_and_save|blockAtReg_and_save|sync_and_save_historical|sync_and_save_historical_difficulty] --filename FILENAME.json
Specify blockhash to sync the chain at, default "latest"
python3 -m subtensorapi [sync_and_save|blockAtReg_and_save|sync_and_save_historical|sync_and_save_historical_difficulty] --block_hash BLOCK_HASH
Sync And Save Metagraph
Pulls the neurons
storage map and saves it to a JSON file.
View usage
python3 -m subtensorapi sync_and_save --help
Run sync of metagraph and save to JSON file
python3 -m subtensorapi sync_and_save -f metagraph.json
Sync And Save Neurons from Metagraph at historical blocks
Pulls the neurons
storage map at each block for each UID and saves it to a JSON file.
View usage
python3 -m subtensorapi sync_and_save_historical --help
Run sync of metagraph at blocks 2706651 2706652 2706653
and UIDs 1 2 3
and save to JSON file
python3 -m subtensorapi sync_and_save_historical -i 1 2 3 -b 2706651 2706652 2706653 -f history.json
Grab blockAtRegistration
Pulls the blockAtRegistration
storage map and saves it to a JSON file.
View usage
python3 -m subtensorapi blockAtReg_and_save --help
Sync And Save Difficulty at historical blocks
Pulls the difficulty
storage value at each block and saves it to a JSON file.
View usage
python3 -m subtensorapi sync_and_save_historical_difficulty --help
Run sync of metagraph at blocks 2706651 2706652 2706653
and save to JSON file
python3 -m subtensorapi sync_and_save_historical_difficulty -b 2706651 2706652 2706653 -f history_diff.json
Using the library
FastSync class
Setup of a FastSync instance
from subtensorapi import FastSync
# check if fast sync is available on the platform
FastSync.verify_fast_sync_support()
# specify the chain endpoint_url
fast_sync: FastSync = FastSync(endpoint_url)
Run the metagraph sync
Pulls the neurons
storage map.
# specify block_hash to sync at. Default is "latest"
block_hash = "0xb2fa081[...]"
# run the sync command and save to JSON file at block_hash
fast_sync.sync_and_save(block_hash)
# load neurons in from JSON file
neurons = fast_sync.load_neurons()
Run the historical metagraph sync
Pulls the neurons
storage map for each block and each UID
# specify blockNumbers to sync at. Default is "latest"
blockNumbers = ["latest", 2706652]
# specify UIDs to sync
UIDs = [1, 2, 3, 4095]
# run the sync command and save to JSON file at block_hash
fast_sync.sync_and_save_historical(blockNumbers, UIDs)
# load neurons in from JSON file
historical_neurons = fast_sync.load_historical_neurons()
Run the historical difficulty sync
Pulls the difficulty
storage value for each block
# specify blockNumbers to sync at. Default is "latest"
blockNumbers = ["latest", 2706652]
# run the sync command and save to JSON file at block_hash
fast_sync.sync_and_save_historical_difficulty(blockNumbers)
# load neurons in from JSON file
historical_diff = fast_sync.load_historical_difficulty()
Run blockAtRegistration pull
Pulls the blockAtRegistration
storage map.
# specify block_hash to sync at. Default is "latest"
block_hash = "0xb2fa081[...]"
# run the pull command and save to JSON file at block_hash
fast_sync.get_blockAtRegistration_for_all_and_save(block_hash)
# load blockAtRegistration_all from JSON file
blockAtRegistration_all = fast_sync.load_blockAtRegistration_for_all()
Using the FastSync class without writing to a file
You can redirect the file writing to a pipe instead of a file.
This removes the need to write to disk and provides a speedup.
Example:
# all neurons
all_neurons: List[SimpleNamespace] = fast_sync.sync_fd(block_hash)
# historical neurons
historical_neurons: Dict[str, Dict[str, SimpleNamespace]] = fast_sync.sync_historical_fd(blockNumbers, UIDs)
# blockAtRegistration_all
blockAtRegistration_all: List[int] = fast_sync.get_blockAtRegistration_for_all_fd(block_hash)
# historical difficulty
historical_diff: Dict[str, int] = fast_sync.sync_historical_difficulty_fd(blockNumbers)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
File details
Details for the file subtensorapi-1.1.0-py3-none-manylinux_2_17_x86_64.whl
.
File metadata
- Download URL: subtensorapi-1.1.0-py3-none-manylinux_2_17_x86_64.whl
- Upload date:
- Size: 21.4 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8957895956f23bec21385d025be7601b6400b5e51b983a96fc11ebeb0f381094 |
|
MD5 | 290920766d073237d09f84e9e9166897 |
|
BLAKE2b-256 | 719accf9a9ca9abcc0ac539c18f631c59d89bb5ec906c12b14540368e95adf09 |
File details
Details for the file subtensorapi-1.1.0-py3-none-macosx_10_15_universal2.whl
.
File metadata
- Download URL: subtensorapi-1.1.0-py3-none-macosx_10_15_universal2.whl
- Upload date:
- Size: 21.4 MB
- Tags: Python 3, macOS 10.15+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a2c8826e4e54eb334b0201b9af404ab08605e31fda0c999fd1999c138bbcbdd |
|
MD5 | b63fa17fe9592e21ed27f1e3907a2849 |
|
BLAKE2b-256 | c176d274d9a1cfcaa82c6b71ee9cbf61de9b5174da037c378b794621fd01ef46 |