Транзакция — метод взаимодействия между аккаунтами, вследствие которого происходит обновления состояния сети Ethereum. Например меняются балансы ETH отправителя и получателя.
Транзакция представляет собой криптографически-подписанное сообщение, которое содержит информацию о том, кто отправитель, кто получатель, какую сумму необходимо отправить, а также дополнительные данные, необходимые для выполнения операции.
Для исполнения транзакции или взаимодействия со смарт контрактом требуется оплата Gas. Выполняются транзакции в EVM (Ethereum Virtual Machine), которая обеспечивает исполнение смарт-контрактов и других операций в блокчейне Ethereum.
Что содержит в себе транзакция?
Как правило транзакция включает в себя следующую информацию:
recipient— адрес получателя или адрес смарт контракта в сети Ethereum. (или нулевой адрес)signature— подпись, которая генерируется в процессе подтверждения транзакции закрытым ключем отправителя. Представляет собой идентификатор отправителя и подтверждение того, что отправитель авторизовал транзакцию.value— сумма ETH для перевода на адрес получателя или смарт контракта.data— произвольные данные, зависящие от вызорва конкретного контракта.maxPriorityFeePerGas— максимальная цена за газ, которая может быть использована.gasLimit— максимальное количество единиц газа, которое может быть использовано.maxFeePerGas— максимальное количество денег, который пользователь готов потратить на gas.
Типы транзакций в Ethereum
В сети Ethereum существует несколько типов транзакций:
- Обычные транзакции - самый простой тип транзакий в сети Ethereum. Подрозумивает собой перевод средств с одной аккаунта на другой. Например: Боб переводит 0.01 ETH на счет Кати.
- Транзакции развертывания - применяются для развертывания смарт контрактов в сети Ethereum, в таком случае адрес «to» отсутствует.
- Транзакция вызова - применяется для взаимодействия со смарт-контрактом, в таком слшучае адрес «to» является адресом самого контракта.
- Транзакция самоуничтожения (Self-destruct contract transactions) - применяется для удаление смарт контракта с сети Ethereum.
Жизненный цикл транзакции
Как же проходит весь жизненный цикл транзакции от момента ее инициализации до внесения изменений в блокчейне? Все очень просто (нет)!
После подтверждения отправки транзакции генерируется хэш, который включается в пул с другими, пока ещё невыполненными транзакциями. Чтобы транзакция перешла в статус выполнения нужно подождать... Подождать пока выполняться более приоритетные транзакции, ведь Ethereum имеет механизм выбора транзакций для включения в блоки на основе цены газа. Дальше транзакция получает подтверждение и создается новый блок в который она включается.
Способы вызова транзакции
В Ethereum есть разные способы вызова транзакций. Рассмотрим наиболее распространенные из них:
- Кошельки и биржи. Самый простой и популярный способ, обычно биржи и кошельки предоставляют пользовательский интерфейс для выполнения транзакций. Пользователь должен ввести адрес, сумму, возможно настроить газ, несколько раз нажать "Подтвердить" и вуаля! ETH улетает на другую часть земного шара.
- Программные интерфейсы (API). Существует множество программных интерфейсов, которые позволяют разработчикам и компаниям интегрировать Ethereum в свои приложения. API обычно предоставляют функции для вызова транзакций, отправки и получения эфира, а также для выполнения других операций.
- Командная строка (CLI). С помощью CLI (Comand Line Interface) можно вызывать транзакции напрямую через терминал. Например,
gethпозволяет выполнить транзакцию командойsendTransaction. - DApps. Многие смарт-контракты написанные на языке программирования Solidity имеют веб-интерфейсы позволяющие пользователям взаимодействовать с контрактом и вызывать транзакции напрямую через браузер.
- Автоматические контракты. Контракты настраиваются так, чтобы они вызывали транзакции автоматически при определенных условиях. Например, контракт переводит NFT в ответ на получение определенной информации или изменения какого-то стейта.
Каждый из этих способов имеет свои преимущества и недостатки и используется в самых разных целях.
Итог
Теперь вы знаете что такое транзакции в сети Ethereum, как они устроены, из чего состоят и как вызываются. Похожим образом транзакции работают и в других сетях. Не эфиром едины!
Подпишись и получи доступ к бесплатным курсам и обучающим материалам от Solidity University! Изучай Solidity и Блокчейн Разработку вместе с нами!