Оформите транзакцию как сохраняемую state machine: подготовлена, ожидает подписи, подписана, отправлена, подтверждена либо завершилась ошибкой. Приватный ключ остаётся у клиента.
Проектирование процесса обработки транзакции в блокчейн‑сети
Оформите транзакцию как сохраняемую state machine: подготовлена, ожидает подписи, подписана, отправлена, подтверждена либо завершилась ошибкой. Приватный ключ остаётся у клиента.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Разработать схему жизненного цикла транзакции от её создания до окончательного подтверждения.
- Транзакция генерируется алгоритмом, который выдаёт неподписанную структуру.
- Транзакция считается подтверждённой, когда блокчейн возвращает статус CONFIRMED по её хешу.
- Учесть, что подпись транзакции выполняется на клиентской стороне, а не на сервере.
- Этапы жизненного цикла: формирование неподписанной транзакции → подпись → отправка в блокчейн → получение подтверждения.
Ответ
Оформите транзакцию как сохраняемую state machine: подготовлена, ожидает подписи, подписана, отправлена, подтверждена либо завершилась ошибкой. Приватный ключ остаётся у клиента.
Клиент проверяет сеть, адрес, сумму и комиссии перед подписью. Подписанный payload отправляется в сеть, его hash сохраняется; подтверждение получают проверкой по этому hash. Повтор запроса не должен создавать новый перевод: используйте идентификатор операции и проверку уже отправленной транзакции. Тайм-аут означает неизвестный результат, а не доказанный отказ. Правила окончательности и возможной реорганизации зависят от сети; статус CONFIRMED трактуйте согласно её контракту.