В процессе эксплуатации релиз-кандидата HardFork HF·18 были выявлены и устранены недостатки и ошибки в программном коде продукта.
На этой странице:
Выявленные и устраненные недостатки и ошибки в работе релиз-кандидата HardFork HF•18
После снятия ограничений на редактирование постов и комментариев появилась возможность манипулирования популярностью тегов. Недостаток проявлялся в том, что теги тех постов, по которым уже были завершены выплаты, можно было далее продвигать по популярности.
Устранение ошибки в логике работы программы в части обновления тегов обеспечило устранение данного недостатка.
Метод 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
, избавивший делегатов от необходимости менять ключ подписи блоков при выставлении параметров, определяемых голосованием.
В версии 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
.