Проблема
На данный момент у Голоса нет полностью поддерживаемой python библиотеки. Без актуальной библиотеки проблематично создавать новые проекты на этом языке.
Для своих проектов я поддерживаю синхронную библиотеку https://github.com/bitfag/golos-python, которая является форком либы golodranets, которая в свою очередь растёт из steem-библиотеки.
Да и потребность в асинхронной библиотеке была видна с самого начала, т.к. это позволяет строить более быстрые приложения.
Предложение
Предлагается разработать асинхронную библиотеку, со следующими характеристиками:
- работа по websocket протоколу поверх асинхронной библиотеки websockets
- поддержка новых методов, реализованных в недавних ХФ
- поддержка подписок на каллбэки
- интеграционные тесты, проверяющие работу методов на живом API через запуск тестнета в докере
- документированность
У меня уже имеется опыт подобной разработки, в 2019-м году была разработана поддержка asyncio в библиотеках другого graphene-проекта BitShares (данный функционал ещё не включён в основную ветку).
В процессе разработки будет задействован уже готовый механизм тестирования на локальном тестнете, опробованный на bitshares-либах.
Так же возможно, что библиотека будет использовать python-graphenelib в качестве основы.
Бюджет
Под данный проект запрашивается финансирование по ставке $40/час, грубое оценочное время на разработку около 70 часов (может измениться в обе стороны по факту). Учёт рабочего времени по тайм-трекеру, трекается только чистое рабочее время.
Средства будут аккумулироваться на отдельном аккаунте vvk3, и раз в 1-2 недели будут браться с него согласно потраченному времени и текущему курсу GOLOS.
Все неизрасходованные средства будут переведены обратно в фонд воркеров.
Минимальная выплата по рабочему предложению будет установлена в размере, необходимом для покрытия 35 часов разработки. В случае набора минимума, работа будет начата. Если 35-и часов не хватит, будет подан дополнительный воркер.
Если холдеры посчитают, что запрашиваемая ставка слишком велика - no problem, может быть появится другой воркер, а я займусь чем-нибудь другим.
@vvk дело полезное! поддержал
@vvk Для начала бы хорошую либу синхронную, но если будет возможность юзать эту либу синхронно ту супер.
Тк асинхронный код на питоне не так быстро можно писать как синхронный.
Есть вариант сделать 2-в-1, т.е. и синхронную и асинхронную части, но это дольше. А асинхронный код можно просто оборачивать в синхронные вызовы:
Как подписаться на комменты через telegram
@vvk, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:
@vvk где проголосовать?
Троеточие -> заявки на работу
Как подписаться на комменты через telegram
@vvk я верно понимаю, что вариант Golos Python Library который готовил @ksantoprotein, а позднее Someguy допиливал при запуске Steem-engine
https://golos-python.readthedocs.io/en/latest/index.html
https://github.com/Privex/golos-python
не поддерживает работу асинхронно и прочее что указано в посте...?
В этой либе есть некоторые интересные моменты, а так в целом там поддерживается только часть методов. Это упрощённая библиотека, базовые вещи были взяты из других либ. Я уже забыл, зачем вообще @ksantoprotein её делал, возможно просто хотелось запилить либу по-своему. Asyncio и тесты на живом API туда прикручивать тоже можно, по времени скорее всего будет даже дольше чем работать с python-graphenelib. Мне по архитектуре либы xeroc-а больше нравятся. Вся общая кухня для graphene-чейнов вынесена в python-graphenelib и нет нужды таскать локальные имплементации сериализации и т.п.
Короче, есть несколько либ, но ни одной асинхронной и с полной поддержкой API.
У someguy123 видел ещё steem-async, там вообще только read-only запросы предусмотрены и всего несколько high-level методов.
Как подписаться на комменты через telegram