Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

subtensorapi-1.1.0-py3-none-manylinux_2_17_x86_64.whl (21.4 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ x86-64

subtensorapi-1.1.0-py3-none-macosx_10_15_universal2.whl (21.4 MB view details)

Uploaded Python 3 macOS 10.15+ universal2 (ARM64, x86-64)

File details

Details for the file subtensorapi-1.1.0-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for subtensorapi-1.1.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8957895956f23bec21385d025be7601b6400b5e51b983a96fc11ebeb0f381094
MD5 290920766d073237d09f84e9e9166897
BLAKE2b-256 719accf9a9ca9abcc0ac539c18f631c59d89bb5ec906c12b14540368e95adf09

See more details on using hashes here.

File details

Details for the file subtensorapi-1.1.0-py3-none-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for subtensorapi-1.1.0-py3-none-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 6a2c8826e4e54eb334b0201b9af404ab08605e31fda0c999fd1999c138bbcbdd
MD5 b63fa17fe9592e21ed27f1e3907a2849
BLAKE2b-256 c176d274d9a1cfcaa82c6b71ee9cbf61de9b5174da037c378b794621fd01ef46

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page