Если что-то не работает
Баннер регистрации не пропадает
Заголовок раздела «Баннер регистрации не пропадает»Узел не находит себя в StarRegistry. Проверьте по порядку:
- Транзакция
registerпрошла — найдите её в обозревателе блоков. - Зарегистрированный адрес подписанта совпадает с адресом в баннере, символ в символ.
BLOCKCHAIN_RPC_URLуказывает на ту сеть, где лежат контракты.- Дальше смотрите логи контейнера. Таймауты значат, что узел так и не достучался до RPC.
Перезапускать после регистрации не нужно. Узел сам следит за блокчейном и подхватит свой starId.
«No active Control Plane»
Заголовок раздела ««No active Control Plane»»Stargate не может достучаться ни до одного Control Plane по gRPC. Самые вероятные причины — первыми:
- Control Plane работает, но эндпоинт не опубликован — это кнопка Set Endpoint.
- Эндпоинт указывает на адрес, который не отвечает, или на закрытый порт. Проверьте:
grpcurl <host>:<port> singula.admin.v1.AdminService/GetHealth. - У подписанта Control Plane закончился ETH.
- В сети сейчас никто не отвечает.
В последнем случае с вашей стороны делать нечего. Управление звёздами через блокчейн работает, пропадает только живая статистика.
Control Plane не принимает узел
Заголовок раздела «Control Plane не принимает узел»В логе узла Control Plane отказывает в регистрации со словами registration is not signed by its signer key. При регистрации узел доказывает, что держит ключ подписанта своей звезды, и узел с Control Plane должны одинаково понимать, как это доказательство устроено. Если один из них на старом образе, они расходятся. Обновите узел до текущего singulanetwork/star:alpha и перезапустите — личность сохранится.
Узел работает, но сессий нет
Заголовок раздела «Узел работает, но сессий нет»Для тихой сети это нормально.
Узел выбирается по загрузке, свежести heartbeat и случайной добавке — но не по тому, где клиент: этого Control Plane не знает и не спрашивает. NODE_COUNTRY_CODE важен, только когда клиент сам попросил эту страну.
Так что «нет сессий» значит, что их сейчас мало во всей сети, а не что у вас неудачный регион.
Узел возит трафик, но ничего не зарабатывает
Заголовок раздела «Узел возит трафик, но ничего не зарабатывает»Поищите события Pushed в EpochAttestations от подписанта вашего Control Plane. Если трафик идёт, а событий нет, интервалы отбрасываются, а не отправляются. Обычно причина одна из этих:
- У подписанта Control Plane нет ETH. Ему нечем отправить транзакцию.
- Узел не подписывает свои интервалы. Перед отправкой Control Plane просит каждый узел подписать свои интервалы и отбрасывает то, за что узел не поручился. Ровно так бывает, когда узел и Control Plane на разных версиях: узел не узнаёт запрос и молчит.
- Трафик не засчитался. Время копится, пока с последнего засчитанного чекпоинта не пройдёт 64 КиБ, а если за 10 минут столько не набралось, оно сгорает. Простаивающий туннель не зарабатывает, так задумано.
Клиент не может открыть анонимную сессию
Заголовок раздела «Клиент не может открыть анонимную сессию»Отказ называет причину, вот этими словами. У каждой своё решение:
| Текст отказа | Что делать |
|---|---|
access proof does not verify, permission proof does not verify | Сверьте circuitVersion() со своими артефактами, глубину дерева 16 и упаковку точек |
... against a subscriber set this CP does not recognise | Ваш корень Меркла устарел — пересоберите его из реестра и попробуйте снова |
this access claim has already been used | Нуллификатор этого слота потрачен, возьмите следующий |
access quota for this epoch is exhausted | Все слоты этой эпохи у этого Control Plane потрачены. У другого Control Plane своя квота, или дождитесь следующей эпохи |
an anonymous session needs a permission from this window's packet | Сначала возьмите разрешение на это окно — см. разрешения |
this access slot has spent its node-time budget | Узловое время слота израсходовано, возьмите следующий |
this permission of the subscription is already taken for this window | Этот номер в этом окне уже взят — другим вашим устройством или раньше этим же. Попросите другой номер; ответ отмечает этот случай полем index_taken |
the permission index is beyond the published count | Номера идут от 0 до опубликованного издателем числа минус один |
this permission has already been spent | Его держит сессия, которая ещё идёт. Возьмите другое из своих разрешений; это освободится примерно через минуту после конца сессии |
no key is published for that issuer and window | У издателя нет ключа на это окно — см. ниже |
anonymous access is not enabled on this CP, permissions are not enabled on this Control Plane | В директории нет SubscriberRegistry, или Control Plane запущен с SINGULA_PROTOCOL_ADDRESS=off и без SUBSCRIBER_REGISTRY_ADDRESS |
Если клиент вообще не может взять разрешение, проверьте, есть ли у издателя ключ на текущее окно: VoucherKeyRegistry.getEpochKey(issuerStarId, epoch). Ключ можно опубликовать только на будущую эпоху, поэтому у впервые запущенного Control Plane ключа нет до начала следующей.
Откаты контрактов
Заголовок раздела «Откаты контрактов»SignerAlreadyRegistered
Заголовок раздела «SignerAlreadyRegistered»Этот адрес подписанта уже принадлежит другой звезде, а один адрес может подписывать только за одну. Возьмите новую личность или вызовите updateSigner на звезде, у которой он сейчас.
Звезда пытается действовать как Control Plane без этой роли, или кто-то задаёт эндпоинт звезде, которая не Control Plane. Проверьте текущую роль: её не выдавали, отобрали или звезда теперь Banned.
NotStarOwner
Заголовок раздела «NotStarOwner»Транзакция идёт не с того адреса, который записан в реестре как владелец. Подключите этот кошелёк.
EpochNotFuture
Заголовок раздела «EpochNotFuture»Кто-то публикует ключ подписи на текущую или прошедшую эпоху. VoucherKeyRegistry принимает только будущие эпохи — именно поэтому ключ можно проверить. Дождитесь следующей эпохи: Control Plane публикует ключи на сутки вперёд.
GasBudgetExceeded
Заголовок раздела «GasBudgetExceeded»Control Plane израсходовал свой бюджет газа на эту эпоху. Бюджет у каждого Control Plane свой и обнуляется при смене эпохи.
UnactivatedLimitExceeded
Заголовок раздела «UnactivatedLimitExceeded»На адресе получателя уже десять неактивированных Orbit. Активируйте какие-то или отправьте на другой кошелёк.
Сервер или горячий ключ взломан
Заголовок раздела «Сервер или горячий ключ взломан»Деньги звезды в безопасности: награды идут владельцу, а контракты берут получателя из реестра.
- Выключите взломанный сервер.
- Поднимите чистый и возьмите новый адрес подписанта из баннера при запуске.
- С холодного кошелька нажмите Rotate signer на карточке звезды в Stargate или вызовите
updateSignerнапрямую. Старый ключ отрезается в той же транзакции.
У подписанта узла ETH нет вовсе. У подписанта Control Plane его немного — см. пополнить подписанта, — так что выводить со старого адреса нечего.
Подробнее про два ключа — в главе звёзды и роли.
