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

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

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

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

В методе [get\_accounts](https://gapi.golos.today/api/database_api/get_accounts?ws=https%3A%2F%2Fapibeta.golos.today\&accountNames_0=abc) были добавлены поля:\
`emission_received_vesting_shares` (сколько СГ с правом на эмиссию было получено)\
`emission_delegated_vesting_shares` (сколько делегировано другим)

[Доработана](https://github.com/golos-blockchain/libs/commit/885a8cef2ad92f29df4e2c73b435f7828380d60c) операция `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](https://explorer.golos.id/) сейчас `Account Creation Fee = 25.000 GOLOS`), остальные токены начиcляются в Силу Голоса аккаунта.

Для тех кто не готов проверять [доступность](https://gapi.golos.today/api/database_api/get_accounts) имени, [генерировать](https://gapi.golos.today/utils/keys) пару (приватного + публичного) ключей, регистрация переводом токенов будет добавлена и в сервисе [Golos Auth](https://golos.app/register), тут и проверка имени, генерация ключа, подсказки...

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

Доработаны параметры комиссии за создание аккаунтов в блокчейне, [устанавливаемые делегатами](https://props.golos.today/chainprops).

Теперь fee/комиссия будет поступать в [фонд сообщества](https://golos.today/workers) на развитие проекта, вне зависимости от способа:

* операция `account_create` или `перевод на newacc` (параметр комиссии `Account Creation Fee`)
* операция `account_create_with_delegation` (параметр `Create Account Min Golos Fee`)
* операция `account_create_with_invite` (параметр `Min Invite Balance`)

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

После обсуждений вопроса о сбросе аккаунтов (описанного [в заявке](https://golos.today/@lex-escrow/zayavka-na-registraciyu-perevodom-dorabotku-komissii-sbros-akkauntov-pravki-servisa-registracii-khf27)), реализован более «мягкий» вариант - заморозка аккаунтов.

Он не коснется [\~912 пользователей](https://dpos.space/golos/top/gp/10) с более 100 токенами в Силе Голоса и [\~7745 пользователей](https://dpos.space/golos/top/golos/78) с более 100 токенами на ликвидном балансе. Достаточно иметь на ликвидном балансе **или** СГ аккаунта 100 и более токенов.

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

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

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

В методе [get\_accounts](https://gapi.golos.today/api/database_api/get_accounts?ws=https%3A%2F%2Fapibeta.golos.today\&accountNames_0=abc) добавляются поля:

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

Доработан метод [lookup\_accounts](https://gapi.golos.today/api/database_api/lookup_accounts?ws=https%3A%2F%2Fapibeta.golos.today\&limit=20), в котором по умолчанию будет выгружаться список без «замороженных», снижая дерганье аккаунтов в запросе с \~170 до \~10 тысяч.

## Замена `recovery_account` gc-regfund

С учетом реализации [интерфейса по восстановлению](https://golos.today/@lex/vosstanovlenie-dostupa-s-recovery-akkaunta-optimizaciya-delegatskikh-nod-pravki-registracii) аккаунтов в случае их кражи и сброса ключей, установленный в 21 транзитном хардфорке мультисиг-аккаунт [@gc-regfund](https://golos.today/@gc-regfund) в ожидаемом 27 ХФ будет изменен на аккаунт [@recovery](https://golos.today/@recovery) (для возможностей оперативного восстановления).

Для желающих выбрать иной `recovery_account`, подсказки были [описаны тут](https://golos.today/@lex/vosstanovlenie-dostupa-s-recovery-akkaunta-optimizaciya-delegatskikh-nod-pravki-registracii).

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

* Если на момент завершения недельного окна выплаты у аккаунта отрицательная репутация, выплата из общего пула за посты/комментарии не производится.
* Исправлено сжигание токенов на TIP-балансе спецаккаунта [@null](https://golos.today/@null).
* Доработаны и добавлены автотесты на нодах по подписи операций, цикле конвертации GBG, начисления процентов в сейфе, выплатах при отрицательной репутации и другие...

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

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

После ХФ **на уровне блокчейна** если `пользователь-1` добавил `пользователя-2` в свой черный список, от него не пройдут сообщения в мессенджере, трансферы, донаты (в заметках к которым [хейтеры](https://yandex.ru/search/?text=%D1%85%D0%B5%D0%B9%D1%82) нередко «достают» или отправляют по копейке), игнор упоминаний @ника, а комментарии к постам/ответам станут платными.

Тут и небольшой эксперимент «токенизации» (о чем отмечалось в [заявке](https://golos.today/@lex-escrow/zayavka-na-optimizaciyu-nod-dorabotku-delegirovaniya-vopros-claim-balansa-lichnyi-chs-v-blokcheine-i-prochee)), добавлен делегатский параметр `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": []
}
```

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

Реализована и опция для «особых интровертов», а скорее на случай «каруселей [хейта](https://yandex.ru/search/?text=%D1%85%D0%B5%D0%B9%D1%82)» (когда создают новые и новые аккаунты, а игра в персональную блокировку надоедает). Опция позволит временно включать блокировку **всех пользователей** с репутацией ниже 65.

В методе [get\_accounts](https://gapi.golos.today/api/database_api/get_accounts?ws=https%3A%2F%2Fapibeta.golos.today\&accountNames_0=abc) добавляется поле `"do_not_bother": true`, операция вкл-выкл опции выглядит так:

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

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

В дополнение к правкам [об отмене выплат](https://golos.today/@lex/izmeneniya-27khf-gotovy-v-testovoi-seti-chast-1#prochie-pravki) с общего пула по постам/комментариям в случае отрицательной репутации, тяряет практический смысл ограничения на поток контента.&#x20;

Вспоминая о желании избавления от запретов и пути к токенизации, добавлен новый делегатский параметр `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](https://gapi.golos.today/api/database_api/get_accounts?ws=https%3A%2F%2Fapibeta.golos.today\&accountNames_0=abc) АПИ добавляются поля:

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

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