active
.fee
, устанавливаемого по результатам голосования делегатов. Параметр fee
показывает изначальный базовый баланс кошелька аккаунта, необходимый для его существования в системе.fee
. Для этого с баланса кошелька создателя аккаунта снимается криптовалюта в виде Голоса и зачисляется на баланс кошелька нового аккаунта в виде Силы Голоса.bandwidth
, устанавливающий пропускную способность аккаунта — количество операций, выполняемых пользователем за определенный период времени. Этот параметр зависит только от баланса Силы Голоса. Наличие в кошельке других видов криптовалюты (Голоса и Золотого) не оказывает на него влияния. Этот параметр ограничивает активность пользователя и не позволяет ему слишком часто создавать комментарии, принимать участие в голосовании или выполнять какие-либо другие операции.active
. Созданный аккаунт может иметь ключи owner, active
, posting
и memo
.active
. Поскольку этот ключ предназначен для выполнения наиболее ответственных операций, его использование для редактирования часто используемых полей профиля не всегда было приемлемым.posting
, active
, owner
и memo
), а в другую — с менее значимыми, но часто используемыми (аватар, пол, местонахождение и пр.). Процедура изменения полей первой группы сохранена и возможна только с использованием ключа active
. Процедура редактирования полей второй группы изменена и возможна с использованием ключа posting
, что является наиболее приемлемым для пользователя.witness_update
, с помощью которой определялись значения некоторых параметров делегатами Голоса по результатам голосования. В этот перечень входили следующие параметры:
1. account_creation_fee
— размер комиссионных отчислений, требуемых на создание аккаунта без делегирования;
2. maximum_block_size
— максимальный размер блока блокчейна;
3. sbd_interest_rate
— процент, начисляемый на SBD.witness_update
не позволяло расширить перечень таких параметров.chain_properties_update
, которая поддерживает более расширенный перечень параметров, значения которых определяются голосованием делегатов Голоса, и позволяет наращивать его в будущем. В новый перечень входят следующие параметры:
1. account_creation_fee
— размер комиссионных отчислений, требуемых на создание аккаунта без делегирования;
2. maximum_block_size
— максимальный размер блока блокчейна;
3. sbd_interest_rate
— процент, начисляемый на SBD;
4. create_account_min_golos_fee
— минимальный размер комиссионных отчислений в криптовалюте Голос, требуемых на создание аккаунта с делегированием;
5. create_account_min_delegation
— устанавливает минимально возможное количество Силы Голоса при создании аккаунта с делегированием;
6. min_delegation
— устанавливает минимально возможное количество Силы Голоса для делегирования на аккаунт;
7. create_account_delegation_time
— устанавливает минимально возможное время «заморозки» (в секундах) делегированной Силы Голоса при создании аккаунта с делегированием.active
.account_history
. Недостаток заключался в том, что метод, непосредственно выполнявший данную функциональность, размещался в другом плагине database_api
. Методы, выполнявшие операции видов 1 и 2 также размещались в плагине database_api
. Для вызова каждого их трех методов необходимо было включать плагин account_history
, что создавало дополнительную нагрузку на сервер и на потребляемую память, и, следовательно, отрицательно влияло на быстродействие системы.database_api
в плагины в соответствии с их функциональностью.account_history
, обеспечивающий данную функциональность. Методы, используемые для индексирования операций в блоках и транзакциях были перемещены в новый плагин operation_history
. Это позволило логически сконцентрировать компоненты, обеспечивающие включение индексов и самих операций, по которым могут отдельно быть получены списки операций по блокам, транзакциям или по аккаунту. Теперь для получения списка операций в блоках и транзакциях достаточно будет включить плагин operation_history
. Для получения более расширенной информации по аккаунтам необходимо подключить account_history
. Исключение лишних операций индексирования позволило снизить нагрузку на сервер и память и, соответственно, повысить производительность системы.SocialNetwork
, где также инициировался поиск по дополнительным индексам. Последнее приводило к тому, что пользователю наряду с полезной также выдавалась не представляющая ему интерес информация. Из-за наличия в выдаче большого объема ненужной информации увеличивался размер файла разделяемой памяти, что негативно отражалось на производительности системы.SocialNetwork
в отдельный плагин Tag
. Дополнительные индексы для сортировки по тэгам создавались только в этом плагине.SocialNetwork
сохранились методы, обеспечивающие обращение к корневым элементам для получения, например, контента, целиком вложенного дерева, списка активных голосов и др.vote_limit
, с помощью которого пользователь может ограничить получаемый список проголосовавших. Этот параметр позволяет уменьшить размер отправляемого от сервера ответа. При этом в ответе добавляется дополнительное поле active_votes_count
, информирующее об общем количестве проголосовавших без получения списка целиком.private_message
. Данная доработка обеспечивает следующие возможности:
1. выделять интересующие пользователя личные сообщения из общего потока исходящих или входящих сообщений с указанием даты их поступления;
2. просматривать личные сообщения в режиме постраничного вывода на экран;
3. ограничить количество поступающих сообщений.shared_memory.bin
и предназначенная для хранения актуальных данных состояния системы;
2. цепочка из упакованных в определенном порядке подписанных блоков, размещенных в файле block_log
.block_log
инициирует значительное количество системных вызовов, в том числе: открытие файла, поиск необходимой позиции и считывание данных из файла. Одновременно с этими операциями может выполняться запись информации в конец файла, требующая от системы подобных действий — переоткрытие файла, поиск конечной позиции в файле и запись в файл.block_log
как по чтению, так и по записи вызывали блокирование доступа к файлу, что негативно влияло на производительность сервера. С целью устранения такого недостатка в HF-18 была реализована новая технология, обеспечивающая одновременный доступ к файлу block_log
по чтению без замедления работы сервера. Блокирование доступа к файлу block_log
происходит только во время выполнения операции записи.