Python+Windows XP+GOLOS версии ХФ17


Вот за что мы любим вика так это за то, что он создал новую публичную ноду 'wss://17.golos.cf', а потом еще и свою первую публичную ноду 'wss://api.golos.cf' перевел в режим ожидания 4 апреля с ХФ17. Боты слетели напрочь, так как там новая API и всё такое, но я радуюсь, так как если бы и первая публичная нода не была бы переведена на 17, то мы бы так и телились с тестированием и перекодированием.

Для питона ситуация отвратная, так как piston перестал фурычить... но но но, копаясь в недрах кода я нашел

17-01.jpg

Если переводить на албанский, то модуль piston изначально может в "jsonrpc": "2.0", но при выходе функции она коцается, чтобы адаптировать под голос. Но так как там нюансов больше, а времени не особо, то переходим к официальной версии питона для голос. Благодаря @vvk (а вы еще не проголосовали за него, как за делегата?) у нас есть действующий модуль.

качаем так

https://github.com/bitfag/golos-python/tree/steem-merge

И теперь задача установить это туда, где и до этого у меня работали скрипты под голос (или в другое место/папку аля golos17). Лично мне не понравилась идея под XP запускать следующую команду

call C:\golos17\Scripts\pip3.exe install -U "git+https://github.com/bitfag/golos-python.git@steem-merge#egg=steem"

Так как это требует установления отдельно git
Мы не линуксоиды, это все не встроено да и отбирает места на жестком диске.

Поэтому спокойно распаковываем zip и выполняем стандартно прям из распакованного

call C:\golos17\Scripts\python.exe setup.py install

И закатываем в нужное место в папке golos17 папки steem и steembase. Наверно можно было бы это указать сразу в команде выше, но я признаюсь честно нинаю как

# -*- coding: utf-8 -*-
from steem import Steem
golos = Steem(nodes = ['https://17.golos.cf'])
a = golos.call('get_accounts', ['ksantoprotein'], api='database_api')
print(a)

Такая забавная ситуация с этим официальным модулем... вот версию питона 2.7 они поддерживают, версии питона 3.5 и выше... аналогично, при запуске ошибки не будет. А вот 3.4 для ХР вылезет ошибка связанная с плохо компилированным модулем

from http.client import RemoteDisconnected

Лично я уже начал подумывать о том, что надо снести систему и установить Винду повыше, а потом плюнул и просто удалил эту строку и еще одно упоминание RemoteDisconnected ниже в файле http_client.py в папке steembase. Ну и ладно, теперь информация о багах/ошибках приходит неполной и уже не так понятно что там случилось и что надо правит... за то работает.

Как мы видим, теперь у нас есть не только api='database_api', но может быть и api='social_network', у нас в новостях указано:
/ru--golos/@goloscore/novosti-golos-core-status-razrabotki-na-05-02-2018-tekhnicheskie-izmeneniya-informaciya-o-bounty-programme

и еще помощником по api для начинающих ботоводов
http://ropox.tools/steemjs/api/database_api/get_ops_in_block

это поможет собственно написать набор функций под себя и не ждать пока кто-то напишет всё под капот питона, чтобы было удобно и без особых заморочек с вызовом. Так что уже адаптировал к работе python 3.4 как для 32 битной Windows, так и для 64 битной. Теперь только кодить.

Как резюме...

Было

golos.rpc.get_ops_in_block(13751820, True)

Стало

golos.call('get_ops_in_block', 13751820, True, api='database_api')

Comments 11


Линукс нужно ставить.

22.03.2018 07:31
0

учитывая как я работаю в винде, то мне привычнее в винде, плюс вопрос принципиальности

22.03.2018 07:53
0

Или Ubuntu - она условно-бесплатная.

22.03.2018 09:11
0

Так и предполагал, что пистон отвалится после ХФ из-за смены апи
Спасибо за тест и рецепты решения

22.03.2018 07:32
0

piston будет адаптирован.

22.03.2018 07:47
0

скажем так... у пистона больше возможностей и адаптации. его немного переделаем )там под капотом много интересно можно найти

22.03.2018 07:54
0

Мои действия на win10.

Создаем папку
md C:\Golos17
Устанавливаем (точнее копируем) туда питон
"C:\Program Files\Python35\Scripts\virtualenv.exe" -p "C:\Program Files\Python35\python.exe" C:\Golos17

В командной строке перешёл в папку куда распаковал golos-pythone. Затем запустил установку:
call C:\golos17\Scripts\python.exe setup.py install

Получил отказ из-за отсутствия pipenv.
Из папки C:\Golos17\Scripts\ запустил команду
pip install pipenv

Скачалось несколько мегабайт, и установилось.
Повторил:
В командной строке перешёл в папку куда распаковал golos-pythone. Затем запустил установку:
call C:\golos17\Scripts\python.exe setup.py install

Дело устанавливалось минут пять.
Потом в PyCharm создал новый проект. Путь к интерпретатору указал "C:\Golos17\Scripts\pythone.exe"
В файле прописал:
from steem import Steem
s = Steem()
print(s.get_account('virt')['sbd_balance'])

Выскочила ошибка об отсутствующем модуле winrandom. Проблема известна давно, решается просто.

Папка
C:\Golos17\Lib\site-packages\pycrypto-2.6.1-py3.5-win-amd64.egg\Crypto\Random\OSRNG\
Откройте nt.py в любом текстовом редакторе и измените только строку вверху:
import winrandom
должен быть:
from . import winrandom

Повторяю запуск скрипта, получаю ответ:
26.082 GBG
Что соответствует данным из моего кошелька.
Дальше не проверял, пришлось заняться другими делами.

22.03.2018 16:59
0

Спасибо за информацию! Очень понравилась!
Прокомментируйте пожалуйста мою статью, а я на Вас подпишусь!
/ru--novosti/@goldendec/obzor-i-analiz-ico-dav-decentralizaciya-transportnoi-infrastruktury

22.03.2018 22:12
0