Что такое долговечный nonce?
Долговечный nonce — это постоянное значение, хранящееся в специальном аккаунте Solana и позволяющее использовать транзакцию дольше обычного срока действия недавнего хеша блока.В стандартных транзакциях Solana указывается недавний хеш блока, действительный только в течение 150 слотов.Если транзакция не обрабатывается до истечения срока действия хеша, ее, как правило, нельзя успешно отправить повторно с тем же подписанным сообщением.Долговечный nonce заменяет этот краткосрочный хеш блока хранящимся значением, которое остается действительным, пока аккаунт nonce не будет обновлен или изменен иным образом.Поэтому долговечные nonce полезны для офлайн-подписания, отложенной отправки транзакций, многостороннего согласования, операций с холодным хранением, запланированных процессов и организаций, подписанты которых не могут одобрить транзакцию за короткий промежуток времени.В официальной документации Solana по долговечным nonce объясняется, что механизм устраняет стандартный срок действия в 150 слотов за счет использования значения nonce, хранящегося в ончейн-аккаунте.
Долговечный nonce не делает транзакцию бессрочно действительной при любых условиях.Транзакция становится недействительной, если сохраненный nonce изменился, аккаунт nonce закрыт, необходимые полномочия изменены или другая транзакция успешно использовала то же значение nonce.Почему срок действия транзакций Solana обычно истекает
Стандартная транзакция Solana содержит поле
В актуальном описании конвейера транзакций Solana указано, что обычный хеш блока принимается только в пределах максимального возраста обработки в 150 слотов.
Когда хеш блока устаревает, валидаторы отклоняют транзакцию до выполнения ее инструкций.Такое истечение срока защищает сеть от бессрочного повторного воспроизведения транзакций и ограничивает время, в течение которого валидаторы должны считать обычную подписанную транзакцию потенциально исполнимой.Это ограничение создает проблему, если на подписание требуется больше времени, чем остается до истечения срока действия хеша блока.Зачем нужны долговечные nonce
Некоторые транзакции с криптовалютой невозможно создать, согласовать и отправить в рамках короткого сеанса онлайн.Компании могут требоваться подписи сотрудников из нескольких стран.Казначейство может хранить ключи для подписания на изолированном компьютере, который никогда не подключается напрямую к интернету.Перед отправкой транзакции в рамках высокозащищенной операции могут потребоваться техническая, финансовая и комплаенс-проверки.В процессе работы с мультиподписью несколько аппаратных устройств могут подписывать одну транзакцию в разное время.Платежное приложение может формировать транзакции в один рабочий период, а отправлять их позднее.При использовании обычного недавнего хеша блока пришлось бы заново сформировать и подписать полное сообщение при каждом истечении его срока действия.Долговечный nonce позволяет сторонам подписать одно неизменное сообщение транзакции и отправить его после завершения стандартного периода действия хеша блока.Что такое аккаунт nonce?
Аккаунт nonce — это специальный аккаунт Solana, владельцем которого является System Program.В нем хранится состояние, необходимое для поддержки транзакций с долговечным nonce.В инициализированном аккаунте nonce хранятся публичный ключ полномочного лица, значение долговечного nonce и ставка комиссии в lamports за подпись, зафиксированная при последнем обновлении nonce.Полномочное лицо — это аккаунт, которому разрешено обновлять nonce, назначать нового полномочного владельца или выводить средства из аккаунта nonce.Значение долговечного nonce — это хеш, полученный из недавнего хеша блока и сохраненный для дальнейшего использования.Значение, связанное с комиссией, сохраняет сведения, необходимые для процесса расчета комиссии транзакции.Пока аккаунт nonce активен, на нем должно быть достаточно SOL для выполнения применимого требования освобождения от rent.Приложениям следует запрашивать у сети актуальный минимальный баланс, а не постоянно использовать расчетную сумму, зашитую в код.Долговечный nonce и недавний хеш блока
Недавний хеш блока получают из сети незадолго до подписания обычной транзакции.Он истекает по завершении ограниченного периода обработки в сети.Долговечный nonce записывается в ончейн-аккаунт и остается доступным, когда хеш блока, из которого он был получен, перестает быть недавним.Для обычной транзакции создавать или изменять аккаунт nonce не требуется.Транзакция с долговечным nonce должна ссылаться на аккаунт nonce и содержать специальную инструкцию для его обновления.Если пользователь может быстро подписать и отправить транзакцию, обычно следует использовать более простой обычный вариант.Долговечные nonce добавляют требования к управлению аккаунтом, подписанию, размеру транзакции, комиссиям и операционным процессам.Долговечный nonce и порядковый номер аккаунта
В разных криптовалютных системах термин nonce используется по-разному.В некоторых блокчейнах на основе аккаунтов применяется возрастающий номер транзакции аккаунта для упорядочивания транзакций и предотвращения их повторного воспроизведения.Долговечный nonce Solana — это не постоянно увеличивающийся счетчик транзакций, связанный с каждым кошельком.Это хеш, хранящийся в отдельном аккаунте System Program.Значение помещается в поле транзакции
Как работает транзакция с долговечным nonce
Сначала создается и инициализируется аккаунт nonce.Создатель назначает полномочное лицо, которое будет управлять последующими операциями с nonce.Приложение считывает значение долговечного nonce из аккаунта.Оно создает транзакцию, используя это значение в поле
Первой инструкцией в списке транзакции указывается
Инструкция AdvanceNonceAccount
Инструкция
Среда выполнения транзакций распознает транзакцию с долговечным nonce только в том случае, если
Это требование к первой инструкции описано в официальных правилах распознавания nonce.
Почему nonce необходимо обновлять
Значение долговечного nonce должно использоваться только один раз.Без обновления злоумышленник или ошибочный процесс мог бы многократно отправлять одну и ту же подписанную транзакцию.При обновлении аккаунта старый nonce заменяется новым значением, полученным из текущего состояния сети.Все остальные ожидающие транзакции, использующие предыдущее значение, становятся недействительными.Поэтому несколько подписанных транзакций обычно не должны зависеть от одного общего значения nonce, если предполагается исполнение каждой из них.Первая принятая транзакция обновит аккаунт и аннулирует другие транзакции, созданные с прежним значением.Для параллельных отложенных процессов обычно следует использовать отдельные аккаунты nonce.Полномочное лицо nonce
Полномочное лицо nonce — это публичный ключ, которому разрешено выполнять важные операции с аккаунтом nonce.Чтобы обновить nonce, полномочное лицо должно подписать транзакцию.Оно также должно подтвердить смену полномочного лица.Для вывода средств из аккаунта nonce также требуется подпись полномочного лица.Эти требования описаны в актуальном интерфейсе аккаунтов nonce System Program.
Полномочным лицом не обязательно должен быть тот же аккаунт, который оплачивает комиссию транзакции.Разделение этих обязанностей может соответствовать политикам безопасности организации.Полномочное лицо nonce следует защищать: несанкционированное обновление может сделать недействительной транзакцию, уже подписанную офлайн.Плательщик комиссии и полномочное лицо nonce
Плательщик комиссии — это аккаунт, оплачивающий базовую комиссию транзакции и возможную комиссию за приоритет.Полномочное лицо nonce дает разрешение на использование сохраненного долговечного nonce.Один аккаунт может выполнять обе роли, но логически они разделены.Для транзакции также могут потребоваться подписи владельцев активов, полномочных лиц токенов, администраторов программ или других аккаунтов.Каждый обязательный подписант подписывает одно и то же сообщение транзакции.Изменение плательщика комиссии обычно меняет сообщение и поэтому делает существующие подписи недействительными, если только в процессе не используется будущий формат, специально предназначенный для разделения этих этапов.Офлайн-подписание
Офлайн-подписание позволяет хранить приватные ключи вдали от устройства, подключенного к интернету.Онлайн-система может собрать сведения об аккаунтах и сформировать неподписанную транзакцию с долговечным nonce.Сериализованное сообщение передается на устройство для офлайн-подписания через контролируемый носитель или другой проверяемый процесс.Офлайн-устройство проверяет транзакцию и создает необходимую подпись.Подписанная транзакция передается обратно онлайн-системе для отправки.В течение этого процесса nonce остается действительным, если аккаунт nonce не обновлен и не изменен.Офлайн-подписание уменьшает прямое воздействие сетевых угроз, но не защищает от вредоносно сформированной транзакции.Перед подписанием необходимо проверить адрес получателя, сумму, адреса программ, выпуск токена, полномочия, комиссии и все важные инструкции.Мультиподпись и многостороннее согласование
Долговечные nonce полезны, когда одну транзакцию должны подписать несколько сторон.Обычный хеш блока может устареть, пока сообщение передается между подписантами.Хранящийся nonce дает каждому подписанту больше времени, чтобы проверить и одобрить одно и то же сообщение.После получения всех необходимых согласований можно собрать набор подписей и отправить транзакцию.Важно сохранить точное сериализованное сообщение: изменение инструкции, адреса, параметра комиссии или флага аккаунта аннулирует подписи.На протяжении всего процесса согласования аккаунт nonce также должен оставаться неизменным.Организациям следует отслеживать аккаунт nonce, чтобы обнаружить неожиданное обновление или смену полномочий до отправки транзакции.Отложенное исполнение
Долговечный nonce позволяет отложить отправку, но сам по себе не планирует исполнение транзакции.Блокчейн не исполнит транзакцию автоматически в выбранную будущую дату только потому, что используется долговечный nonce.Подписанную транзакцию все равно должен отправить пользователь, сервер, система автоматизации или ретранслятор.Поэтому приложению для запланированных платежей помимо долговечного nonce нужен внецепочечный планировщик или схема планирования в блокчейне.Перед отправкой система должна проверить, что nonce все еще актуален.Кроме того, она должна убедиться, что предполагаемые деловые условия по-прежнему действуют.Состояние транзакции может измениться до отправки
Подписанная транзакция с долговечным nonce может оставаться ожидающей, пока состояние блокчейна вокруг нее меняется.Баланс аккаунта может увеличиться или уменьшиться.Аккаунт токена может быть заморожен или закрыт.Смарт-контракт может быть обновлен.Цена оракула может измениться.Решение управления может изменить параметры программы.Статус аккаунта получателя может измениться.Подписи транзакции подтверждают согласие с сериализованным сообщением, но не фиксируют состояние каждого внешнего аккаунта и программы, используемых при последующем исполнении.Если это поддерживается приложением, в отложенные транзакции следует включать соответствующие лимиты, ожидаемые значения, сроки действия или проверки на уровне программы.Защита от повторного воспроизведения
Защита от повторного воспроизведения не позволяет исполнять один и тот же набор подписанных инструкций многократно.Обычная транзакция Solana частично использует для этого срок действия недавнего хеша блока и отслеживание уже обработанных транзакций сетью.Транзакция с долговечным nonce использует одноразовое сохраненное значение аккаунта nonce.Как только валидатор принимает транзакцию и обновляет значение, старое подписанное сообщение перестает соответствовать состоянию аккаунта.Поэтому повторная отправка той же транзакции не пройдет проверку nonce.Эта защита зависит от правильного расположения инструкции обновления и наличия необходимой подписи полномочного лица nonce.Что происходит при успешном выполнении транзакции с долговечным nonce?
Валидатор проверяет, что сохраненный nonce совпадает со значением в поле
Что происходит при ошибке выполнения?
Поведение долговечного nonce при сбое важно отличать от упрощенного правила, согласно которому при ошибке отменяются все изменения состояния транзакции.Если транзакция прошла проверку nonce и плательщика комиссии, но более поздняя инструкция завершилась ошибкой, обычные изменения от инструкций откатываются.Обновление nonce при этом фиксируется.Комиссия за транзакцию также взимается.В официальной документации Solana о поведении при сбоях объясняется, что это не позволяет многократно отправлять одну и ту же подписанную транзакцию в ожидании, пока она однажды выполнится успешно.
Таким образом, неудачная транзакция с долговечным nonce расходует nonce.Чтобы повторить попытку, пользователь должен получить новый nonce, заново сформировать транзакцию и собрать новые подписи.Что происходит при ошибке проверки?
Транзакция может завершиться ошибкой до того, как nonce будет признан действительным.Причинами могут быть отсутствие аккаунта nonce, уже использованный nonce, несовпадение сохраненного значения со значением в транзакции или отсутствие подписи полномочного лица.Если на этом этапе проверка nonce не пройдена, транзакция отбрасывается без выполнения инструкций.Согласно текущему описанию поведения, при такой ошибке проверки комиссия не взимается и изменения состояния не фиксируются.Приложение должно определить конкретную ошибку, а не повторно рассылать одну и ту же непригодную транзакцию.Подтверждение и риски повторной попытки
Отправляющее приложение должно определить, была ли транзакция с долговечным nonce успешно обработана, обработана с ошибкой выполнения или вообще не принята.Если без проверки создавать и отправлять замену, можно непреднамеренно повторить деловую операцию, когда исходная транзакция на самом деле прошла успешно.Бездумная повторная отправка исходной транзакции также не поможет после расходования ее nonce.Приложениям следует запрашивать статус транзакции и проверять аккаунт nonce.Система должна различать финальность транзакции и успешное выполнение ее инструкций.В записи финализированной транзакции может содержаться ошибка исполнения.Операционные системы должны сверять ожидаемые изменения балансов и аккаунтов, а не полагаться только на наличие подписи транзакции.Комиссии за транзакции
За каждую транзакцию Solana взимается комиссия в SOL.В актуальной документации Solana о комиссиях указана базовая комиссия 5,000 lamports за подпись, а также возможная комиссия за приоритет.
Для транзакции с долговечным nonce требуются инструкция обновления nonce и ссылки на соответствующие аккаунты, но это не отменяет обычные комиссии за подписи.Дополнительные подписанты увеличивают базовую комиссию.После прохождения соответствующего этапа проверки неудачная транзакция все равно может расходовать nonce и приводить к списанию комиссии.Приложениям необходимо поддерживать достаточный баланс SOL на аккаунте плательщика комиссии и достаточное финансирование аккаунта nonce для освобождения от rent.Комиссии за приоритет
Комиссия за приоритет может повысить вероятность включения транзакции в обработку при высокой нагрузке на сеть.Она не гарантирует включение транзакции или успешное исполнение.При использовании инструкций бюджета вычислений транзакции с долговечным nonce должны соблюдать особый порядок инструкций.Инструкция
В официальном руководстве Solana по интеграции предупреждается, что инструкции бюджета вычислений, размещенные первыми, могут помешать среде выполнения правильно распознать транзакцию с долговечным nonce.
Финансирование аккаунта nonce и освобождение от rent
Аккаунт nonce содержит данные и пока активен должен поддерживать установленный сетью баланс для освобождения от rent.Точный минимальный баланс следует получать с помощью соответствующего сетевого запроса для размера данных аккаунта nonce.Частичный вывод средств не должен оставлять на аккаунте nonce положительный баланс ниже необходимого минимума для освобождения от rent.Транзакция, создающая такую ситуацию, завершится ошибкой.При успешном выводе всего баланса аккаунт nonce закрывается.Эти правила баланса описаны в актуальном интерфейсе вывода средств из аккаунта nonce.
Закрытие аккаунта nonce
Аккаунт nonce можно закрыть, выведя весь его баланс SOL с помощью авторизованной инструкции.Вывод должен одобрить полномочное лицо nonce.Закрытие аккаунта делает недействительными все неотправленные транзакции, зависящие от сохраненного в нем nonce.Поэтому перед выводом полного баланса организациям следует проверить, нет ли ожидающих подписанных транзакций.В документации следует указывать, какие аккаунты nonce активны, какие транзакции от них зависят и какие аккаунты можно безопасно закрыть.Смена полномочного лица nonce
Текущее полномочное лицо nonce может назначить новое полномочное лицо с помощью авторизованной инструкции System Program.Смена полномочий может потребоваться после ухода сотрудника, миграции ключей, изменения политики хранения или инцидента безопасности.После смены полномочий ожидающая транзакция, для которой требуется подпись прежнего полномочного лица, может стать недействительной.Перед отправкой транзакции тщательно проверьте новое полномочное лицо.Указание неверного или недоступного публичного ключа может нарушить дальнейшее использование аккаунта nonce.Смену полномочий следует документировать и согласовывать со всеми процессами офлайн-подписания, в которых есть ожидающие транзакции.Одна ожидающая транзакция на одно значение nonce
Технически можно подготовить несколько транзакций с одним сохраненным значением nonce.Успешно использовать это значение сможет только одна из таких конфликтующих транзакций.Первая принятая транзакция обновит nonce и сделает остальные недействительными.Если ожидается независимое исполнение нескольких отложенных транзакций, следует создать несколько аккаунтов nonce.Использование одного аккаунта для множества ожидающих транзакций создает между ними конкуренцию, а не очередь.В аккаунте nonce не хранится список будущих транзакций.Долговечные nonce и холодное хранение
При холодном хранении важные приватные ключи изолируют от обычных систем, подключенных к интернету.Долговечный nonce позволяет подписанту с холодным хранением одобрить транзакцию без спешки из-за истечения стандартного хеша блока.Систему, формирующую транзакцию онлайн, следует считать недоверенной: она может подготовить транзакцию для отправки активов или смены полномочий.Перед подписанием в холодной среде необходимо расшифровать и отобразить полный смысл транзакции.Организациям следует проверять адреса программ, права аккаунтов, параметры комиссий, выпуски токенов, адреса получателей и суммы транзакций.Передача сериализованных транзакций через съемные носители также требует защиты от вредоносных программ и процедур проверки целостности файлов.Долговечные nonce и операции казначейства
Криптовалютные казначейства могут использовать долговечные nonce для вывода средств, требующего нескольких уровней согласования.Транзакцию можно подготовить после внутреннего запроса и передать уполномоченным сотрудникам в разных местах для подписания.Ответственный за окончательную отправку сотрудник может сделать это после подтверждения всех согласований.Надлежащие процедуры работы казначейства должны связывать каждый аккаунт nonce с одним документированным запросом на транзакцию.Организация должна не допустить, чтобы один отдел неожиданно обновил или закрыл аккаунт nonce.Также необходимо определить порядок действий на случай, если транзакция завершится ошибкой после расходования nonce.Долговечные nonce и запланированные платежи
Долговечный nonce может поддерживать запланированный платеж, сохраняя подписанную транзакцию до выбранного времени отправки.Сам по себе он не обеспечивает соблюдение расписания в блокчейне.Ретранслятор может отправить транзакцию раньше срока, если другой механизм не препятствует раннему исполнению.Если время исполнения имеет значение, подписантам не следует передавать полностью авторизованную транзакцию с долговечным nonce недоверенной стороне.Ончейн-программа может обеспечить более строгие временные условия, если перед переводом средств проверяет сетевые часы или другое одобренное условие.При выборе схемы следует учитывать, что произойдет, если планировщик станет недоступен.Долговечные nonce и транзакции смарт-контрактов
Долговечный nonce можно использовать не только для простых переводов SOL, но и для транзакций, вызывающих программы Solana.Отложенное исполнение смарт-контракта создает дополнительные риски, связанные с изменением состояния.Цена обмена может измениться между подписанием и отправкой.Кредитная позиция может стать небезопасной.Аккаунт, необходимый программе, может быть изменен или закрыт.К моменту исполнения обновляемая программа может выполнять другой код.Если это возможно, приложениям следует использовать явные минимальные результаты, максимальные объемы входов, ожидаемое состояние аккаунтов и другие меры защиты.Не подписывайте неограниченную транзакцию с долговечным nonce, полученную от недоверенного приложения.Долговечные nonce и симуляция транзакций
Симуляция оценивает, как транзакция будет работать в рамках определенного наблюдаемого состояния блокчейна.Успешная симуляция не гарантирует, что транзакция с долговечным nonce будет успешно выполнена позднее.До отправки могут измениться соответствующие аккаунты и логика программы.Между симуляцией и исполнением также может быть использован nonce.Если возможно, приложениям следует проводить симуляцию незадолго до отправки и при этом полагаться на защитные ограничения на уровне программы.Результаты симуляции не заменяют проверку фактического подписанного сообщения.Риски безопасности
Основные риски долговечных nonce — компрометация ключей, несанкционированное обновление nonce, неправильный порядок инструкций, устаревшее состояние аккаунтов, небезопасное отложенное исполнение и ненадлежащая обработка статуса транзакции.Кража ключа полномочного лица nonce позволяет аннулировать ожидающие транзакции или разрешить изменение аккаунта.Злоумышленник, формирующий транзакцию, может воспользоваться длительным сроком действия, чтобы получить подпись на действие, которое будет исполнено в иных будущих условиях.Оператор может случайно израсходовать nonce неудачной транзакцией.Система повторных попыток может привести к повторной деловой операции, если результат исходной транзакции не был проверен должным образом.Безопасность зависит как от криптографии, так и от сопутствующих операционных процессов.Мониторинг аккаунта nonce
Перед созданием транзакции приложению следует прочитать данные аккаунта nonce.Следует записывать адрес аккаунта, полномочное лицо, сохраненный nonce, предполагаемую транзакцию и статус согласования.Перед отправкой nonce нужно проверить повторно.Неожиданное значение означает, что ожидающая транзакция больше недействительна.Неожиданная смена полномочного лица может указывать на серьезное операционное событие или угрозу безопасности.Организациям следует настроить оповещения об обновлении nonce, смене полномочий, выводе средств и закрытии аккаунта.При мониторинге следует использовать подходящий уровень подтверждения и учитывать финальность.Текущий статус протокола
Долговечные nonce по-прежнему описаны в документации и поддерживаются текущей системой транзакций Solana.Однако на официальной странице о долговечных nonce предупреждается, что в будущем механизм может быть объявлен устаревшим.В рамках обсуждения улучшений Solana рассматривался новый формат транзакций, который мог бы сохранить процессы офлайн-подписания с nonce и одновременно уменьшить объем специальной обработки валидаторами.
Обсуждение или предложение не означает, что изменение сети уже активировано.Разработчикам, использующим долговечные nonce, следует следить за официальными спецификациями, выпусками клиентского ПО, уведомлениями об активации и рекомендациями по миграции.При проектировании институциональных систем с длительным сроком эксплуатации не следует рассчитывать, что формат транзакций останется неизменным навсегда.Как разработчикам реализовать долговечные nonce
Разработчикам следует использовать поддерживаемые SDK Solana и интерфейсы System Program, а не кодировать состояние аккаунта nonce вручную.Приложение должно запросить данные аккаунта nonce и проверить его владельца, состояние инициализации, полномочное лицо и текущее значение nonce.Сохраненное значение nonce нужно поместить в поле транзакции
Как пользователям безопасно использовать долговечные nonce
Если отложенное подписание не требуется, пользователям следует предпочесть транзакцию с обычным недавним хешем блока.Используйте долговечный nonce с помощью ПО, которое четко указывает аккаунт nonce и полномочное лицо.Офлайн-подписанты должны проверять каждую инструкцию, а не одобрять нечитаемое сериализованное сообщение.Если требуется отменить ожидающую транзакцию, это можно сделать, намеренно обновив nonce.Помните: отмена расходует старое значение и делает недействительными все транзакции, созданные с его использованием.Резервные копии ключей полномочного лица nonce и их защита должны соответствовать стоимости активов и операционной роли аккаунта.Проверяйте успешность исполнения: обновление nonce не означает, что предполагаемый перевод состоялся.Распространенные ошибки при работе с долговечными nonce
Одна из распространенных ошибок — считать долговечный nonce возрастающим номером транзакции кошелька.Другая — размещать инструкцию бюджета вычислений перед
Вопросы и ответы
Что такое долговечный nonce в Solana?
Это постоянный хеш, хранящийся в аккаунте System Program и используемый вместо недолговечного недавнего хеша блока.Почему обычные транзакции Solana устаревают?
В них содержится недавний хеш блока, который принимается только в пределах сетевого окна обработки в 150 слотов.Истекает ли срок действия долговечного nonce через 150 слотов?
Нет. Он остается пригодным для использования и после этого периода, пока аккаунт nonce не будет обновлен, закрыт или изменен так, чтобы транзакция стала недействительной.Делает ли долговечный nonce транзакцию действительной навсегда?
Нет. Транзакция становится недействительной, когда сохраненный nonce использован или когда необходимые условия для аккаунта и полномочий перестают выполняться.Что такое аккаунт nonce?
Это аккаунт, принадлежащий System Program, в котором хранятся полномочное лицо nonce, значение долговечного nonce и состояние, связанное с комиссией.Кто контролирует аккаунт nonce?
Назначенное полномочное лицо разрешает обновление nonce, смену полномочий и вывод средств.Должно ли полномочное лицо nonce оплачивать комиссию транзакции?
Нет. Полномочное лицо nonce и плательщик комиссии могут быть разными подписывающими аккаунтами.Какая инструкция должна быть первой?
В транзакции с долговечным nonce первой должна идти инструкция
Могут ли инструкции бюджета вычислений идти первыми?
Нет. В транзакции с долговечным nonce их нельзя размещать перед
Можно ли подписать транзакцию с долговечным nonce офлайн?
Да, офлайн-подписание — один из основных вариантов использования этого механизма.Планирует ли долговечный nonce платеж?
Нет. В нужное время подписанную транзакцию должна отправить другая система.Можно ли использовать один nonce для нескольких транзакций?
Можно подготовить несколько транзакций, но успешно использовать этот nonce сможет только первая принятая транзакция.Как независимо исполнить несколько отложенных транзакций?
Как правило, для них следует использовать отдельные аккаунты nonce и отдельные сохраненные значения nonce.Что происходит после использования nonce?
В аккаунте nonce сохраняется новое значение, а транзакции, подписанные со старым значением, становятся недействительными.Что произойдет, если более поздняя инструкция завершится ошибкой?
Обычные изменения состояния будут отменены, но nonce все равно обновится, а комиссия за транзакцию будет списана.Можно ли повторно отправить неудачную транзакцию с долговечным nonce?
Нет, если ее nonce уже использован: транзакцию нужно заново создать и подписать с новым значением.Как отменить ожидающую транзакцию с долговечным nonce?
Полномочное лицо может обновить nonce с помощью другой действительной транзакции, сделав прежнюю подписанную транзакцию непригодной для исполнения.Может ли смена полномочного лица сделать ожидающую транзакцию недействительной?
Да. Транзакция, подписанная прежним полномочным лицом, может завершиться ошибкой после смены полномочий аккаунта.Нужен ли аккаунту nonce SOL?
Да. Пока аккаунт активен, на нем должен поддерживаться применимый баланс для освобождения от rent.Можно ли вывести средства из аккаунта nonce?
Да. При частичном выводе необходимо сохранить баланс для освобождения от rent, а полный вывод закрывает аккаунт.Является ли долговечный nonce токеном криптовалюты?
Нет. Это состояние транзакции, хранящееся в аккаунте System Program Solana.Является ли долговечный nonce секретом?
Нет. Аккаунт nonce и его значение публично доступны в блокчейне.Может ли знание nonce помочь украсть средства?
Нет. Для транзакции по-прежнему требуются действительные подписи полномочного лица nonce и всех остальных обязательных подписантов.Может ли злоумышленник сделать подписанную транзакцию недействительной?
Злоумышленник, контролирующий полномочное лицо nonce, может обновить или изменить аккаунт nonce и аннулировать ожидающие транзакции.Гарантирует ли успешная симуляция последующее исполнение?
Нет. До отправки могут измениться состояние аккаунтов, программы, балансы, цены и сам nonce.Долговечные nonce дороже обычных транзакций?
Они требуют дополнительного состояния аккаунта и инструкции обновления, при этом сохраняются обычные комиссии за подписи и приоритет.Поддерживаются ли сейчас долговечные nonce?
Да, однако в официальной документации предупреждается, что в будущей версии текущий механизм может быть объявлен устаревшим.Заключение
Долговечный nonce позволяет использовать транзакцию Solana дольше стандартного окна в 150 слотов для недавнего хеша блока.Механизм использует аккаунт nonce, принадлежащий System Program, в котором хранятся полномочное лицо, хеш и данные, связанные с комиссией.Сохраненный nonce заменяет обычный недавний хеш блока в подписанном сообщении транзакции.Инструкция
Вам также может быть интересно
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
В тренде
Трендовые криптовалюты, которые в настоящее время привлекают значительное внимание рынка
ТОП по объему
Криптовалюты с наибольшим объемом торгов
Недавно добавленные
Криптовалюты недавно внесенные в листинг и доступные для торговли

