Тестовое задание для AppMagic
Задача: реализовать сервис обработки истории цены gas в сети ethereum.
Вводные: существует исторический массив данных по цене - https://github.com/CryptoRStar/GasPriceTestTask/blob/main/gas_price.json
Необходимо посчитать:
- Сколько было потрачено gas помесячно.
- Среднюю цену gas за день.
- Частотное распределение цены по часам(за весь период).
- Сколько заплатили за весь период (gas price * value).
Требования к сервису:
- Данные должны загружаться удаленно.
- Сервис должен вернуть все значения в виде json файла.
- Данные должны быть посчитаны максимально быстро.
Сервис задеплоен с помошью render.
Задеплоенный сервис доступен по адресу: https://gas-price-test.onrender.com/swagger/index.html
Если по какой-то причине задеплоенная версия не работает, возможен также простой локальный запуск.
docker pull ghcr.io/qulaz/gas-price-test:latest
docker run --rm -p 8000:8000 ghcr.io/qulaz/gas-price-test:latest
docker build . -t gas-price-test:lastest
docker run --rm -p 8000:8000 gas-price-test:lastest
Внимание: требуется go 1.19+
go build -o server -a ./cmd/app/main.go
- Запустит собранный бинарник
Сервер запущен и по-умолчанию доступен на порту 8000
.
Swagger UI доступен по адресу: http://localhost:8000/swagger/index.html
Конфигурация осуществляется через .env
файл или переменные среды.
Переменные и их описание доступны в .env.dist файле.
По-умолчанию приложение запускается с оптимальными стандартными параметрами,
для запуска отдельно ничего настраивать не нужно.
В случае конфигурирования через .env
файл, то он должен находиться в одной
директории с запускаемым бинарником приложения.