Piston для чайников, или используем простой и удобный инструмент для доступа к блокчейн Golos
Итак, допустим Вы решили, что Вам необходим доступ к блокчейн Голос напрямую.
Для чего это нужно?
Может быть Вы захотите получать какую-либо специфическую информацию и собрать статистику, а может решите написать своего бота, который будет апвойтить посты по определённому, одному лишь ему известному правилу, либо оставлять матерные комментарии под постами недоброжелателей. Да мало ли. Применений на самом деле немало.
Как это сделать?
Ни для кого не секрет, что существует множество способов работы с блокчейн.
Некоторые обращаются к нодам напрямую, посредством JSONRPC протокола, но многие используют библиотеки, написанные сторонними разработчиками. Большинство из этих библиотек предлагают простую и умную систему команд, используя которые Вам не нужно копаться в структурах JSON и строить сложные запросы.
Безусловно, данный подход недостаточно гибок и не обеспечивает нужной иногда расширенной функциональности, но для новичков и для тех, кто просто хочет поиграться, самое оно.
На Голос куча гайдов и примеров работы с разными инструментами для разных ЯП, но вот про библиотеки на Python информации почти совсем нет. Я сначала подумал, что и инструментов этих самых нет и Python несправедливо обделён, но после недолгих поисков на родительском ресурсе STEEMIT я быстро нашел то, что мне нужно.
Я нашел несколько нужных инструментов, но резюмируя можно сказать что пальма первенства и право называться самой функциональной библиотекой для работы с блокчейн Golos/STEEM для языке Python принадлежит библиотеке Piston от разработчика xeroc.
Piston лёгок и удобен, но в то же время функционален.
Piston разделён на две части piston-lib и piston-cli, первая непосредственно включает процедуры и функции для работы с блокчейн Голос, вторая предоставляет удобный инструмент для работы со STEEM/Golos прямо из командной строки.
К слову сказать, piston-cli можно использовать в качестве удобной замены cli кошельку, если Вы конечно, не боитесь доверить ей свой соответствующий приватный ключ.
Но. обо всем по порядку...
Часть первая. Установка
Возможно, эта часть статьи лишняя и в ней изложены совсем уж очевидные вещи, но дабы отсечь дополнительные вопросы я решил всё-таки кратко описать процесс инсталляции.
Для того, чтобы начать работу на вашем ПК должен быть установлен интерпретатор Python3 и необходимые библиотеки.
Для Ubuntu/Debian выполняем команду:
sudo apt-get install python3
sudo apt-get install libffi-dev libssl-dev python-dev python3-dev
Далее устанавливаем менеджер пакетов pip
sudo apt-get install python3-pip
и менеджер виртуальных окружений.
sudo apt-get install virtualenv
В директории home создаём будущий каталог проекта и переходим туда
mkdir test_project
cd test_project
создаём новое виртуальное окружение
virtualenv -p python3 piston
активируем его
piston/bin/activate
Устанавливаем в наше виртуальное окружение библиотеки piston
pip3 install piston-lib
pip3 install piston-cli
Теперь нам доступны команды piston-cli и библиотека piston-lib, которую мы сможем использовать в своих проектах.
В следующей части будем работать с piston-cli и попробуем создать свой первый пост при помощи библиотеки piston-lib