---
title: "Эфириум для разработчиков JavaScript"
description: "Узнайте, как разрабатывать для Эфириума, используя проекты и инструменты на базе JavaScript."
lang: ru
---

JavaScript является одним из самых популярных языков в экосистеме Эфириума. На самом деле, существует [команда](https://github.com/ethereumjs), которая занимается тем, чтобы перенести как можно больше возможностей Эфириума в JavaScript.

Есть возможности писать на JavaScript (или чем-то похожем) на [всех уровнях стека](/developers/docs/ethereum-stack/).

## Взаимодействие с Эфириумом {#interact-with-ethereum}

### Библиотеки JavaScript API {#javascript-api-libraries}

Если вы хотите писать на JavaScript для запросов к блокчейну, отправки транзакций и многого другого, самый удобный способ сделать это — использовать [библиотеку JavaScript API](/developers/docs/apis/javascript/). Эти API позволяют разработчикам легко взаимодействовать с [узлами в сети Эфириума](/developers/docs/nodes-and-clients/).

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

**Ознакомьтесь**

- [Web3.js](https://web3js.readthedocs.io)
- [Ethers.js](https://ethers.org) — _включает реализацию кошелька Эфириума и утилиты на JavaScript и TypeScript._
- [viem](https://viem.sh) — _интерфейс TypeScript для Эфириума, который предоставляет низкоуровневые примитивы без сохранения состояния для взаимодействия с Эфириумом._
- [Drift](https://ryangoree.github.io/drift/) — _мета-библиотека TypeScript со встроенным кэшированием, хуками и тестовыми моками для легкой разработки в Эфириуме с использованием библиотек Web3._

### Смарт-контракты {#smart-contracts}

Если вы разработчик JavaScript и хотите написать свой собственный смарт-контракт, вам стоит ознакомиться с [Solidity](https://solidity.readthedocs.io). Это самый популярный язык смарт-контрактов, и он синтаксически похож на JavaScript, что может облегчить его изучение.

Подробнее о [смарт-контрактах](/developers/docs/smart-contracts/).

## Понимание протокола {#understand-the-protocol}

### Виртуальная машина Эфириума {#the-ethereum-virtual-machine}

Существует реализация [виртуальной машины Эфириума](/developers/docs/evm/) на JavaScript. Она поддерживает последние правила форков. Правила форков относятся к изменениям, внесенным в EVM в результате запланированных обновлений.

Она разделена на различные пакеты JavaScript, с которыми вы можете ознакомиться для лучшего понимания:

- Аккаунты
- Блоки
- Сам блокчейн
- Транзакции
- И многое другое...

Это поможет вам понять такие вещи, как «какова структура данных аккаунта?».

Если вы предпочитаете читать код, этот JavaScript может стать отличной альтернативой чтению нашей документации.

**Ознакомьтесь с EVM**  
[`@ethereumjs/evm`](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/evm)

### Узлы и клиенты {#nodes-and-clients}

Клиент EthereumJS находится в активной разработке, что позволяет вам разобраться в том, как работают клиенты Эфириума, на понятном вам языке — JavaScript!

**Ознакомьтесь с клиентом**  
[`@ethereumjs/client`](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/client)

## Другие проекты {#other-projects}

В мире JavaScript для Эфириума происходит множество других вещей, включая:

- библиотеки утилит для кошельков.
- инструменты для генерации, импорта и экспорта ключей Эфириума.
- реализацию `merkle-patricia-tree` — структуры данных, описанной в желтой книге Эфириума.

Изучайте то, что вас больше всего интересует, в [репозитории EthereumJS](https://github.com/ethereumjs)

## Дополнительная литература {#further-reading}

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