HF27: Новые возможности

Делегирование СГ с правом на эмиссию

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

У получателя появляется своего рода автоматически и ежечасно наполняемый персональный пул для вознаграждений с TIP-баланса (за счет эмиссии на спонсорское делегирование СГ).

В методе get_accounts были добавлены поля: emission_received_vesting_shares (сколько СГ с правом на эмиссию было получено) emission_delegated_vesting_shares (сколько делегировано другим)

Доработана операция delegate_vesting_shares_with_interest, где поле extensions расширяется параметром interest_direction (is_emission = true).

Эмиссия за стейкинг в СГ на TIP-баланс

Так как с момента появления CLAIM-баланса невостребованная пользователями часть эмиссии (что отправлялась в фонд сообщества) снизилась с ~12% до менее 3%, а также решения большинства проявлять свою «активность» ботами, были внесены правки.

После ХФ начисление эмиссии за стейкинг токенов в Силе Голоса станет автоматическим, но с поступлением на TIP-баланс (шаг в сторону развития донатов, сервисов, игр).

Создание аккаунтов переводом токенов

В блокчейне добавится ещё один способ создания аккаунта, переводом токенов на спецаккаунт newacc.

Это позволит купив токены на бирже или обменнике вывести их сразу для анонимного создания аккаунта. Например, пользователь отправляет 1000 токенов с заметкой/memo к переводу НовоеИмя:ПубличныйКлюч (vasya:GLS6XuUhWu1LmCbBmQX8c5861Q3L1VzKALVqy1JcYzECxQKGbR4q), в БЧ создается аккаунт с этим ключом для owner/active/posting/memo прав.

С суммы перевода вычитается комиссия, установленная делегатами (как видно на explorer.golos.id сейчас Account Creation Fee = 25.000 GOLOS), остальные токены начиcляются в Силу Голоса аккаунта.

Для тех кто не готов проверять доступность имени, генерировать пару (приватного + публичного) ключей, регистрация переводом токенов будет добавлена и в сервисе Golos Auth, тут и проверка имени, генерация ключа, подсказки...

Комиссии за создание аккаунтов

Доработаны параметры комиссии за создание аккаунтов в блокчейне, устанавливаемые делегатами.

Теперь fee/комиссия будет поступать в фонд сообщества на развитие проекта, вне зависимости от способа:

  • операция account_create или перевод на newacc (параметр комиссии Account Creation Fee)

  • операция account_create_with_delegation (параметр Create Account Min Golos Fee)

  • операция account_create_with_invite (параметр Min Invite Balance)

Заморозка «забытых» аккаунтов

После обсуждений вопроса о сбросе аккаунтов (описанного в заявке), реализован более «мягкий» вариант - заморозка аккаунтов.

Он не коснется ~912 пользователей с более 100 токенами в Силе Голоса и ~7745 пользователей с более 100 токенами на ликвидном балансе. Достаточно иметь на ликвидном балансе или СГ аккаунта 100 и более токенов.

При этом около 160 тысяч аккаунтов будут «заморожены», что даст оптимизацию внутренних процессов на нодах блокчейна (циклы начисления эмиссии, автопонижения СГ, конвертации GBG и пр.), а также снижение рисков спам-активности с «забытых» аккаунтов.

В БЧ добавлена виртуальная операция списания токенов за активацию аккаунта account_freeze (по ней же можно отслеживать кто «возвращается»):

"account_freeze",
{
    "account": "abc",
    "frozen": false,
    "unfreeze_fee": "25.000 GOLOS"
}

В методе get_accounts добавляются поля:

