Solidity University

Транзакции

Транзакция — метод взаимодействия между аккаунтами, вследствие которого происходит обновления состояния сети Ethereum. Например меняются балансы ETH отправителя и получателя.

Транзакция представляет собой криптографически-подписанное сообщение, которое содержит информацию о том, кто отправитель, кто получатель, какую сумму необходимо отправить, а также дополнительные данные, необходимые для выполнения операции.

Для исполнения транзакции или взаимодействия со смарт контрактом требуется оплата Gas. Выполняются транзакции в EVM (Ethereum Virtual Machine), которая обеспечивает исполнение смарт-контрактов и других операций в блокчейне Ethereum.

Что содержит в себе транзакция?


Как правило транзакция включает в себя следующую информацию:

  • recipient — адрес получателя или адрес смарт контракта в сети Ethereum. (или нулевой адрес)
  • signature — подпись, которая генерируется в процессе подтверждения транзакции закрытым ключем отправителя. Представляет собой идентификатор отправителя и подтверждение того, что отправитель авторизовал транзакцию.
  • value — сумма ETH для перевода на адрес получателя или смарт контракта.
  • data — произвольные данные, зависящие от вызорва конкретного контракта.
  • maxPriorityFeePerGas — максимальная цена за газ, которая может быть использована.
  • gasLimit — максимальное количество единиц газа, которое может быть использовано.
  • maxFeePerGas — максимальное количество денег, который пользователь готов потратить на gas.

Типы транзакций в Ethereum

В сети Ethereum существует несколько типов транзакций:

  1. Обычные транзакции - самый простой тип транзакий в сети Ethereum. Подрозумивает собой перевод средств с одной аккаунта на другой. Например: Боб переводит 0.01 ETH на счет Кати.
  2. Транзакции развертывания - применяются для развертывания смарт контрактов в сети Ethereum, в таком случае адрес «to» отсутствует.
  3. Транзакция вызова - применяется для взаимодействия со смарт-контрактом, в таком слшучае адрес «to» является адресом самого контракта.
  4. Транзакция самоуничтожения (Self-destruct contract transactions) - применяется для удаление смарт контракта с сети Ethereum.

Жизненный цикл транзакции

Как же проходит весь жизненный цикл транзакции от момента ее инициализации до внесения изменений в блокчейне? Все очень просто (нет)!

После подтверждения отправки транзакции генерируется хэш, который включается в пул с другими, пока ещё невыполненными транзакциями. Чтобы транзакция перешла в статус выполнения нужно подождать... Подождать пока выполняться более приоритетные транзакции, ведь Ethereum имеет механизм выбора транзакций для включения в блоки на основе цены газа. Дальше транзакция получает подтверждение и создается новый блок в который она включается.

Способы вызова транзакции

В Ethereum есть разные способы вызова транзакций. Рассмотрим наиболее распространенные из них:

  1. Кошельки и биржи. Самый простой и популярный способ, обычно биржи и кошельки предоставляют пользовательский интерфейс для выполнения транзакций. Пользователь должен ввести адрес, сумму, возможно настроить газ, несколько раз нажать "Подтвердить" и вуаля! ETH улетает на другую часть земного шара.
  2. Программные интерфейсы (API). Существует множество программных интерфейсов, которые позволяют разработчикам и компаниям интегрировать Ethereum в свои приложения. API обычно предоставляют функции для вызова транзакций, отправки и получения эфира, а также для выполнения других операций.
  3. Командная строка (CLI). С помощью CLI (Comand Line Interface) можно вызывать транзакции напрямую через терминал. Например, geth позволяет выполнить транзакцию командой sendTransaction.
  4. DApps. Многие смарт-контракты написанные на языке программирования Solidity имеют веб-интерфейсы позволяющие пользователям взаимодействовать с контрактом и вызывать транзакции напрямую через браузер.
  5. Автоматические контракты. Контракты настраиваются так, чтобы они вызывали транзакции автоматически при определенных условиях. Например, контракт переводит NFT в ответ на получение определенной информации или изменения какого-то стейта.

Каждый из этих способов имеет свои преимущества и недостатки и используется в самых разных целях.

Итог

Теперь вы знаете что такое транзакции в сети Ethereum, как они устроены, из чего состоят и как вызываются. Похожим образом транзакции работают и в других сетях. Не эфиром едины!


Подпишись и получи доступ к бесплатным курсам и обучающим материалам от Solidity University! Изучай Solidity и Блокчейн Разработку вместе с нами!

Информация об авторе
Nick Newermin

Nick Newermin

Привет! Меня зовут Николай, я занимаюсь web3 разработкой уже более пяти лет, веду канал "Блокчейн Разработчик" и создаю образовательную онлайн платформу Solidity University. #Web3ForEveryone

Solidity University

Подпишись и получи бесплатный доступ к нашим курсам и обучающим материалам

Solidity University

Отлично! Вы успешно зарегистрировались.

С возвращением! Вы успешно вошли в систему.

Вы успешно подписались на Solidity University.

Успех! Проверьте вашу электронную почту для входа по магической ссылке.

Успех! Ваши платежные данные обновлены.

Ваши платежные данные не были обновлены.