Перейти к основному контенту
Change page

Введение в стек Эфириума

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

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

Уровень 1: Виртуальная машина Эфириума

Виртуальная машина Эфириума (EVM) — это среда выполнения для смарт-контрактов в Эфириуме. Все смарт-контракты и изменения состояния в блокчейне Эфириума выполняются с помощью транзакций. EVM обрабатывает все транзакции в сети Эфириум.

Как и любая виртуальная машина, EVM создает уровень абстракции между выполняемым кодом и выполняющей машиной (узлом Эфириума). В настоящее время EVM работает на тысячах узлов, распределенных по всему миру.

Внутри EVM использует набор инструкций в виде кодов операций для выполнения конкретных задач. Эти (140 уникальных) кодов операций позволяют EVM быть полной по Тьюрингу (opens in a new tab), что означает, что EVM способна вычислить практически все, что угодно, при наличии достаточных ресурсов.

Как разработчику децентрализованных приложений (dapp), вам не нужно знать об EVM много, кроме того, что она существует и надежно обеспечивает работу всех приложений в Эфириуме без простоев.

Уровень 2: Смарт-контракты

Смарт-контракты — это исполняемые программы, которые работают в блокчейне Эфириума.

Смарт-контракты пишутся с использованием специальных языков программирования, которые компилируются в байт-код EVM (низкоуровневые машинные инструкции, называемые кодами операций).

Смарт-контракты не только служат библиотеками с открытым исходным кодом, они по сути являются открытыми сервисами API, которые работают постоянно и не могут быть отключены. Смарт-контракты предоставляют публичные функции, с которыми пользователи и приложения (децентрализованные приложения (dapp)) могут взаимодействовать без необходимости получения разрешений. Любое приложение может интегрироваться с развернутыми смарт-контрактами для компоновки функциональности, например, для добавления каналов данных или поддержки обмена токенами. Кроме того, любой желающий может развернуть новые смарт-контракты в Эфириуме, чтобы добавить пользовательскую функциональность для удовлетворения потребностей своего приложения.

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

Уровень 3: Узлы Эфириума

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

Узлы Эфириума — это компьютеры, на которых работает программное обеспечение, клиент Эфириума. Клиент — это реализация Эфириума, которая проверяет все транзакции в каждом блоке, обеспечивая безопасность сети и точность данных. Узлы Эфириума — это и есть блокчейн Эфириума. Они совместно хранят состояние блокчейна Эфириума и достигают консенсуса по транзакциям для изменения состояния блокчейна.

Подключив ваше приложение к узлу Эфириума (через JSON-RPC API), оно сможет считывать данные из блокчейна (например, балансы аккаунтов пользователей), а также транслировать новые транзакции в сеть (например, перевод ETH между аккаунтами пользователей или выполнение функций смарт-контрактов).

Уровень 4: API клиентов Эфириума

Множество удобных библиотек (созданных и поддерживаемых сообществом разработчиков Эфириума с открытым исходным кодом) позволяют вашим приложениям подключаться к блокчейну Эфириума и взаимодействовать с ним.

Если ваше пользовательское приложение является веб-приложением, вы можете добавить с помощью npm install JavaScript API непосредственно в ваш фронтенд. Или, возможно, вы решите реализовать эту функциональность на стороне сервера, используя API для Python или Java.

Хотя эти API не являются обязательной частью стека, они абстрагируют большую часть сложности прямого взаимодействия с узлом Эфириума. Они также предоставляют служебные функции (например, конвертацию ETH в Gwei), чтобы вы как разработчик могли тратить меньше времени на изучение тонкостей клиентов Эфириума и больше времени уделять функциональности, специфичной для вашего приложения.

Уровень 5: Приложения для конечных пользователей

На верхнем уровне стека находятся пользовательские приложения. Это стандартные приложения, которые вы регулярно используете и создаете сегодня: в первую очередь веб- и мобильные приложения.

Способ разработки этих пользовательских интерфейсов остается практически неизменным. Часто пользователям даже не нужно знать, что приложение, которое они используют, создано с использованием блокчейна.

Готовы выбрать свой стек?

Ознакомьтесь с нашим руководством по настройке локальной среды разработки для вашего приложения на Эфириуме.

Дополнительная литература

Знаете ресурс сообщества, который вам помог? Отредактируйте эту страницу и добавьте его!