Рекомендуемые ресурсы
Monad полностью совместим с байт-кодом EVM, со всеми поддерживаемыми операциями и предварительными компиляциями на момент форка Shanghai. Кроме того, Monad сохраняет стандартные интерфейсы JSON-RPC Ethereum.
Таким образом, большинство ресурсов разработки для главной сети Ethereum применимы к разработке на Monad.
На этой странице предлагается минимальный набор ресурсов для начала разработки децентрализованных приложений для Ethereum. Дочерние страницы предоставляют дополнительные детали или варианты.
Поскольку Solidity является самым популярным языком для умных контрактов Ethereum, ресурсы на этой странице сосредоточены на Solidity; альтернативно смотрите ресурсы по Vyper или Huff. Обратите внимание, что поскольку умные контракты являются комбинируемыми, контракты, изначально написанные на одном языке, всё ещё могут вызывать контракты на другом языке.
Среды разработки
Remix - это интерактивная среда разработки на Solidity. Это самый простой и быстрый способ начать программировать и компилировать умные контракты на Solidity без необходимости установки дополнительных инструментов.
Начальный Solidity
CryptoZombies - прекрасное руководство от начала до конца по созданию dApps на EVM. Оно предоставляет ресурсы и уроки для любого, от новичка, который никогда не программировал ранее, до опытных разработчиков в других областях, желающих изучить разработку блокчейнов.
Простые примеры Solidity - этот ресурс постепенно вводит в концепции с помощью простых примеров; рекомендуется для разработчиков, у которых уже есть базовый опыт работы с другими языками.
Промежуточный Solidity
Официальная документация по языку Solidity - это подробное описание смарт-контрактов и основ блокчейна, сосредоточенное на средах EVM. В дополнение к документации по языку Solidity, она охватывает основы компиляции вашего кода для развертывания на EVM, а также основные компоненты, необходимые для развертывания смарт-контракта на EVM.
Репозиторий Solidity - предоставляет библиотеку кодовых шаблонов и объяснение их использования.
Контракт Uniswap V2 - это профессиональный, но легко воспринимаемый смарт-контракт, который предоставляет отличный обзор работающего dApp на Solidity. Пошаговое руководство по контракту можно найти здесь.
Cookbook.dev - предоставляет набор интерактивных примеров шаблонов контрактов с возможностью живого редактирования, развертывания в один клик и интеграции с чатом искусственного интеллекта для помощи в вопросах кода.
OpenZeppelin - предоставляет настраиваемую библиотеку шаблонов контрактов для распространенных развертываний токенов Ethereum, таких, как ERC20, ERC712 и ERC1155. Обратите внимание, что они не оптимизированы по газу.
Продвинутый Solidity
Репозиторий Solmate и репозиторий Solady предоставляют оптимизированные по газу контракты, использующие Solidity или Yul.
Yul - это промежуточный язык для Solidity, который обычно можно рассматривать как встроенную ассемблерную вставку для EVM. Он не совсем чистый ассемблер, предоставляя конструкции управления потоком и абстрагируя внутреннее устройство стека, сохраняя при этом сырое хранилище памяти для разработчиков. Yul предназначен для разработчиков, которым требуется работа с сырым хранилищем памяти EVM для создания высокопроизводительного газооптимизированного кода EVM.
Huff больше всего описывается как EVM-ассемблер. В отличие от Yul, Huff не предоставляет конструкции управления потоком или абстрагирует внутреннюю работу стека программы. Только самые требовательные к производительности приложения используют Huff, однако это отличный обучающий инструмент для изучения того, как EVM интерпретирует инструкции на самом низком уровне.
Локальные ноды
Разработчикам часто полезно иметь возможность запускать одноузловую сеть Ethereum с измененными параметрами для тестирования взаимодействия с блокчейном:
Anvil - это локальный узел Ethereum, упакованный в набор инструментов Foundry
Hardhat Network - это локальный узел Ethereum, упакованный в набор инструментов Hardhat
Установка наиболее удобно выполняется в рамках установки соответствующего набора инструментов, описанного в следующем разделе.
Наборы инструментов
Разработчики часто находят полезным создавать свой проект в контексте более широкой структуры, которая организует внешние зависимости (т.е. управление пакетами), управляет модульными и интеграционными тестами, определяет процедуру развертывания (на локальные узлы, тестовую сеть и главную сеть), записывает расходы на газ и т.д.
Вот два наиболее популярных инструмента для разработки на Solidity:
Foundry - это фреймворк Solidity как для разработки, так и для тестирования. Foundry управляет вашими зависимостями, компилирует ваш проект, запускает тесты, развертывает и позволяет вам взаимодействовать с цепочкой из командной строки и через скрипты на Solidity. Пользователи Foundry обычно пишут свои умные контракты и тесты на языке Solidity.
Hardhat - это фреймворк разработки на Solidity, сопровождаемый фреймворком тестирования на JavaScript. Он предоставляет функциональность, аналогичную Foundry, и был основным инструментом для разработчиков EVM до появления Foundry.
Взаимодействие с Ethereum RPC API
Фронтенд для dapps обычно используют JavaScript или Python для отправки запросов на чтение или запись к узлу RPC. Этот код обычно называется "клиентской стороной", поскольку веб-разработчики могут грубо сравнивать блокчейн с сервером бэкенда.
Несколько библиотек предоставляют стандартные методы для отправки запросов или транзакций к узлу RPC:
Python:
Вот быстрый пример создания фронтенда: create-eth-app.
Тестовые сети
Тестовая сеть Monad будет доступна для разработчиков в ближайшие месяцы. Однако, совместимость байт-кода и RPC с EVM означает, что разработчики, желающие развернуть приложение на Monad, могут предварительно использовать тестовые сети Ethereum.
Дополнительные сведения
Дополнительные ресурсы представлены на дочерних страницах:
Last updated