Проект на 1-2 человек
Реализовать прототип децентрализованной площадки для проведения аукционов.
Крупная компания, владеющая площадкой, решила вынести логику проведения аукциона в Blockchain для того, чтобы повысить надежность системы, исключить возможность подделки результатов аукционов и обеспечить прозрачность всего процесса.
Роль 1: Продавец выставляет на продажу товар, указывая начальную цену и время окончания торгов.
Роль 1: Покупатель выбирает выставленный на продажу товар, указывая цену (Bid), за которую он готов его купить (но не ниже текущей цены)
Система: По окончанию торгов, выполняет транзакцию продажи товара покупателю, назначившему максимальную цену.
Сценарии:
- Выставление товара на аукцион: Название товара, начальная цена, ether-адрес продавца
- Добавление покупателем заявку на покупку: адрес аукциона, адрес покупателя, цена (покупателя). Цена должна быть выше, чем текущая (начальная). В случае успеха, цена становится текущей.
- Исполнение аукционов, для которых закончилось время торгов:
- Перевод суммы ether (стоимости товара) от покупателя продавцу.
- Отметить аукцион, как исполненный
Замечания к реализации:
- Возможно реализовать в виде одного контракта (Marketplace), в котором будет хранится информация по всем аукционам, либо в виде двух контрактов (Marketplace, Auction), где Marketplace хранит список текущих активных аукционов, а на каждый аукцион создается экземпляр контракта Auction, содержащий всю логику.
- Так как контракт не может вызвать сам себя по таймеру, исполнение аукционов нужно делать внешним вызовом, выполняемым некоторым служебным сервисом. Сервис не должен знать о логике контрактов, датах итп, достаточно вызвать marketplace.execute() без параметров.
Предлагаемый план работ:
Фаза 1. Уточнение требований и проектирование - совместное обсуждение, вопросы преподавателю. Результат: зафиксированные интерфейсы контракта, структуры данных и продуманная логика работы отчета.
Фаза 2. Разработка и тестирование логики контракта(ов).
- регистрация нового аукцина
- регистрация заявки
- исполнение аукциона
Фаза 3. Заполнение данными, тестирование контракта, разработка отчета
На обсуждение:
Как смарт-контракт может обеспечить успешное выполнение аукциона (наличие необходимых средств у покупателя)?