June 26, 2022

Руководство по substrateinterface или как работать с Subspace прямо из Python

Всем привет, дорогие читатели, сегодня я бы хотел поделиться с вами весьма интересной информацией, а именно - как можно играться с Subspce прямой из Python.

Начнём же.

Первое, что я бы хотел уточнить, так это то, что вы можете работать с Subspace практически с любым языком программированием, тут уже каждому своё, но я выбрал Python, так как он мне симпатизирует :)

Для начала вам нужно скачать питон версии 3.9 и ниже, так как именно на такой версии идёт полная поддержка библиотек, которые мы в будущем будем устанавливать.

Далее, для удобства и вообще для совершенства своего кода, вам стоит скачать PyCharm - программная-среда python, для удобства работы с ним

После всех шагов выше, мы можем наконец то приступать к написанию своего творения!

Если вы шарите уже в этой теме, то можете сразу ознакомиться с официальной документацией на гитхабе, но а если нет, то продолжаем читать дальше.

Для начала вам стоит установить библиотеку substrate-interface

Вы можете сделать это двумя путями:

1. Через консоль. В левом нижнем угле нажмите на Terminal, а далее пропишите pip install substrate-interface, потом Enter.

2. Через настройки, действуйте по инструкции на картинках

После у вас появится вот такое уведомление

На этом с установочной частью покончено! Осталось только свершать чудо!

Импортируем библиотеку substrateinterface и из неё же импортируем SubstrateInterface

Мы должны подключиться к блокчейну, чтобы напрямую брать информацию, сделать это можно следующим оброзом:

Далее мы должны выбрать к какой сети мы хотим подключиться, если множество на выбор, вот некоторые из них

Polkadot

substrate = SubstrateInterface(
    url="wss://rpc.polkadot.io",
    ss58_format=0,
    type_registry_preset='polkadot'
)

Kusama

substrate = SubstrateInterface(
    url="wss://kusama-rpc.polkadot.io/",
    ss58_format=2,
    type_registry_preset='kusama'
)

Rococo

substrate = SubstrateInterface(
    url="wss://rococo-rpc.polkadot.io",
    ss58_format=42,
    type_registry_preset='rococo'
)

Westend

substrate = SubstrateInterface(
    url="wss://westend-rpc.polkadot.io",
    ss58_format=42,
    type_registry_preset='westend'
)

Ну нам же с вами нужно брать информацию из Subspace, поэтому вот вам код для подключения к Subspace

Subspace

substrate = SubstrateInterface(

url="wss://apac.gemini-1b.subspace.network/ws"

)

Просто пишем его вот так

ВСЁ! Теперь мы подключены к Subspace

Теперь перед нами открывается куча возможностей, а именно

Изучать тут можно невероятно много! Но мы пройдёмся по самым поверхностным.

Получаем информацию о последнем блоке.

Чтобы получить информацию о последнем блоке используем такой код

substrate.get_block()

и сохраняем в любую переменную, а далее просто выводим принтом эту переменную. Можете воспользоваться вот таким способом

sub = substrate.get_block()
print(sub)

Далее, после нажатия выполнения кода у вас будет НЕВЕРОЯТНО много информации о блоке, но нам нужно это сортировать, чтобы отсеять ненужное

Если вы хотите посмотреть хеш последнего блока, то воспользуйтесь следующим кодом

Код:

sub = substrate.get_block()["header"]["parentHash"]
print(sub)

Результат:

Если вы хотите посмотреть номер последнего блока, то воспользуйтесь следующим кодом

Код:

sub = substrate.get_block()["header"]["number"]
print(sub)

Результат:

Ну а если вам нужно ещё что то узнать из блока, то милости прошу изучать самим все

прелести функционала :)

Если вы хотите посмотреть token_symbol, то воспользуйтесь следующим кодом

Код:

sub = substrate.token_symbol
print(sub)

Результат:

Если вы хотите посмотреть баланс любого кошелька, то воспользуйтесь следующим кодом

Код:

account_info = substrate.query(

module='System',

storage_function='Account',

params=['YOUR WALLET'])

balance = account_info['data']['free']

balance = str(balance)

balance = int(balance)

print(f'{balance / 10 ** substrate.token_decimals} tSSC')

Конечный код:

Результат:

На этом функционал не заканчивается! Но если мы продолжим, то это может затянуться на очень-очень долго :)

Советую, каждому изучить функционал и тогда вы поймёте насколько легко работать с Subspace

Благодаря этим функциям я смог написать бота для Subspace, если кому интересно, можете воспользоваться сами - https://t.me/Subspace_check_bot

На этом я заканчиваю свою статью, но в будущем, я вас уверяю, мы ещё встретимся)

Официальные социальные сети проекта

discord

telegram

twitter

github

reddit

medium

Youtube

linkedin

subsocial

Создатель статьи - Irorss

Мой тг @Irorss