Отчет команды Golos•Core по выполненной работе за период с 10 по 20 декабря 2018 г. Результаты голосования по итогам Дискорд от 14.12.18.
Содержание:
- Результаты деятельности команды Golos•Core за период с 10 по 21 декабря 2018 г;
- Результаты голосования по итогам конференции в Discord, состоявшейся 14 декабря 2018 г.
Расширение функциональных возможностей и тестирование смарт-контрактов Голоса
Завершенные задачи:
- Реализован новый механизм настроек в смарт-контракте публикаций, позволяющий изменять в том числе индивидуальные настройки
https://github.com/GolosChain/golos-smart/issues/255; - Реализован новый метод
reblog
. Метод обеспечивает проверку существования поста по значениям полей author иpermlink
https://github.com/GolosChain/golos-smart/issues/223; - В смарт-контракт
social
добавлены операцииupdatemeta
иdeletemeta
для сохранения информации о профилях пользователей (метаданные аккаунтов) в базу данных.
Реализованы следующие операции:
- Проверка наличия права пользователя на изменение/удаление метаданных;
- Cинхронизация операций изменения/удаления метаданных с блоками;
- передача и сохранение в базе данных необходимого набора полей метаданных.
https://github.com/GolosChain/golos-smart/issues/261
https://github.com/GolosChain/golos-smart/issues/262.
- Устранена необходимость в обязательном порядке указывать опциональные поля в аргументах действия при его отправке через cleos.
https://github.com/GolosChain/cyberway/issues/149; - Добавлена установка всех утилит и библиотек при сборке Docker-контейнера, содержащего cyberway. Доработка позволяет использовать данный контейнер для сборки тестов смарт-контрактов
https://github.com/GolosChain/cyberway/issues/145; - Реализован Dockerfile, описывающий сборку образа содержащего Contract Development Toolkit. Данный образ содержит утилиты и библиотеки, необходимые для сборки смарт-контрактов и тестов для них
https://github.com/GolosChain/cyberway.cdt/issues/4; - Реализована сборка Docker-контейнера, содержащего системные смарт-контракты и смарт-контракты приложения Голос. Данный контейнер содержит собранные смарт-контракты и все необходимые файлы для запуска тестов
https://github.com/GolosChain/cyberway.contracts/issues/51
https://github.com/GolosChain/cyberway.contracts/issues/49
https://github.com/GolosChain/golos-smart/issues/180. - Написаны тесты на покрытие функционирования методов в части добавления и редактирования параметров в смарт-контракте вестинг
https://github.com/GolosChain/golos-smart/issues/337; - Добавлены новые записи рефералов в смарт-контракте рефералов с использованием юнит-теста
https://github.com/GolosChain/golos-smart/issues/345; - Реализована возможность использования отдельного контракта батарейки из смарт-контракта постинг. Вынесение батарейки в отдельный контракт позволило убрать ненужные зависимости между различными частями приложения (вестинг-контракт <--> постинг-контракт)
https://github.com/GolosChain/golos-smart/issues/237; - Реализовано ограничение на делегирование вестинга. Доработка повышает защиту от злоупотреблений делегированием (например, исключает возможность использования вестинга для апвоутов с последующей передачей его другому аккаунту и, далее, с того аккаунта повторно использовать делегированный вестинг)
https://github.com/GolosChain/golos-smart/issues/285.
Задачи на Review:
- Внесены изменения в тесты для смарт-контракта публикаций в соответствии с новым механизмом настроек для данного контракта
https://github.com/GolosChain/golos-smart/issues/359; - Реализована поддержка составных ключей во всех функциях поиска в CDT
https://github.com/GolosChain/cyberway.cdt/issues/11.
Доработка позволяет контрактам использовать составные (состоящие из нескольких полей) вторичные ключи, а также извлекать данные из таблиц как по полному составному ключу, так и по неполному (допускается указывать не все поля ключа).
Задачи In Progress:
- Добавлены новые методы для установки параметров делегатами в смарт-контракте рефералов. Написаны тесты на покрытие функционирования методов
https://github.com/GolosChain/golos-smart/issues/348; - Реализована передача
social
аккаунта используя новый механизм настроек смарт-контракта публикаций с возможностью изменения имени аккаунта
https://github.com/GolosChain/golos-smart/issues/354.
Повышение производительности системы. Выявление и устранение недостатков, замедляющих работу системы
Завершенные задачи:
- Сокращено количество преобразований данных при сохранении их в mongo_db
https://github.com/GolosChain/cyberway/issues/132
https://github.com/GolosChain/cyberway/issues/133.
Перед сохранением вmongo_db
данных форматовint128/uint128/time_point
необходимо было преобразовывать их в строковый формат для предварительной буферизации вvariant
, являющимся промежуточным звеном между multi_index, данными в байт-коде смарт-контракта и mongo_db. Доработка обеспечила буферизацию данных без применения строковых операций (являющимися относительно длительными); - Реализована возможность сохранять в
mongo_db
данные форматаuin64
без предварительного их преобразования в строковый формат
https://github.com/GolosChain/cyberway/issues/141.
Так какmongo_db
не позволяет сохранять данные в форматеuin64
, использовалась предварительная конвертация их в строковый формат. Доработка позволила отказаться от строковых (относительно медленных) операций и использовать для сохраненияuin64
форматdecimal128
.
Задачи In Progress:
- Проведен анализ текста программы с выявлением узких мест, влияющих на быстродействие CyberWay. Улучшен синтаксис и устранены ошибки в синтаксисе, влияющие на производительность системы
https://github.com/GolosChain/cyberway/issues/151.
Поддержка доменных имен
Завершенная задача:
- Реализована таблица для хранения доменных имён различного формата
https://github.com/GolosChain/cyberway/issues/136.
Задачи на Review:
- Реализованы таблица для хранения имён пользователей и механизм, позволяющий содержать имена пользователей в домене:
username@domain
/
https://github.com/GolosChain/cyberway/issues/147; - Реализованы механизмы, позволяющие передавать доменное имя от одного владельца к другому, а также подключать (и отключать) доменное имя к приложению (аккаунту)
https://github.com/GolosChain/cyberway/issues/137.
Задача In Progress:
- Implement method for convert domain name into account
https://github.com/GolosChain/cyberway/issues/138.
Наполнение тестовыми данными Testnet
Завершенная задача:
- Доработаны скрипты конвертации данных в части сохранения числовых данных (uint64, int128, uint128) в формате cyberway
https://github.com/GolosChain/golos-smart/issues/342.
ХФ: Сопровождение блокчейна
Завершенные задачи:
- Устранена ошибка в выдаче результатов API функций
get_discussion_by_XXX
(в полях предполагаемых выплат были пустые значения)
https://github.com/GolosChain/golos/issues/1005; - Устранена ошибка в выдаче результатов API функций
get_discussion_by_XXX
(в результатах отсутствовало поле репутацииauthor_reputation
)
https://github.com/GolosChain/golos/issues/1006; - По просьбе пользователей из результата функции
database_api::get_transaction_hex
при бинарной сериализации транзакции удалена сигнартура транзакции.
В описании проблемы требовалось добавитьchain_id
в результат бинарной сериализации. Поскольку данное значение уже имеется в ответе функцииdatabase_api::get_config
, значение не добавлялось к результатуget_transaction_hex
.
Также был реализован API методdatabase_api::get_transaction_digest
, результат которого может использоваться для формирования сигнатуры транзакции на клиентской стороне https://github.com/GolosChain/golos/issues/823. - Устранена ошибка, возникающая во время удаления устаревших данных в плагине
social_network
, из-за которой не выполнялся процессreplay
цепочки
https://github.com/GolosChain/golos/issues/1007; - Изменен метод сортировки строк таблицы
Consensus State
вexplorer.golos.io
. Раньше строки были упорядочены лексикографически (по алфавиту). После доработки строки сортируются (группируются) в соответствии с тематикой. Доработка позволяет более быстро анализировать содержимое таблицы.
ХФ 19.0: Написание тестов для регрессионного тестирования
Задача In Progress:
- Написаны тесты для API методов Голоса (количество покрытых тестами методов составило 78 %). Внесены изменения в prefiller.js.
https://github.com/GolosChain/Qa/issues/28.
Результаты голосования по итогам Дискорда от 14.12.18:
Благодарим всех делегатов за проявленную активность в голосовании и интерес к развитию блокчейна!
Кратко о результатах: 13 делегатов поддержали продолжение работ над платформой CyberWay параллельно с HF-20, 7 делегатов высказались за концентрирование усилий команды Golos Core над платформой CyberWay без проведения HF-20. Один делегат воздержался от голосования.
По шести фичам HF-20, вынесенным на голосование, делегатами поставлены следующие приоритеты:
- Воркеры для Golos (1.923076);
- Изменение принципа голосования за делегатов (2.384615);
- Исправление бага с окном выбора процента кураторской награды автором, обнаруженного после релиза ХФ-19 (2.692307);
- Снятие ограничения на максимальный процент отчислений в 80% на делегированную Силу Голоса (4.769230);
- Снятие ограничения на минимум в 25% на кураторскую награду (5.230769);
- Реализация варианта выбора процента кураторской награды куратором - функциональность, озвученная членом коммьюнити @Litrbooh перед релизом ХФ-19 (5.846153).
12 делегатов высказалось за принцип долевого голосования за делегатов. Данный принцип был представлен командой @newgolos. Делегат @vvk поддержал идею принципа конституционного большинства. 8 делегатов воздержались от голосования по данному вопросу.
С учетом мнения большинства делегатов команда Голос Кор берет в разработку задачи по CyberWay и HF-20. Ожидаемая дата реализации всех работ - конец февраля 2019 года (допускаются отклонения в одну-две недели).
Следить за реализацией задач команды Голос Кор можно на Гитхабе. Команда проинформирует делегатов и коммьюнити о специальной канбан-доске под HF-20 в ближайшее время виде отдельного поста.
Вопросы по задачам приветствуются в комментариях к этому посту.