Итак, допустим Вы решили, что Вам необходим доступ к блокчейн Голос напрямую.
Для чего это нужно?
Может быть Вы захотите получать какую-либо специфическую информацию и собрать статистику, а может решите написать своего бота, который будет апвойтить посты по определённому, одному лишь ему известному правилу, либо оставлять матерные комментарии под постами недоброжелателей. Да мало ли. Применений на самом деле немало.
Как это сделать?
Ни для кого не секрет, что существует множество способов работы с блокчейн.
Некоторые обращаются к нодам напрямую, посредством 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
Огромная благодарность @gmaster за этот мануал! Я решил пойти своим путем и повторить всё для Windows.
Даже не пытайтесь повторить мою глупость=) Лучшее что я придумал - поставить виртуалку и на него юбунту. Правда тут 1 пункт надо будет исправить
Вместо sudo apt-get install virtualenv
пишем sudo pip3 install virtualenv
И тогда всё получится!
еще обратите внимания где лежит постинг ключ. я вставлял не тот и не работало.
sudo pip3 install virtualenv пишете, если у вас debian 7/ ubuntu 14.04. В debian 8 / ubuntu 16.04 пакет virtualenv присутствует в репозиториях
ddj;oljgfl;djg;l j;lfgjlfgj - вот все что я понял ))
ну эт короче такая крутая штука, чтоб всех сразу залайкать или автоматом комментарии оставлять))
понял )))
Добрый день.
Вопросьба: где можно получить инфу в популярной форме как не для прогера - что есть "библиотека"?
Возможно, статья на хабре какая? Но как именно простую, понятную отрыть.)
@process Piston под python2.7 не работает. Нужен именно pip3. В 7 дебиане пакет вроде называется так же как и в восьмом python3-pip.
Проверьте, установлен ли он.
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
dr-boo, vict0r, jorge, vika-teplo, borishaifa2, sva-lana
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
@gmaster Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество полученных голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Привет!
Все попытки:
"pip3 install piston-lib" и "pip3 install piston-cli" заканчиваются как-то вот так:
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-build-ye6_fdz0/scrypt/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-vbwmtn7j-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-ye6_fdz0/scrypt/
Совет бы не помешал.
Спасибо.
sudo apt-get install python3-dev
тогда получается, как-то вот так:
(цитата)~$ sudo apt-get install python3-dev
[sudo] пароль для tengris:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлен пакет python3-dev самой новой версии (3.5.3-1).
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено. (конец цитаты)
Хотел бы, кстати, попутно поинтересоваться: а это вообще у кого-то, кроме автора работает? Или напротив, проблемы только у меня и возникают?
Ну в общем таки нашёл одну опечатку(в тексте статьи уже исправил):
вместо piston/bin/activate надо писать source piston/bin/activate/
в остальном, ещё раз выполнил последовательно все команды на девственно чистом, свежеустановленном Debian 8 minimal и таки всё работает.
Ещё раз обращаю Ваше внимание на то, что piston-cli и piston-lib необходимо устанавливать после того, как вы активируете виртуальное окружение, без sudo, так как в виртуальном окружении никаких ограничений прав нет.
В Debian 7 и старых бубунтах может возникнуть такая же ошибка как у @vika-teplo, там пакета virtualenv действительно нет. Но опять же, есть Google, который знает всё.
За сим откланяюсь.
Как там дела с ботом, тов. @gmaster? -)
Ещё нашел умную книжку по алгоритмам, всё с формулами и выкладками, как я и хотел:
https://www.ozon.ru/context/detail/id/3250409/
Блрю -)
Пока всё плохо. На некоторых валютных парах почти нет сделок, либо торгую в минус, либо валюта становится слишком волатильной и бот прекращает работу. Надо дорабатывать алгоритм, но всё никак не выходит. На выходных займусь, а в начале следующей недели будет отчёт о неудачах)
выкладывай что есть, а мы допилим.
sudo apt-get install virtualenv
не устанавливает...говорит нету такого пакета (((
https://t.me/joinchat/EvFqFg0vVjMU2F_pxccxow
что за дистрибутив?
попробуй python-virtualenv
также можно установить через pip
pip3 install virtualenv
@gmaster
Версия Debian 7.5
Аналогичная проблема как у @vika-teplo
Вот такой вариант сработал
sudo apt-get install python-virtualenv
Но на следующем этапе затык:
pip3 install piston-lib
sudo: pip3: command not found
Видимо проблема в версии библиотеки. Пробовал так:
pip-2.7 install piston-lib
Но все равно с ошибкой вылетает:
Command python setup.py egg_info failed with error code 1 in /home/test_project/build/graphenelib
Как исправить?
python-virtualenv вкатило
вместо piston/bin/activate надо писать
virtualenv piston/bin/activate я так понимаю.
надо пиисать
sudo pip3 install piston-lib
sudo pip3 install piston-cli
и как теперь с ним работать? piston-cli нет говорит такой команды :(
телеграмм есть?)
Жаль... Присоветуете какой-нибудь ресурс для эффективного освоения Питона? Я ПХП-шник -)
Эм, ну я скорее любитель. Род деятельности у меня с написанием ПО не связан.
Вот эта книжка очень хороша. Правда старовата уже немного.
https://www.gitbook.com/book/byteofpython/-/details