Добрый день!
Команда 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.id/~witnesses и проголосуйте за делегата Golos•Core
Спасибо за внимание и хорошего дня!
С уважением,
Команда Golos•Core: @korpusenko, @andreypf, @maslenitsa, @muhazokotuha, @zxcat, @mariadia, @annaeq, @anazarov79, @kaynarov, @s-medvedev
@goloscor
я не понял, как формируется пул.
Вижу спонсора, ок. А если спонсора нет, то фонд из эмиссии не будет что ли пополняться?
@litrbooh
Пул вознаграждений предлагается наполнять из эмиссии на постоянной основе по следующим правилам:
Текущее распределение:
Допустим делегаты выставят 10% в пул воркеров:
@andreypf
Ну, если вы не хотите дармоедов с СГ лишить халявы, то такой вариант тоже ОК.
Будет ли это внесено в ТЗ?
@litrbooh, почему бы ещё не пополнять фонд для воркеров апвотами одобряющих?
Предложения оформляются постом с техаккаунта, за пост апают, авторсаие попадпют в фонд выплат.
@litrbooh
там - внешний вызов из эмиссии (не поняла, что это), + спонсор
@litrbooh в самом начале написано:
Источники пополнения денежных средств пула воркеров:
Внешний вызов из эмиссии;
Добровольные вклады от спонсоров.
Я тупой, я не понимаю, что значит внешний вызов из эмиссии. Это постоянно капающий % в фонд, или вызов - как временная акция под заявку
@mariadia что такое внешний вызов из эмиссии?
Ок, уточню спецом - если не отдельная эммисия, то придется кому-то меньше дать, кому?
Кстати, воркеры обсуждались для текущего бч, мне воркеры для несуществующего геоса не !интересны!!
Жуть какая. Сложно сильно. Оно конечно правильно может быть, с точки зрения норм каких нибудь госорганов, но как мне кажется тут перебор со стрелочками. Может это описание только такое сложное. Мне кажется процедура должна быть простой и понятной. Сделал дело - гуляй смело.
@denis4inet будет работать по этой схеме?
@ropox К сожалению, чем проще изложено задание, тем больше возникает вопросов для его решения. И зачастую задание выполняется либо частично, либо вообще не то, чего ожидалось получить.
«Сделал дело» - вот это и хочется увидеть, то ли воркер сделал, что от него требовалось.
В сжатом описании подаваемого предложения на реализацию зачастую все смотрится понятно и просто, а в действительности (когда более детально ознакомишься с реализацией) оказывается, что многие важные моменты в предложении упущены и никак не отражены. И что без учета этих моментов предложение является не актуальным. Воркер сделал дело в том виде, в котором оно было изначально озвучено и получил деньги. А работа оказалась не нужной.
Вот поэтому и предлагается создание ТЗ – детализация предложения по его реализации с обязательным описанием критерия, по которому задание считается выполненным.
Да, это несколько усложнено, но не позволит вносить в систему малопродуманные решения.
@ropox
а мне понравились схемы. все понятно.
@ropox а что значит сделал дело - гуляй смело) а если не сделал? а как должно описываться то самое дело? а как вообще должно приходить это дело чтобы его делать? как должна работать схема движения денег....
Вы самую простую модель в ишью видели? Чем она не устроила? Нафига столько бесполезных этапов?
@goloscore Очень подробно проработанное описание, и учитывает множество различных кейсов. Поддерживаю почти все, что здесь написано.
Единственное, что меня смущает - это цифра 50% + 1. Если имеются в виду голоса топ-делегатов, то это значит, что пока 11 делегатов не одобрят нововведение, принято оно не будет и оплата произведена также не будет. Это может сильно затягивать сроки получения оплаты за проделанную воркером работу и тем самым демотивировать воркеров.
Возможно стоит оставить эту цифру, но предусмотреть какое-то ограничение по времени (2 недели?) достаточное для того, чтобы делегат смог изучить нововведение и одобрить его, но в то же время не затягивал с принятием этого решения бесконечно долго.
@pmartynov
согласен, да. У нас очень пассивные делегаты, ограничение по времени логично ввести. Но тогда должно быть голосование За и Против. Возможность голосовать как ЗА, так и против не прописано.
@andreypf, @mariadia
Такое ощущение что схема неоправданно усложнённая. Давайте ещё запилим тут Госзакупки, с тендерами, котировками и аукционами. Этап ТЗ и непосредственно работы можно объединить. Если надо, можно подать 2 рабочих предложения - сперва на разработку ТЗ, и второе - непосредственно на работу. Саму работу так же можно разбить на этапы, и на каждый этап оформить рабочее предложение.
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
vict0r, semasping, ladyzarulem, yudina-cat, polyakov, sterh, mryabinin, irimeiff, aleos, brainmechanic, alexxela, batya3000
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас:
@goloscore, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующей категории:
@goloscore Поддерживаю.
P. S. Скоро придётся делегатам веб-панель управления делать :-). А то устанут всё это делать через консоль..
@goloscore
уточните плиз, правильно ли я поняла
составитель тз и воркер - это разные люди? почему? разве воркер не может сам составить ТЗ? или просто он будет выступать в двух лицах в этом случае?
то есть, к примеру, чел видит предложение и понимает, что он может это сделать. он быстро описывает, что конкретно надо делать и как он это видит, и подает заявку. в случае одобрения, выполняет ее.
и еще вопрос - к примеру, не может ли возникнуть такая ситуация, что кто-то предложит и напишет отличное тз (планируя его реализовывать), а потом по какой-либо причине реализация достанется другому человеку? к примеру, если первый знает, что эта работа стоит 10 долларов, и описывает ее для себя, а затем приходит второй, видит отличное ТЗ и говорит, я сделаю это за 5 долларов. и реализация попадает второму?
может, я чего-то усложняю, но хочу разобраться как это может быть в реале
@ladyzarulem составитель ТЗ, по сути, это менеджер, но это может быть и сам разработчик. Т.е. в зависимости от ситуации это может быть как один, так и разные люди. Разработка должна быть описана, чтобы понимать что делать и чтобы легче было принимать. По сути разработчик ТЗ должен быть приемщиком, который на выходе подтвержает готовность работ и передает на голосование (на схеме это отображено).
@mariadia
спасибо. вот как это организуется в реале, интересно...
Ппц, первый и второй этапы следует обьединить.
И главный вопрос - почесу так сложно??
Пока воркер не получил ни одной ввплаты предложение должно удаляться либо воркером либо спонсором.
@goloscore 60 000 голосов баунти....ух!...широкие у вас жесты...но у меня одно мааааленькое замечание...а нельзя ли "платить" воркерам не голосами, а силой голоса?...
@smotritelmayaka
Тут вообще всю систему пересмотреть надо. Если реализуют воркеров тогда и все остальные разработчики включая и всю компанию КФ с дочками. Должны перейти на такой вариант работы. Иначе вся эта возня с воркерами неочем.
@goloscore, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество полученных голосов
Вы можете нажать на бейдж, чтобы увидеть свою страницу на Доске Почета.
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Чтобы поддержать вашу работу, я также проголосовал за ваш пост!