okr-go-club / blockchain

MIT License
1 stars 0 forks source link

Реализовать эндпоинт майнинга блока #17

Closed raisultan closed 4 months ago

raisultan commented 5 months ago

Требуется реализовать REST эндпоинт который будет по запросу запускать процесс майнинга, при завершении которого, новый блок добавляется в блокчейн ноды и отправляется всем остальным нодам. Учесть что клиентская часть должна иметь возможность следить за этим процессом, можно реализовать отдельный эндпоинт лонг-поллинг: отдавать на эндпоинте статус процесса майнинга: failed, succeeded, pending. Итого 2 эндпоинта: 1 - создание заявки на майнинг, отдает идентификатор процесса, 2 - получение статуса процесса майнинга.

Посмотреть в сторону многопроцессорности, чтобы майнинг был в отдельном процессе и не мешал остальным горутинам.

raisultan commented 5 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!"}