Отчет команды Golos•Core по выполненной работе за период с 28.01 по 08.02.19 гг.
Уважаемые делегаты и члены коммьюнити!
Очередной двухнедельный спринт подошел к концу, в связи с чем команда Голос Кор спешит вас проинформировать о результатах за этот период.
Вчера состоялся технический дискорд, посвященный CyberWay (ознакомиться с записью встречи можно здесь). В начале следующей недели наша команда выпустит пост по итогам встречи для закрепления данного материала.
CyberWay
Расширение функциональных возможностей и тестирование смарт-контрактов Голоса
Завершенные задачи:
Реализована процедура выплаты вознаграждения делегаторам в соответствии со стратегией при закрытии поста.
https://github.com/GolosChain/golos.contracts/issues/353В смарт-контракте
social
реализована проверка на существование аккаунтовblocking
иpinning
в методахblock
иpin
соответственно. Доработка позволяет блокировать действия для несуществующих аккаунтов.
https://github.com/GolosChain/golos.contracts/issues/420
https://github.com/GolosChain/golos.contracts/issues/421Доработан механизм поиска постов в части хэширования ключевых значений. Доработка позволила сократить время на поиск постов.
https://github.com/GolosChain/golos.contracts/issues/428Доработан смарт-контакт управления для исключения дублирующих вызовов изменения прав доступа.
https://github.com/GolosChain/golos.contracts/issues/35Из структуры
message
смарт-контракта вестинг удалено неиспользуемое поле (для экономного расхода ресурса памяти).
https://github.com/GolosChain/golos.contracts/issues/447Реализовано автоматическое добавление реферера в список бенефициаров при публикации поста рефералом. Это дает рефереру возможность получать часть вознаграждения за каждый пост, написанный привлеченным им авторам. Доля вознаграждения выплачивается в соответствии с условиями реферальной программы
https://github.com/GolosChain/golos.contracts/issues/349.
Задача In Progress:
- Добавление номера блока при создании поста, для возможности дублирования permlink пользователем.
https://github.com/GolosChain/golos.contracts/issues/429.
Стабилизация кода БЧ CyberWay
Завершенные задачи:
Обновлен код (перенесены изменения) до версии EOSIO.CDT 1.5.
https://github.com/GolosChain/cyberway.cdt/issues/35
В обновленную версию CTD добавлены небольшие правки в смарт-контракты.
https://github.com/GolosChain/golos.contracts/issues/442Обновлен код блокчейна CyberWay (перенесены изменения) до версии EOSIO 1.6
https://github.com/GolosChain/cyberway/issues/252Реализована возможность редактировать системные таблицы из кода смарт-контрактов. Данная функциональность позволяет существенно расширить возможности блокчейна по реализации логики выбора блок-продюсеров, а также по распределению ресурсов bandwidth` на уровне смарт-контрактов без использования встраиваемых (instrinsic) функций с данной логикой на уровне БЧ.
https://github.com/GolosChain/cyberway/issues/256.
Предоставление в пользование ресурсов блокчейна
Завершенные задачи:
В блокчейне реализованы следующие встроенные-функции (intrinsic):
set_bw_limit
;
get_bw_limit
;
commit_bw
.
Данные функции используются провайдером в смарт-контракте для установки значений ресурсовbandwidth
, которые он предоставляет пользователю.
https://github.com/GolosChain/cyberway/issues/201.Доработан смарт-контракт
vesting
. Доработка позволяет выделить ресурсыbandwidth
, необходимые для выполнения виртуальной операцииrequestbw
провайдера, непосредственно из предоставляемых провайдером ресурсовbandwidth
https://github.com/GolosChain/cyberway/issues/22.Добавлены смарт-контракты провайдеров
bandwidth
для демонстрации работы операцииrequestbw
(в качестве примеров).
https://github.com/GolosChain/cyberway.cdt/issues/33.
Задачи In Progress:
Добавлена виртуальная операция
provideram
, позволяющая провайдеру предоставлять пользователю свою память для хранения его данных (например, по аналогии с веб-сайтом golos.io, на котором размещаются посты своих пользователей).
https://github.com/goloschain/cyberway/issues/248Добавлены встроенные-функции (intrinsic func.), позволяющие смарт-контракту выбирать память конкретного провайдера из числа провайдеров, готовых предоставить свою память для хранения данных пользователя.
https://github.com/goloschain/cyberway/issues/269.
Реализация правил вознаграждения блок-продюсеров
Завершенная задача:
- В stake-контракт добавлена возможность изменения параметров прокси; реализовано автоматическое прекращение проксирования при нарушении условий.
https://github.com/GolosChain/cyberway.contracts/issues/76.
Поддержка доменных имен
Завершенная задача:
- Внутренние actions (newusername, newdomain, passdomain, linkdomain, unlinkdomain), не требующие наличия смарт-контракта, перенесены из системного аккаунта в cyber.domain.
https://github.com/GolosChain/cyberway/issues/232
https://github.com/GolosChain/cyberway.contracts/issues/73.
Интеграция Event Engine c Golos.io
Завершенные задачи:
Написан прототип прослойки между нодой cyberway и брокером сообщений. Доработка позволяет принимать на вход сообщения event engine и публиковать их на сервер NATS Streaming в один из каналов, на которые подписываются получатели (сервисы Golos.io).
https://github.com/GolosChain/cyberway.notifier/issues/2Изменен формат вывода выполняющихся действий смарт-контрактов при отправке сообщений в Event Engine. Сейчас они отправляются в виде линейного списка в порядке, которым выполняются ядром блокчейна. Данная доработка позволяет упростить фильтрацию и обработку сообщений клиентами.
https://github.com/GolosChain/cyberway/issues/259Реализован запуск Event Engine и брокера сообщений при запуске тестнета.
https://github.com/GolosChain/cyberway/issues/263Реализована обработка секции с описанием событий, которые формирует смарт-контракт при установке нового ABI-описания в сериализатор объектов abi_serializer.
https://github.com/GolosChain/cyberway/issues/246Добавлена фильтрация событий, которые отправляет Event Engine клиентам. Пользователь может указать в конфигурационном файле имена контрактов, для которых необходимо посылать события.
https://github.com/GolosChain/cyberway/issues/260.
Удаление режима “БОГ” из CyberWay
Завершенные задачи:
Из логики (форка EOS) удалены участки текста программы, реализующие “белые”, “серые” и “черные” списки с именами аккаунтов. “Белые” и “черные” списки предназначались для блокирования блок-продюсерами аккаунтов, действия контрактов или ключи. “Серые” списки позволяли ограничивать используемые ресурсы аккаунтов, чьи имена находились в этих списках.
https://github.com/GolosChain/cyberway/issues/26Удалена поддержка рикардианских контрактов (раньше их можно было добавлять в abi-структуру), ограничивающих децентрализацию системы.
https://github.com/GolosChain/cyberway/issues/129
А также:
https://github.com/GolosChain/cyberway.cdt/issues/42 — удаление из CDT
https://github.com/GolosChain/cyberway.contracts/issues/80
https://github.com/GolosChain/golos.contracts/issues/452.
Задача In Progress:
- Переименование системного контракта eosio в cyber.
https://github.com/GolosChain/cyberway/issues/251.
Запуск тестнета с несколькими блок-продюсерами (multinode)
Задачи на review:
В докер-контейнер cyberway добавлены скрипты, выполняющие запуск всех необходимых для работы сервисов
https://github.com/GolosChain/cyberway/issues/277Реализован скрипт для автоматизации развертывания тестнета из докер-контейнеров. Данный скрипт позволяет выполнить запуск всех необходимых сервисов, загрузку смарт-контрактов и первоначальное наполнение данными из базы данных Голоса.
https://github.com/GolosChain/golos.contracts/issues/431.
Стабилизация кода
Завершенные задачи:
- Прогон тестов системных смарт-контрактов добавлен в CI при каждом коммите
https://github.com/GolosChain/golos.contracts/issues/430.
Задачи по текущей цепочке
Воркеры
Завершенные задачи:
В смарт-контракт воркеры добавлена операция, позволяющая автору ТЗ назначать исполнителя (воркера) на данное ТЗ. Операция позволяет также автору ТЗ отстранить назначенного воркера от ТЗ, а также принять отказ самого воркера.
https://github.com/GolosChain/golos/issues/1029В смарт-контракт воркеры добавлены операции, позволяющие получать и удалять промежуточный результат по выполнению ТЗ.
https://github.com/GolosChain/golos/issues/1030Добавлена новая версия chain properties - chain_properties_20.
https://github.com/GolosChain/golos/issues/1060В смарт-контракт воркеры добавлены API-функции для получения списка промежуточных результатов по выполнению ТЗ. Добавлены необходимые для этого индексы в метод
worker_intermediate_index
.
https://github.com/GolosChain/golos/issues/1027
В смарт-контракте воркеры доработан алгоритм по пополнению фонда воркеров. Стали голосуемыми следующие три параметра:
- процент от фонда ревардов за контент;
- процент от фонда вестингов;
- процент от фонда реварда делегату.
Проценты, выбранные делегатами, вычитаются из этих трех фондов с каждым блоком и добавляются в фонд воркеров. Дополнительно устранены баги вcomment_reward
, которые были выявлены в процессе тестирования изменений в рамках данной задачи.
https://github.com/GolosChain/golos/issues/1061
В смарт-контракте воркеры реализован алгоритм выплаты авторам ТЗ и исполнителям (воркерам) работ по ТЗ. В соответствии с алгоритмом выплаты вознаграждений автору и воркеру осуществляются частями с определенным интервалом между ними. Размер платежей и интервал их выплат устанавливает автор ТЗ (до того, как ТЗ будет одобрено). https://github.com/GolosChain/golos/issues/1073
В смарт-контракте воркеры реализован механизм подсчета доходов (в фонде воркеров) и расходов (на создание, выполнение ТЗ и принятие результатов работы) за следующий месяц. Доходы и расходы - это два поля в dgp. Они используются для того, чтобы запретить одобрение результатов по новым ТЗ, если на оплату старых не хватает средств.
https://github.com/GolosChain/golos/issues/1083.
Задачи In Progress:
Добавление в cli_wallet методов, оборачивающих все операции, связанные с воркерами. Методы упрощают отправку операций.
https://github.com/GolosChain/golos/issues/1028Добавить ограничения на время голосования за аппрув/дисаппрув ТЗ
https://github.com/GolosChain/golos/issues/1063.
Каналы коммуникации с 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: @andreypf, @korpusenko, @maslenitsa, @muhazokotuha, @zxcat, @annaeq, @anazarov79, @kaynarov, @s-medvedev, @eugin, @dedbaraded, @jimak.