"frozen": true (заморожен ли)
"freeze": {
    публичные ключи...
    "hardfork": 27 (в каком ХФ)
    "frozen": "2022-08-04T12:38:00" (когда)

Доработан метод lookup_accounts, в котором по умолчанию будет выгружаться список без «замороженных», снижая дерганье аккаунтов в запросе с ~170 до ~10 тысяч.

Замена recovery_account gc-regfund

С учетом реализации интерфейса по восстановлению аккаунтов в случае их кражи и сброса ключей, установленный в 21 транзитном хардфорке мультисиг-аккаунт @gc-regfund в ожидаемом 27 ХФ будет изменен на аккаунт @recovery (для возможностей оперативного восстановления).

Для желающих выбрать иной recovery_account, подсказки были описаны тут.

Прочие правки

  • Если на момент завершения недельного окна выплаты у аккаунта отрицательная репутация, выплата из общего пула за посты/комментарии не производится.

  • Исправлено сжигание токенов на TIP-балансе спецаккаунта @null.

  • Доработаны и добавлены автотесты на нодах по подписи операций, цикле конвертации GBG, начисления процентов в сейфе, выплатах при отрицательной репутации и другие...

Функционал личной блокировки

Вероятно многие сталкивались, что даже заблокировав пользователя он порой всё равно проявляется в комментариях, в заметках к трансферам или донатам, мессенджере... Обновленный функционал должен это исправить.

После ХФ на уровне блокчейна если пользователь-1 добавил пользователя-2 в свой черный список, от него не пройдут сообщения в мессенджере, трансферы, донаты (в заметках к которым хейтеры нередко «достают» или отправляют по копейке), игнор упоминаний @ника, а комментарии к постам/ответам станут платными.

Тут и небольшой эксперимент «токенизации» (о чем отмечалось в заявке), добавлен делегатский параметр unwanted_operation_cost (цена 1 «нежелательной» операции, по умолчанию 100 GOLOS), токены поступают на баланс получателя операции, плата за внимание :-)

Для информации держателей АПИ-нод, добавлен новый плагин account_relations (пригодится тем, кто использует блоги или форумы со своими нодами), в нём методы list_account_relations и get_account_relations.

Поступления на TIP-баланс (в случае комментариев при ЧС, а в перспективе и сообщений мессенджера) отображаются в кошельке, добавлена виртуальная операция:

"unwanted_cost",
{
    "blocker": "lex",
    "blocking": "abc",
    "amount": "100.000 GOLOS",
    "target": ""
}

Вместо ignore в операции custom_json (с которым порой были ошибки), для настроек личного ЧС в блокчейне добавлена операция:

"account_setup",
{
    "account": "lex",
    "settings": [
        [
            0,
            {
                "account": "abc",
                "block": true
            }
        ]
    ],
    "extensions": []
}

Опция «не беспокоить» (на базе ЧС)

Реализована и опция для «особых интровертов», а скорее на случай «каруселей хейта» (когда создают новые и новые аккаунты, а игра в персональную блокировку надоедает). Опция позволит временно включать блокировку всех пользователей с репутацией ниже 65.

В методе get_accounts добавляется поле "do_not_bother": true, операция вкл-выкл опции выглядит так:

"account_setup",
{
    "account": "lex",
    "settings": [
        [
            1,
            {
                "do_not_bother": true
            }
        ]
    ],
    "extensions": []
}

«Токенизация» при отрицательной репутации

В дополнение к правкам об отмене выплат с общего пула по постам/комментариям в случае отрицательной репутации, тяряет практический смысл ограничения на поток контента.

Вспоминая о желании избавления от запретов и пути к токенизации, добавлен новый делегатский параметр unlimit_operation_cost, по умолчанию 10 GOLOS. Цена 1 операции при отрицательной репутации (пост или комментарий или лайк/дизлайк).

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

Добавлена виртуальная операция unlimit_cost (для отображения в истории кошелька затрат на «анлимитные» операции).

"unlimit_cost",
    {
        "account": "xel",
        "amount": "10.000 GOLOS",
        "limit_type": "negrep",
        "target_type": "comment",
        "id1": "xel",
        "id2": "re-lex-donaty-v-messendzhere-rasshirenie-dlya-brauzera-golos-keychain-i-prochie-pravki-20220824t202918070z",
        "id3": "lex",
        "id4": "donaty-v-messendzhere-rasshirenie-dlya-brauzera-golos-keychain-i-prochie-pravki"
    }

«Токенизация» при превышении лимитов

Не менее логичное изменение, и в вопросе общих лимитов, сейчас пользователи могут написать только 4 поста, 40 комментариев и 80 лайков/дизлайков в сутки, после чего при операции возникнет ошибка.

Параметр unlimit_operation_cost (описанный выше для действий при отрицрепе) распространяется и на эти операции сверх лимита.

В методе get_accounts АПИ добавляются поля:

"services": {
  "post": "0.000 GOLOS",
  "comment": "0.000 GOLOS",
  "vote": "0.000 GOLOS"
}

В которых и обновляется «ценник» на операции при достижении лимитов, установленных имеющимися делегатскими параметрами.

Last updated