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