Новости Golos•Core. ТЗ на реализацию фичи по Воркерам. Сценарии.
Добрый день!
Команда Golos•Core рада поделиться последними новостями разработки блокчейн.
Сегодня речь пойдет о реализации фичи воркеров, на которой настаивало сообщество, и за которую проголосовало большинство топ-делегатов и членов комьюнити. Как уже известно, сторонний разработчик Денис @denis4inet присоединился к нам для выполнения задания на условиях баунти размером примерно 60 тыс. GOLOS. Напомним, что данная сумма как и конечные трудозатраты в самом начале работ сложно спрогнозировать точно. Поэтому мы будем двигаться спринтами, уточняя по результатам каждого дальнейшие трудозатраты и ожидания по конечным срокам реализации фичи.
Основная цель этого поста - максимально проинформировать пользователей, описать возможные технические вопросы и привести детализированные сценарии с роудмапом. Ниже мы представляем техническое задание, описывающее бизнес-логику процесса работы этой фичи. Она ценна как смарт-контракт и, конечно же, как часть реализации ХФ. При разработке фичи одним из важных моментов, которые мы стремились закрепить, было обеспечение контроля качества разработки (через ТЗ и оценку качества готовой работы). Для наглядности и лучшего иллюстрирования сценариев мы использовали вспомогательные схемы. Просьба к сообществу свои идеи по улучшению схемы высказывать в комментариях.
ТЗ на разработку воркеров
Просим обратить ваше внимание на то, что любое ТЗ может быть скорректировано по результатам анализа и сопоставления различных имеющихся или предлагаемых моделей воркеров в разных блокчейн-системах.
Источники пополнения денежных средств пула воркеров:
- Внешний вызов из эмиссии;
- Добровольные вклады от спонсоров.
Сценарий №1 - Задача: от предложения на разработку от комьюнити до сдачи готовой работы
Сценарий №2 - Задача: сдача готовой работы
Сценарий №1
1. Поступление предложения от активного члена сообщества (например, от делегата, или воркера, или любого другого пользователя):
a. Поступление предложения от активного члена сообщества по реализации какой-либо функциональности, за счет средств, выделяемых из пула.
b. Голосование и комментирование предложения членами сообщества:
- Предложение собирает положительные и отрицательные отзывы сообщества. Для упрощения модели отзывы не имеют веса;
- Срок голосования определяется параметрами контракта (по умолчанию 1 неделя, что соответствует окну выплат в Голосе);
- Голосование членов сообщества необходимо для сортировки предложений на стороне клиента, но оно не подразумевает ограничений на голосование за выполнение работ.
c. Автор может удалить свое предложение, если это предложение еще не получило ни одного одобрения.
d. Переход на стадию составления технического задания.
2. Поступление предложения от спонсора:
a. Поступление предложения от спонсора по реализации какой-либо идеи по улучшению функционирования системы.
b. Блокировка (“замораживание”) поступивших от спонсора средств на специальном счете выполнения задачи.
c. Голосование и комментирование предложения членами сообщества:
- Предложение собирает положительные и отрицательные отзывы сообщества. Для упрощения модели отзывы не имеют веса;
- Срок голосования определяется параметрами контракта (по умолчанию 1 неделя, что соответствует окну выплат в Голосе);
- Голосование сообщества нужно для сортировки предложений на стороне клиента. Но оно не накладывает ограничений на голосование за выполнение работ.
d. Спонсор может удалить свое предложение, если это предложение еще не получило ни одного одобрения. Замороженные средства вернутся на счет спонсора.
e. Переход на стадию составления технического задания.
Следуя предложениям, отобранным путем голосования, появляется возможность составить техническое задание.
3. Составление технического задания:
a. Внутри предложения открывается возможность подать заявку на составление технического задания и методику приемки работ за вознаграждение из пула:
- Объем технического задания зависит от сложности реализации предложения;
- Заявка должна содержать сроки на составление технического задания, и предполагаемые сроки на реализацию задания воркером;
- Заявка должна содержать информацию о предполагаемой стоимости на составление технического задания и реализацию задания воркером;
- Заявка должна содержать информацию о возможности выплаты вознаграждения равными частями в течении заданного интервала.
b. Голосование делегатов за предложение происходит через голосование по заявкам на составление технического задания. Каждый голос делегата должен сопровождаться пояснением решения:
- Одобрение заявки на составление технического задания. Когда будет набрано необходимое количество голосов (50% + 1 от количества делегатов) в поддержку создания технического задания, стадия рассмотрения предложения будет считаться завершенной и задача составления технического задания будет отдана выбранному кандидату;
- Отказ в рассмотрении предложения. Когда будет набрано необходимого количество голосов (50% +1 от количества делегатов), не поддерживающих предложение, в реализации предложения будет отказано;
- Изменение делегатом собственного мнения (не более 1 раза). Делегат может отозвать свое решение, которое может повлиять на итоговый результат рассмотрения заявки;
- Задержка в принятии решения. Делегат может обратиться к кандидату на составление технического задания с просьбой уточнения какой-либо части заявки, прежде чем данный делегат примет свое решение;
- По истечении определенного времени предложение будет удалено и будет осуществлен возврат заблокированных (“замороженных”) средств спонсора.
c. Блокировка (“замораживание”) части средств пула, выделенных на:
- Разработку технического задания;
- Выполнение работ и составление отчета о проделанной работе.
d. Составление и публикация технического задания.
e. Переход на стадию поиска воркера на выполнение технического задания.
4. Выполнение работ:
a. Поступление предложений на выполнение технических заданий от воркеров. Предложение воркера должно содержать информацию:
- Сроки выполнения;
- Сумма оплаты;
- Дополнительная информация - например, резюме кандидата в свободной форме.
b. Рассмотрение составителем технического задания предложений на выполнение работ:
- Составитель технического задания может назначить себя в качестве исполнителя технического задания;
- Составитель технического задания может выделить задачу выбранному воркеру.
c. Возможно дополнительное поступление средств от спонсоров на выполнение задания:
- Перевод части выделенных на выполнение задания средств в пуле из заблокированного (“замороженного”) состояния в свободное;
- Блокировка (“замораживание”) поступивших от спонсоров средств на специальном счете выполнения задачи.
d. Выполнение задания воркером.
e. Воркер периодически публикует результаты своей работы:
- Дата публикации;
- Краткое описание.
f. В процессе выполнения работы делегаты могут проголосовать с пояснениями (50% +1 от количества делегатов) за удалении предложения как невыполненного и разблокирования средств в пуле вознаграждений.
g. Принятие работы составителем технического задания. Составление и публикация акта о приемке выполненной работы.
h. Переход на стадию выплаты вознаграждения.
5. Выплата вознаграждения:
a. Подписание делегатами акта о приемке работы. Возможные действия делегатов:
- Одобрение. Когда будет набрано необходимое количество подписей (50% +1 от количества делегатов) в акте за принятие работы, наступит стадия выплаты вознаграждений;
- Отказ. Если будет набрано необходимое количество подписей (50% +1 от количества делегатов) в акте против принятия работы, то в выплате вознаграждения будет отказано и денежные средства будут возвращены в пул вознаграждений, а также на счета спонсоров;
- Задержка в принятии решения. Делегат может обратиться с просьбой уточнения какой-либо части акта, прежде чем данный делегат примет свое решение.
b. В случае принятия делегатами выполненной работы, выплата за работу и составление технического задания осуществляется из пула вознаграждений в соответствии с графиком утвержденных платежей или частично - из “замороженных” средств спонсоров, частично из пула вознаграждений в соответствии с графиком утвержденных платежей.
Сценарий №2
1. Подача заявки на оплату готовой работы:
a. Поступление предложения от члена сообщества по оплате какой-либо функциональности за счет средств, выделяемых из пула. Предложение должно содержать полную информацию:
- Тип: Готовая работа или Техническое задание;
- Акт о выполненных работах;
- Аккаунт воркера;
- Сумма оплаты;
- Сроки оплаты. Платеж может быть выполнен равными частями в течении некоторого промежутка времени.
b. Голосование и комментирование заявления членами сообщества:
- Предложение собирает положительные и отрицательные отзывы сообщества. Для упрощения модели отзывы не имеют веса;
- Срок голосования определяется параметрами контракта (по умолчанию 1 неделя, что соответствует окну выплат в Голосе);
- Голосование сообщества нужно для сортировки предложений на стороне клиента. Но оно не накладывает ограничений на голосование за выполнение работ.
c. Автор может удалить свое предложение, если это предложение еще не получило ни одного одобрения.
d. По окончанию голосования сообществом заявление переходит на стадию выплаты вознаграждения.
2. Выплата вознаграждения:
a. Подписание делегатами акта о приемке работы. Возможные действия делегатов:
- Одобрение. Когда будет набрано необходимое количество подписей (50% +1 от количества делегатов) в акте за принятие работы, наступит стадия выплаты вознаграждений;
- Отказ. Если будет набрано необходимое количество подписей (50% +1 от количества делегатов) в акте против принятия работы, то в выплате вознаграждения будет отказано и денежные средства будут возвращены в пул вознаграждений, а также на счета спонсоров;
- Задержка в принятии решения. Делегат может обратиться с просьбой уточнения какой-либо части акта, прежде чем данный делегат примет свое решение.
b. В случае принятия делегатами выполненной работы, выплата за работу и составление технического задания осуществляется из пула вознаграждений в соответствии с графиком утвержденных платежей или частично - из “замороженных” средств спонсоров, частично из пула вознаграждений в соответствии с графиком утвержденных платежей.
Схемы бизнес-логики процесса работы фичи воркеры:
Цветами обозначены:
Cиний - выбор дальнейших действий;
Зеленый - основные действия, совершаемые группой пользователей;
Желтый - потоки средств;
Пунктир вокруг блока - действие, которое не фиксируется в чейне.
Предлагаем вам следить за процессом выполнения данной задачи через специальную отведенную доску zenhub
Автор статьи и приведенных схем- @andreypf,
team leader команды разработки Golos•Core
Каналы коммуникации с Golos•Core
- https://t.me/goloscoretc (решение технических вопросов, связанных с работой блокчейн, нод, api и др.)
- https://t.me/joinchat/BLwf_A118xQ57nsM1Q4MPA (канал для вноса предложений от комьюнити, обсуждение перехода на кодовую базу EOS)
- https://t.me/golos_tools (решение вопросов по различным интерфейсам и дополнительным инструментам, создаваемым Golos•Core)
- https://t.me/goloscore_analytics (решение вопросов по работе экономики блокчейн, статистическим экономическим данным, аналитике данных)
- https://t.me/goloscoretech (новостной канал, с актуальной информацией от Golos•Core)
Мы будем очень рады, если вы поддержите делегата @goloscore. Заходите на страничку https://golos.io/~witnesses и проголосуйте за делегата Golos•Core
Спасибо за внимание и хорошего дня!
С уважением,
Команда Golos•Core: @korpusenko, @andreypf, @maslenitsa, @muhazokotuha, @zxcat, @mariadia, @annaeq, @anazarov79, @kaynarov, @s-medvedev