Перейти к основному содержимому

Редакционная доработка ещё намеренно не завершена

Этот раздел скрыт из основной навигации. Перевод и редакторская полировка намеренно не считаются обязательными, пока раздел не станет публичным.

Поток транзакций в протоколе NEAR

Это руководство прослеживает полный жизненный цикл транзакции в протоколе NEAR: от отправки через JSON-RPC до исполнения валидатором.

Быстрый справочник

ЗадачаМетод RPC
Отправить транзакцию без ожидания результатаbroadcast_tx_async
Отправить и дождаться результатаbroadcast_tx_commit
Проверить статус транзакцииtx_status
Посмотреть информацию об аккаунтеview_account
Вызвать функцию просмотраcall_function

Разделы руководства

Базовые концепции

  • Основы - структура транзакции, набор действий и форматы сериализации
  • RPC и отправка - JSON-RPC-эндпоинты, валидация и ключи доступа
  • Финальность - результаты исполнения, запрос итогов и опции wait_until

Модель исполнения

Инфраструктура

  • Сеть и блоки - P2P-протокол, пул транзакций и производство чанков
  • Инфраструктура - хранилище состояния, шардинг и структура префиксного дерева

Продвинутые темы

Ключевые концепции

Транзакции асинхронны

В отличие от синхронных блокчейнов, транзакции в NEAR создают квитанции, которые исполняются асинхронно. Межконтрактный вызов может растянуться на несколько блоков и шардов.

Квитанции, а не вызовы

Когда ваш контракт вызывает другой контракт, он не получает возвращаемое значение сразу. Вместо этого:

  1. Ваш вызов создаёт ActionReceipt для целевого контракта.
  2. Эта квитанция исполняется позже, возможно в будущем блоке и на другом шарде.
  3. Результат возвращается в обработчик обратного вызова как DataReceipt.

Межшардовое взаимодействие по замыслу

NEAR использует шардинг: разные аккаунты живут на разных шардах. Межшардовое взаимодействие автоматическое, но асинхронное. Атомарность гарантируется только внутри одного шарда.