Сначала восстановите точный пакет транзакций

Соберите исходные подписанные транзакции или их сохранённые байты — сериализованное представление, которое получила сеть. Для каждой запишите индекс в пакете, txID, тип, отправителя, допустимые раунды, комиссию и поле `Group`. Одной строки из кошелька мало: сеть оценивает полный упорядоченный набор. Перед передачей подписей ещё раз сверьте, что именно подписывает кошелёк.

Удалите `Group` из копий неподписанных транзакций, вычислите ID для того же порядка и сравните его с каждым исходным полем. Перестановка двух элементов, изменение комиссии, раунда, поля `Note` с заметкой или любого другого подписанного поля создаёт новый набор. Старые подписи к пересобранной группе не подходят.

После смены ключа используйте способ подписи, указанный в текущем состоянии аккаунта. Гайд про `auth-addr` помогает отделить ошибку подписанта от несовпавшего Group ID.

Два отказа выглядят похоже, но чинятся по-разному

Диагностическая карта atomic group
НаблюдениеЧто оно доказываетСледующая проверка
У элементов разные `Group` или пересчитанный ID не совпалПакет изменён либо собран в другом порядкеВернуться к одной неподписанной версии, назначить ID заново и собрать новые подписи
`confirmed-round` равен нулю, `pool-error` заполненЭтот узел удалил транзакцию из недавнего пула с указанной причинойСверить тот же пакет на другом синхронизированном узле и классифицировать текст ошибки
Симуляция вернула `failed-at`На снимке состояния выбранного раунда найден путь к ошибкеСвязать первый индекс с элементом группы; следующие индексы ведут к вложенной транзакции
Симуляция прошла, а отправка нетСостояние, подписи или настройки проверки различалисьСверить `last-round`, настройки симуляции (`overrides`), подписи, сеть и ответ отправки
Indexer нашёл группуГруппа уже вошла в подтверждённую историюНе пересылать её; проверить изменения нужных аккаунтов, активов и приложений
Диагностическая карта atomic group
Наблюдение
У элементов разные `Group` или пересчитанный ID не совпал
Что оно доказывает
Пакет изменён либо собран в другом порядке
Следующая проверка
Вернуться к одной неподписанной версии, назначить ID заново и собрать новые подписи
Наблюдение
`confirmed-round` равен нулю, `pool-error` заполнен
Что оно доказывает
Этот узел удалил транзакцию из недавнего пула с указанной причиной
Следующая проверка
Сверить тот же пакет на другом синхронизированном узле и классифицировать текст ошибки
Наблюдение
Симуляция вернула `failed-at`
Что оно доказывает
На снимке состояния выбранного раунда найден путь к ошибке
Следующая проверка
Связать первый индекс с элементом группы; следующие индексы ведут к вложенной транзакции
Наблюдение
Симуляция прошла, а отправка нет
Что оно доказывает
Состояние, подписи или настройки проверки различались
Следующая проверка
Сверить `last-round`, настройки симуляции (`overrides`), подписи, сеть и ответ отправки
Наблюдение
Indexer нашёл группу
Что оно доказывает
Группа уже вошла в подтверждённую историю
Следующая проверка
Не пересылать её; проверить изменения нужных аккаунтов, активов и приложений

Ответ `pending/{txid}` привязан к памяти конкретного algod. Ноль в `confirmed-round` и пустой `pool-error` означает только, что узел пока держит транзакцию; старую запись он может уже не помнить. Когда два RPC расходятся, сравните их текущие раунды и роль источника, а не выбирайте самый удобный ответ.

`failed-at` указывает путь, а не готовое объяснение

Запустите симуляцию точной группы и сохраните `last-round`, `failed-at`, `failure-message` и все настройки из `overrides`. Первый индекс `failed-at` — позиция транзакции верхнего уровня, причём счёт начинается с нуля. Если путь длиннее, следующие числа ведут к вложенной транзакции (inner transaction). Сопоставляйте ошибку с объектом по индексу, а не по имени кнопки или адресу получателя.

Что не переносится из симуляции автоматически

  • симуляция на свежем состоянии не воспроизводит старый отказ, если изменились баланс, ячейка хранения (`box`), остаток актива или параметры приложения;
  • `allow-empty-signatures` разрешает пустые подписи, `fix-signers` подставляет подписантов, а дополнительный лимит вычислений и доступ к неуказанным ресурсам меняют условия проверки; эти настройки нужно сохранить;
  • успешная симуляция не подтверждает будущую отправку и не заменяет поиск по подтверждённому реестру;
  • текст `failure-message` помогает найти условие, но исправление выбирают по полям именно этого элемента и состоянию его зависимостей.

Как доказать, что группа ничего не изменила

Пока окно валидности не закончилось, отсутствие в Indexer ещё не окончательный вывод: группа может оставаться в пуле. После `LastValid` проверьте каждый txID и общий `group-id` в правильной сети и диапазоне раундов. Ни один элемент отклонённой группы не должен появиться как отдельная подтверждённая транзакция.

Минимальный пакет доказательств

  • сеть, хеш упорядоченного набора, Group ID, все txID и допустимые раунды;
  • исходный ответ отправки или `pool-error`, а при симуляции — раунд снимка состояния и `failed-at`;
  • поиск всех txID и Group ID после завершения окна валидности;
  • целевые балансы, остатки активов, состояние приложения и его ячейки (`boxes`) на сопоставимых подтверждённых раундах до и после;
  • исправленная причина и новая группа с новым набором подписей, если повтор действительно нужен.

Не отправляйте пакет заново только из-за красного статуса в интерфейсе. После `LastValid` убедитесь, что группа не появилась в реестре и целевое состояние не изменилось. Лишь затем исправляйте найденную причину и собирайте новую группу с новыми подписями. Сохраните хеши, раунды и снимки состояния: по ним можно повторить проверку.

Источники

Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.

  1. Algorand Developer Portal — Atomic Transaction Groups Algorand Foundation · Проверено 25 августа 2026 г. в 09:18 GMT+5
  2. Algorand algod REST API — Simulate transaction Algorand Foundation · Проверено 25 августа 2026 г. в 09:18 GMT+5
  3. Algorand algod REST API — Pending transaction information Algorand Foundation · Проверено 25 августа 2026 г. в 09:18 GMT+5
  4. Algorand Indexer REST API — Search for transactions Algorand Foundation · Проверено 25 августа 2026 г. в 09:18 GMT+5
  5. Algorand Developer Portal — Transaction reference Algorand Foundation · Проверено 25 августа 2026 г. в 09:18 GMT+5
Материал носит информационный характер и не является индивидуальной рекомендацией. Криптоактивы связаны с риском волатильности, технических сбоев, хищения и полной потери средств.