Разработать back-end на Golang или Python

Цена договорная
24 августа 2021, 00:22 • 7 откликов • 133 просмотра
Используемые технологии: AWS, Digital Ocean, DevOps, Golang, Python, Docker, reverse engineering, swager, PostgreSQL, основы блокчейна, Badgers, VUE.JS, websockets.

Контекст:
Bitclout.com — новая социальная сеть с открытым исходным кодом. В этой социальной сети у каждого пользователя есть своя собственная «монета создателя» (creator coin), которую можно продавать, майнить и уничтожать. Создаётся инструмент для управления кошельками, внутри которых находятся «монеты создателей».

Прямо сейчас нам нужно настроить ноду и получить некоторую базовую информацию из БД ноды, позже нам нужно будет изменить код ноды, чтобы добавить сокеты для повышения скорости мониторинга транзакций в ноде в реальном времени, возможно вставить сокет в часть кода, который синхронизирует ноды между собой. Разрабатывается алгоритм автоматической торговли и интерфейсы для предоставления пользователям алгоритмической торговли в Bitclout.

Что надо сделать:
Нужно создать инструмент, который может рассчитывать прибыль и убыток для каждой монеты в кошельке и предоставлять эти данные во фронт. Надо отобразить:
1) какие монеты в кошельке;
2) какова текущая стоимость (цена монеты * количество монет);
3) сколько битклаутов было потрачено на покупку монеты;
4) сколько было заработано на продаже монеты;
5) какова реальная прибыль или убыток для каждой монеты в кошельке;
6) историю изменения прибыли и убытка для каждой монеты в кошельке.

Примеры фронта:
https://signalclout.com/profit-and-loss
https://bitcloutsignal.com/portfolio

ТЗ:
1) Настроить сервер настолько близко к bitclout.com (network hops), насколько это возможно.
2) Настроить репозиторий в github с CI / CD для развертывания кода на этом сервере.
3) Запустить ноду bitclout.
4) Включить postgreSQL и найти, где хранятся все операции покупки / продажи с «монетой создателя» (Доки: https://docs.bitclout.com/devs/backend-api#buy-or-sell-creator-coin Код: https://github.com/bitclout/backend/blob/47bcc8a/routes/transaction.go#L1454)
5) Написать код, который будет брать из БД список всех транзакций с данной «монетой создателя» и вычислять для каждой транзакции количество монет, которые были в обращении до транзакции и после нее. 6) На основе этих данных рассчитать, сколько было потрачено на транзакции в bitclout, если это была транзакция на покупку, и сколько было заработано в bitclout, если это была транзакция на продажу.
7) Сделать end-point API, который можно будет запросить для получения данных о кошельках и истории отдельных монет.