Как добавить posting ключ
Про ключи
Постинг-ключ — более ограниченный ключ, чем активный. У него нет доступа к средствам на вашем кошельке (например, им невозможно подписать транзакцию с трансфером средств), поэтому при обычной работе с приложением он безопаснее.
Если постинг-ключ окажется скомпрометирован, злоумышленник не получит доступ к вашим активам. А если потерять активный или ключ владельца — можно прощаться с токенами.
Как добавить
В эксплорере https://explorer.cyberway.io можно выполнить любую транзакцию, в том числе добавление и настройку ключей.
Для добавления posting
-ключа достаточно выполнить три действия в блокчейне:
- добавить сам ключ;
- разрешить этим ключом выполнять действия в смарт-контракте публикации (
gls.publish
) — это для создание сообщений, голосования; - разрешить выполнять действия в социальном смарт-контракте (
gls.social
) — это нужно чтоб закреплять посты, делать реблоги.
Важно: предполагается, что читатель знает, где посмотреть свой accountId, и у него есть приватная и публичная часть ключей, которые он хочет добавить. Также для выполнения транзакции будет нужен приватный активный ключ. Для тех кто не знает, возможно появятся ссылки/подсказки в комментах.
Удобного интерфейса, чтоб сделать всё это одной кнопкой пока нет, поэтому будем формировать транзакцию вручную в любом редакторе текста, а потом выполним в эксплорере.
Формирование транзакции
Сперва я опишу действия, которые войдут в транзакцию, затем покажу транзакцию целиком, потом расскажу, как её подготовить и отправить в сеть с помощью эксплорера.
Действия
Создание ключа
Первое действие (action
) выглядит так:
{
"account": "cyber",
"name": "updateauth",
"authorization": [{ "actor": "<ваш-аккаунт>", "permission": "active" }],
"data": {
"account": "<ваш-аккаунт>",
"permission": "posting",
"parent": "active",
"auth": {
"threshold": 1, "accounts": [], "waits": [],
"keys": [{ "key": "<ваш-ПУБЛИЧНЫЙ-постинг-ключ>", "weight": 1 }]
}
}
}
Оно служит для создания и изменения «ключей» (точнее, авторити, но сейчас это не важно). Здесь необходимо прописать свой accountId в полях <ваш-аккаунт>
и публичный ключ в соответствующем месте.
От этого публичного ключа у вас должна быть приватная часть, иначе им невозможно будет воспользоваться.
Связывание ключа с контрактами
Второе и третье действия проще, выглядят так (во третьем gls.publish
заменяется на gls.social
):
{
"account": "cyber",
"name": "linkauth",
"authorization": [{ "actor": "<ваш-аккаунт>", "permission": "active" }],
"data": {"account": "<ваш-аккаунт>", "code": "gls.publish", "type": "", "requirement": "posting"}
}
Это действие разрешает постинг-ключу работать в контрактах приложения. Здесь тоже нужно прописать свой аккаунт CyberWay в двух местах.
Готовим транзакцию
Вся транзакция целиком выглядит так:
{
"actions": [
{
"account": "cyber",
"name": "updateauth",
"authorization": [{ "actor": "<ваш-аккаунт>", "permission": "active" }],
"data": {
"account": "<ваш-аккаунт>",
"permission": "posting",
"parent": "active",
"auth": {
"threshold": 1, "accounts": [], "waits": [],
"keys": [{ "key": "<ваш-ПУБЛИЧНЫЙ-постинг-ключ>", "weight": 1 }]
}
}
},
{
"account": "cyber",
"name": "linkauth",
"authorization": [{ "actor": "<ваш-аккаунт>", "permission": "active" }],
"data": {"account": "<ваш-аккаунт>", "code": "gls.publish", "type": "", "requirement": "posting"}
},
{
"account": "cyber",
"name": "linkauth",
"authorization": [{ "actor": "<ваш-аккаунт>", "permission": "active" }],
"data": {"account": "<ваш-аккаунт>", "code": "gls.social", "type": "", "requirement": "posting"}
}
]
}
- Скопируйте этот фрагмент текста и вставьте в редакторе текста. Все скобки и кавычки важны.
- Замените все строчки
<ваш-аккаунт>
на ваш аккаунт в CyberWay. (Это не то же самое, что имя пользователя на Голосе, например, для @zxcat аккаунт будетxhdtonx5zvnd
.) - Вставьте публичный ключ в соответствующее место.
- Скопируйте получившийся текст.
- Перейдите на https://explorer.cyberway.io/sign?trx=
- В адресной строке браузера вставьте скопированный текст транзакции после
trx=
и нажмите Enter.
Пример транзакции, а вот тут она выполнилась.
Подписываем и отправляем транзакцию
Если всё сделано правильно, транзакция появится на странице. Если появится не транзакция, а ошибка, значит вероятнее всего где-то потерялись кавычки/скобки, внимательно проверьте, что в тексте транзакции заменено только то, что надо.
Прокрутите страницу вниз, там есть поле для ввода активного ключа. Введите приватный ключ и нажмите кнопку Sign transaction
.
Если всё сделано правильно, транзакция уйдёт в сеть, и появится сообщение Transaction signed
.
Всё, теперь у вас есть постинг-ключ.