Введение в стек Ethereum
Последнее обновление страницы: 21 октября 2025 г.
Как и любой программный стек, комплектация "стека Ethereum" будет варьироваться от проекта к проекту в зависимости от ваших целей.
Однако существуют основные компоненты Ethereum, которые помогают сформировать концептуальную модель того, как программные приложения взаимодействуют с блокчейном Ethereum. Понимание слоев стека поможет вам понять различные способы интеграции Ethereum в программные проекты.
Уровень 1: Виртуальная машина Ethereum
Виртуальная машина Ethereum (EVM) — это среда выполнения для умных контрактов на Ethereum. Все умные контракты и изменения состояния в блокчейне Ethereum выполняются транзакциями. EVM обрабатывает все транзакций в сети Ethereum.
Как и любая виртуальная машина, EVM создает уровень абстракции между кодом и вычислительной машиной (узлом Ethereum). В настоящее время EVM работает на тысячах узлов, распределенных по всему миру.
EVM использует набор инструкций кода операции для выполнения определенных задач. Эти (140 уникальных) кодов операций позволяют EVM быть полной по Тьюрингу (opens in a new tab), что означает, что EVM способна вычислить практически все что угодно при наличии достаточных ресурсов.
Как разработчику децентрализованных приложений, вам не нужно много знать о EVM, кроме того, что она существует и надежно обеспечивает работу всех приложений на Ethereum без простоев.
Уровень 2: Умные контракты
Умные контракты — это исполняемые программы, работающие на блокчейне Ethereum.
Умные контракты пишутся с использованием специальных языков программирования, которые компилируются в байт-код EVM (низкоуровневые машинные инструкции, называемые кодами операций).
Смарт-контракты — это не только библиотеки с открытым исходным кодом, это, по сути, открытые службы API, которые всегда работают и не могут быть отключены. Умные контракты предоставляют публичные функции, с которыми пользователи и приложения (децентрализованные приложения) могут взаимодействовать без получения разрешения. Любое приложение может интегрироваться с развернутыми умными контрактами для создания функциональности, например для добавления каналов данных или для поддержки обмена токенов. Кроме того, любой желающий может развернуть новые умные контракты в Ethereum, чтобы добавить пользовательскую функциональность в соответствии с потребностями своего приложения.
Разработчику dapp, нужно будет писать смарт-контракты только в том случае, если вы хотите совместить уникальные пользовательские функции с блокчейном Ethereum. Вы можете обнаружить, что можете удовлетворить большую часть или все потребности своего проекта, просто интегрировав его с существующими смарт-контрактами, например, если вы хотите поддерживать платежи в стейблкоинах или включить децентрализованный обмен токенами.
Уровень 3: Узлы Ethereum
Чтобы приложение могло взаимодействовать с блокчейном Ethereum, оно должно подключиться к узлу Ethereum. Подключение к узлу позволяет читать данные блокчейна и/или отправлять транзакции в сеть.
Узлы Ethereum — это компьютеры, на которых запущено программное обеспечение — клиент Ethereum. Клиент — это реализация Ethereum, которая проверяет все транзакции в каждом блоке, обеспечивая безопасность сети и точность данных. Узлы Ethereum — это и есть блокчейн Ethereum. Они коллективно хранят блокчейн Ethereum и достигают консенсуса по транзакциям, чтобы изменить состояние блокчейна.
Подключив ваше приложение к узлу Ethereum (через JSON-RPC API), оно сможет считывать данные из блокчейна (например, балансы счетов пользователей), а также транслировать новые транзакции в сеть (например, перевод ETH между счетами пользователей или выполнение функций умных контрактов).
Уровень 4: Клиентские API Ethereum
Многие вспомогательные библиотеки (созданные и поддерживаемые сообществом разработчиков ПО с открытым исходным кодом Ethereum) позволяют вашим приложениям подключаться к блокчейну Ethereum и взаимодействовать с ним.
Если ваше приложение, ориентированное на пользователя, — это веб-приложение, вы можете установить JavaScript API с помощью npm install непосредственно во фронтенде. Или, возможно, вы решите реализовать эту функциональность на стороне сервера, используя API для Python или Java.
Хотя эти API-интерфейсы не являются необходимой частью стека, они упрощают прямое взаимодействия с узлом Ethereum. Они также предоставляют вспомогательные функции (например, конвертацию ETH в Gwei), поэтому как разработчик вы можете тратить меньше времени на тонкости работы с клиентами Ethereum и больше времени уделять функциональности, специфичной для вашего приложения.
Уровень 5: Приложения для конечных пользователей
На верхнем уровне стека находятся приложения, ориентированные на пользователя. Это стандартные приложения, которые вы регулярно используете сегодня: в основном веб-приложения и мобильные приложения.
Разработка интерфейса, не изменилась. Часто пользователям не обязательно знать, что приложение, которое они используют, построено с использованием блокчейна.
Готовы выбрать свой стек?
Ознакомьтесь с нашим руководством по настройке локальной среды разработки для вашего приложения Ethereum.
Дополнительные материалы
- Архитектура Web 3.0-приложения (opens in a new tab) — Preethi Kasireddy
Знаете ресурс сообщества, который вам пригодился? Измените эту страницу и добавьте его!