Смарт-контракты - это программное обеспечение, которое позволяет вам взаимодействовать с блокчейном Ethereum и создавать децентрализованные приложения. Но как работает их развертывание? Что происходит с кодом, когда он публикуется?

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

После разработки смарт-контракта со связанными функциями, состояниями и внутренними иерархиями первым этапом является компиляция кода. Составление контракта в основном дает два результата, а именно:

  • Байт-код, который представляет собой машинный язык на основе стека, компилируемый и исполняемый EVM (Ethereum -Virtual Machine). Для каждой инструкции, реализованной смарт-контрактом в EVM, система отслеживает стоимость выполнения, которая измеряется в единицах газа;
  • ABI или двоичный интерфейс приложения, представляющий собой файл JSON, описывающий распределенный контракт и функции смарт-контракта. ABI критически важен для приложения (веб или мобильного), поскольку он позволяет вам узнать интерфейс контракта, а затем вызывать различные функции, выполняемые на уровне EVM.

После компиляции байт-код смарт-контракта сохраняется в цепочке блоков и назначается адресу, чтобы его можно было легко вызвать. Чтобы использовать функции смарт-контракта из внешнего интерфейса, вам понадобятся три элемента: ABI контракта, назначенный адрес и библиотека, которая позволяет вам взаимодействовать с экземпляром контракта. Самая популярная библиотека в этой области - web3 с расширениями как для Javascript, так и для Python.