Closed raisultan closed 4 months ago
На фронте сделал так, ожидается 2 эндпоинта:
1 - Старт майнинга - POST /blockchain/mine
- 200 и в ответе ID процесса по которому можно будет проверить статус {"id": string}
2 - Проверка статуса майнинга - GET /blockchain/mine/{id}/status
- 200 с текущим статусом {"status": "successful" | "pending" | "failed"}
если статус "failed"
, то ожидаем еще одно поле с описанием ошибки {"status": "failed", "details": "Something went wrong!"}
Требуется реализовать REST эндпоинт который будет по запросу запускать процесс майнинга, при завершении которого, новый блок добавляется в блокчейн ноды и отправляется всем остальным нодам. Учесть что клиентская часть должна иметь возможность следить за этим процессом, можно реализовать отдельный эндпоинт лонг-поллинг: отдавать на эндпоинте статус процесса майнинга: failed, succeeded, pending. Итого 2 эндпоинта: 1 - создание заявки на майнинг, отдает идентификатор процесса, 2 - получение статуса процесса майнинга.
Посмотреть в сторону многопроцессорности, чтобы майнинг был в отдельном процессе и не мешал остальным горутинам.