Ошибка «Попытка перевести недоступные средства» - PullRequest
1 голос
/ 17 февраля 2020

У меня проблема с «быстрым» переводом активов через несколько аккаунтов. Например, у меня есть 3 счета: A, B (без активов), C. Я перевожу некоторое количество активов с А счета на B, затем ищу транзакцию «A-> B» (/ Transactions / Info / {ID}). Если транзакция была найдена, я перевожу ту же сумму с B на счет C. В большинстве случаев все в порядке, но иногда я получаю сообщение об ошибке:

StateCheckFailedException: проверка состояния не удалась. Причина: попытка перевести недоступные средства: применение транзакции приводит к отрицательному балансу актива IssuedAsset (...) до (как минимум) временного отрицательного состояния, текущий баланс равен 0 ...

Если Я буду ждать 10 секунд, например, передача «B -> C» будет успешной. Итак, похоже, что мне следует подождать некоторую синхронизацию остатков на счетах в узле.

Есть ли в моем случае какой-нибудь гарантированный способ сделать перевод "B -> C", не ожидая неопределенного времени ? Присутствие транзакции «A-> B» в блокчейне иногда не работает.

Я использую свой собственный узел для трансляционных транзакций. Конфигурация узла является настройкой по умолчанию. Версия 1.1.7

1 Ответ

1 голос
/ 24 февраля 2020

Это связано с микроблоками. Микроблоки перевели средства, но еще не подтвердили их окончательно и, следовательно, еще не полностью в блокчейне. Если вы хотите быть полностью уверенным, я бы сказал, подождите 1 блок (или 60 секунд). Но даже тогда это не всегда может быть подтверждено, поскольку даже у wavechain есть моменты, когда он перегружается тысячами tx в течение нескольких минут.

То же самое с другими действиями, такими как создание активов и c.

...