Система инвайт-кодов (ваучеров), процессинг внутри блокчейна VIZ
Всем привет!
Возвращаемся с последними новостями. В коде VIZ пополнение, теперь у нас есть процессинг инвайт-кодов. Или, как их любят называть в интернете — ваучеры. Да, да, прямо в блокчейне.
Как это работает
Пользователь генерирует приватный ключ и производный от него публичный ключ.
Выполняет операцию create_invite, фиксируя в нем ликвидные токены VIZ и передавая публичный ключ.
Владелец приватного ключа может выполнить 2 операции на выбор, для активации ваучера: claim_invite_balance или invite_registration. В качестве доказательства он предоставляет приватный ключ, соответствующий записанному публичному в блокчейне.
В случае операции claim_invite_balance весь баланс токенов VIZ закрепленных за ваучером будут переданы названному аккаунту.
Операция invite_registration наоборот, позволяет зарегистрировать новый аккаунт и передать ему весь баланс ваучера в SHARES.
Для того, чтобы выполнить операцию мог сторонний участник (без существующего аккаунта) — создан отдельный аккаунт invite, с известным всем active ключом: 5KcfoRuDfkhrLCxVcE9x51J6KN9aM9fpb78tLrvvFckxVV6FyFW.
Таким образом любой участник сети может самостоятельно выпустить ваучеры с произвольным количеством токенов VIZ без создания дополнительного процессинга по их использованию. Можно подарить их, раздать на конференции или продавать на торговых площадках интернета.
Дополнительно про API
В плагин social_network добавлено 3 API вызова:
- get_invites_list — получить массив id инвайт-кодов, зарегистрированных в блокчейне по статусу. Статус бывает: 0 — рабочий инвайт-код (ожидает владельца приватного ключа), 1 — активированный инвайт-код (операцией claim), 2 — активированный инвайт-код с помощью регистрации нового аккаунта.
- get_invite_by_id — получить подробную информацию про инвайт-код по его id;
- get_invite_by_key — получить подробную информацию про инвайт-код по публичному ключу (можно использовать как предварительную проверку на содержимое ваучера и его статус);
Все операции уже доступны в документации к VIZ-World-js библиотеке (npm пакет viz-world-js). Ну а мы пока ждем анонимного запуска сети ;)