GOLOS·CORE

В процессе эксплуатации релиз-кандидата HardFork HF·18 были выявлены и устранены недостатки и ошибки в программном коде продукта.

На этой странице:
Выявленные и устраненные недостатки и ошибки в работе релиз-кандидата HardFork HF•18


Устраненная ошибка в логике обновления тегов

После снятия ограничений на редактирование постов и комментариев появилась возможность манипулирования популярностью тегов. Недостаток проявлялся в том, что теги тех постов, по которым уже были завершены выплаты, можно было далее продвигать по популярности.

Устранение ошибки в логике работы программы в части обновления тегов обеспечило устранение данного недостатка.

Устраненная ошибка в выдаваемом результате метода get_discussions_by_promoted

Метод get_discussions_by_promoted выдавал результат с пустым полем, в котором должен был список спонсируемых постов.

Устранение ошибки в проверке условия включения поста в список спонсируемых обеспечило выдачу правильного результата метода get_discussions_by_promoted.

Устраненный недостаток в операции делегирования, причиной которого являлся устаревший метод old_update_account_bandwidth

В операции делегирования часть функций выполнял метод old_update_account_bandwidth. Недостаток в работе этого метода заключался в том, что он не учитывал делегированную Силу Голоса и во многом дублировал логику работы метода update_account_bandwith, создавая при этом дополнительную нагрузку на серверы. В отличие от update_account_bandwith, который проверяет значение bandwidth пользователя только во время подписания транзакции, метод old_update_account_bandwidth выполнял такую проверку для каждой транзакции уже подписанных блоков.

Для устранения этого недостатка был удален устаревший метод old_update_account_bandwidth и внесены изменения в методы, возвращающие поле account. В их результатах поля вида new_XXX_bandwidth преобразованы в поля вида XXX_bandwidth. Также их результаты дополнены полем lifetime_market_bandwidth. Кроме этого метод get_account_bandwidth прекратил возвращать результат, если параметр bandwidthType принимает одно из двух значений — “old_market” или “old_forum”.

Устраненная причина замедления в работе системы, вызванная загруженностью серверов

Отсутствие ограничения на количество вложенных proposal транзакций позволяло создавать усложненную их структуру, содержащую избыточное количество вложений. Это вызывало избыточную нагрузку на работу серверов, блокированию их доступа и, следовательно, к замедлению работы системы.

Для устранения этого недостатка добавлено ограничение на количество вложенностей в транзакциях, которое должно быть не более двух.

Добавленный в cli_wallet метод update_chain_properties

Для упрощения процесса голосования в cli_wallet добавлен метод update_chain_properties, избавивший делегатов от необходимости менять ключ подписи блоков при выставлении параметров, определяемых голосованием.

Ограничение в использовании метода witness_update_operation

В версии HF·18 обновление параметров, определяемых голосованием, выполняется методом chain_properties_update_operation. Метод witness_update_operation в версии HF·18 прекращает выполнять данную операцию и будет использоваться только для изменения URL и ключей делегатов.

Ограничение вызвано тем, что метод chain_properties_update_operation не позволяет в перспективе расширять список определяемых голосованием параметров.

Измененное значение мультипликатора, задаваемое по умолчанию

Значение по умолчанию для мультипликатора GOLOS_CREATE_ACCOUNT_WITH_GOLOS_MODIFIER уменьшено с 30 до 1. Это значение может также устанавливаться голосованием через chain_properties_update_operation. В случае отсутствия голосования его значение принимается за единицу.

Это изменение введено для того, чтобы избежать скачкообразного изменения стоимости создания аккаунта с выпуском версии HF·18.

Примечание:
Решением делегатов эта правка была отменена. Вместо мультипликаторов используются абсолютные значения параметров, определяемые в ходе голосования делегатов.

Добавленный экспериментальный модуль Mongo

В основную ветвь разработки добавлен экспериментальный модуль Mongo с целью ускорения его разработки. На настоящем этапе разработки модуль не обеспечивает загрузку всех данных из блокчейна в Mongo.


results matching ""

    No results matching ""