Начало работы с узлом разработки Moonbeam
Перевод оффициальной документации мунбим. Ознакомится с оригиналом можете по ссылке - https://docs.moonbeam.network/builders/get-started/moonbeam-dev/
Содержание:
Начало работы с двоичным файлом
Подключение приложений Polkadot.js к локальному узлу Moonbeam
Запрос состояния учетной записи
API отладки, трассировки и TxPool
Вступление
В этом руководстве описаны шаги, необходимые для создания узла разработки для тестирования функций совместимости с Ethereum в Moonbeam.
Это руководство было создано с использованием тега v0.14.2 Moonbase Alpha. Платформа Moonbeam и компоненты Frontier, которые она использует для совместимости с Ethereum на основе Substrate, все еще находятся в стадии очень активной разработки. Примеры в этом руководстве предполагают, что у вас есть среда на основе MacOS или Ubuntu 18.04, и ее необходимо соответствующим образом адаптировать для Windows.
Узел разработки Moonbeam - это ваша собственная среда разработки для создания и тестирования приложений на Moonbeam. Для разработчиков Ethereum это сравнимо с Ganache. Это позволяет вам быстро и легко приступить к работе без дополнительных затрат на релейную цепочку. Вы можете развернуть свой узел с помощью параметра --sealing
, чтобы создавать блоки мгновенно, вручную или с заданным интервалом после получения транзакций. По умолчанию при получении транзакции создается блок, что похоже на функцию Instamine в Ganache.
Если вы проследите до конца этого руководства, у вас будет узел разработки Moonbeam, работающий в вашей локальной среде, с 10 предварительно профинансированными учетными записями, и вы сможете подключить его к графическому интерфейсу Polkadot.js по умолчанию.
Есть два способа начать запуск узла Moonbeam: вы можете использовать Docker для запуска предварительно созданного двоичного файла или вы можете скомпилировать двоичный файл локально и самостоятельно настроить узел разработки. Использование Docker - это быстрый и удобный способ начать работу, поскольку вам не нужно устанавливать Substrate и все зависимости, а также вы можете пропустить сборку процесса узла. Это требует установки Docker. С другой стороны, если вы решите, что хотите пройти процесс создания собственного узла разработки, это может занять примерно 30 минут или больше в зависимости от вашего оборудования.
Начало работы с Docker
Использование Docker позволяет развернуть узел за считанные секунды. После установки Docker вы можете выполнить следующую команду, чтобы загрузить соответствующий образ:
docker pull purestake/moonbeam:v0.14.2
Конец журнала консоли должен выглядеть так:
После загрузки образа Docker следующим шагом будет его запуск.
Вы можете запустить образ Docker, используя следующее:
docker run --rm --name moonbeam_development --network host \ purestake/moonbeam:v0.14.2 \ --dev
docker run --rm --name moonbeam_development -p 9944:9944 -p 9933:9933 \ purestake/moonbeam:v0.14.2 \ --dev --ws-external --rpc-external
docker run --rm --name moonbeam_development -p 9944:9944 -p 9933:9933 ^ purestake/moonbeam:v0.14.2 ^ --dev --ws-external --rpc-external
Это должно запустить узел разработки Moonbeam в режиме мгновенной печати для локального тестирования, чтобы блоки создавались мгновенно по мере получения транзакций. В случае успеха вы должны увидеть вывод, показывающий состояние ожидания, ожидающее создания блоков:
Для получения дополнительной информации о некоторых флагах и параметрах, использованных в примере, ознакомьтесь с разделом «Флаги и параметры». Если вы хотите увидеть полный список всех флагов, параметров и подкоманд, откройте меню справки, выполнив:
docker run --rm --name moonbeam_development \ purestake/moonbeam \ --help
Чтобы продолжить обучение, следующий раздел не нужен, поскольку вы уже создали узел с помощью Docker. Вы можете сразу перейти к подключению приложений Polkadot.js к локальному узлу Moonbeam.
Начало работы с двоичным файлом
Если вы знаете, что делаете, вы можете напрямую загрузить предварительно скомпилированные двоичные файлы, прилагаемые к каждому выпуску, на странице Moonbeam-release. Они не будут работать во всех системах. Например, двоичные файлы работают только с x86-64 Linux с определенными версиями зависимостей. Самый безопасный способ обеспечить совместимость - скомпилировать двоичный файл в системе, из которой он будет запускаться.
Во-первых, начните с клонирования определенного тега репозитория Moonbeam, который вы можете найти здесь:
https://github.com/PureStake/moonbeam/
git clone -b v0.14.2 https://github.com/PureStake/moonbeam cd moonbeam
Если у вас уже установлен Rust, вы можете пропустить следующие два шага. В противном случае установите Rust и его необходимые компоненты с помощью метода, рекомендованного Rust, выполнив:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Затем обновите переменную среды PATH, запустив:
source $HOME/.cargo/env
Теперь создайте узел разработки, запустив:
cargo build --release
Первоначальная сборка займет некоторое время. В зависимости от вашего оборудования вы должны ожидать около 30 минут для завершения процесса сборки.
Вот как должен выглядеть конец вывода сборки:
Затем вы захотите запустить узел в режиме разработки, используя следующую команду:
./target/release/moonbeam --dev
Для людей, не знакомых с Substrate, флаг --dev - это способ запустить узел на основе Substrate в конфигурации разработчика с одним узлом для целей тестирования. Вы можете узнать больше о --dev в этом руководстве по субстратам.
Вы должны увидеть вывод, который выглядит следующим образом, показывая состояние ожидания, пока не будут созданы блоки:
Для получения дополнительной информации о некоторых флагах и параметрах, использованных в примере, ознакомьтесь с разделом «Флаги и параметры». Если вы хотите увидеть полный список всех флагов, параметров и подкоманд, откройте меню справки, выполнив:
./target/release/moonbeam --help
Подключение приложений Polkadot.js к локальному узлу Moonbeam
Узел разработки - это узел на основе подложки, поэтому вы можете взаимодействовать с ним, используя стандартные инструменты подложки. Две предоставленные конечные точки RPC:
HTTP - http://127.0.0.1:9933 WS - WS: //127.0.0.1: 9944
Начните с подключения к нему с помощью приложений Polkadot.js. Откройте в браузере: https://polkadot.js.org/apps/#/explorer. Это откроет приложения Polkadot.js, которые автоматически подключатся к Polkadot MainNet.
Щелкните в верхнем левом углу, чтобы открыть меню для настройки сетей, а затем перейдите вниз, чтобы открыть подменю «Разработка». Там вы захотите переключить опцию «Локальный узел», которая указывает приложениям Polkadot.js на ws: //127.0.0.1: 9944. Затем нажмите кнопку «Переключить», и сайт должен подключиться к вашему узлу разработки Moonbeam.
При подключении приложений Polkadot.js вы увидите узел разработки Moonbeam, ожидающий прибытия транзакций, чтобы начать производство блоков.
Запрос состояния учетной записи
С выпуском Moonbase Alpha v3 , Moonbeam теперь работает в формате единой учетной записи, который представляет собой H160 в стиле Ethereum и теперь также поддерживается в приложениях Polkadot.js. Чтобы проверить баланс адреса, вы можете просто импортировать свою учетную запись во вкладке «Учетные записи». Дополнительную информацию можно найти в разделе «Единые учетные записи».
Тем не менее, используя все возможности Ethereum RPC Moonbeam, вы также можете использовать MetaMask для проверки баланса этого адреса. Кроме того, вы также можете использовать другие инструменты разработки, такие как Remix и Truffle.
Команды, флаги и параметры
Очистка вашего узла
При запуске узла через двоичный файл данные хранятся в локальном каталоге, обычно расположенном в ~ / .local / shared / moonbeam / chain / development / db. Если вы хотите запустить новый экземпляр узла, вы можете либо удалить содержимое папки, либо выполнить следующую команду внутри папки moonbeam:
./target/release/moonbeam purge-chain --dev -y
Это приведет к удалению папки данных, обратите внимание, что все данные цепочки теперь потеряны. Чтобы узнать больше обо всех доступных командах очистки цепочки, вы можете проверить раздел «Очистка двоичных данных» нашей документации.
Если вы развернули свой узел с помощью Docker вместе с флагом -v, чтобы указать смонтированный каталог для вашего контейнера, вам нужно будет очистить этот каталог. Для этого вы можете запустить следующую команду:
sudo rm -rf /var/lib/alphanet-data/*
Если вы следовали инструкциям в этом руководстве и не использовали флаг -v, вы можете остановить и удалить контейнер Docker. Связанные данные будут удалены вместе с ним. Для этого вы можете запустить следующую команду:
sudo docker stop CONTAINER_ID && docker rm CONTAINER_ID
Флаги узлов
Флаги не принимают аргументов. Чтобы использовать флаг, добавьте его в конец команды. Например:
./target/release/moonbeam --dev --dev - указывает цепочку разработки --no-telemetry - отключить подключение к серверу телеметрии Substrate. Для глобальных сетей телеметрия включена по умолчанию. Телеметрия недоступна, если вы используете узел разработки (--dev). --tmp - запускает временный узел, на котором вся конфигурация будет удалена в конце процесса. --rpc-external - прослушивать все интерфейсы RPC --ws-external - прослушивать все интерфейсы Websocket
Параметры узла
Опции принимают аргумент справа от опции. Например:
./target/release/moonbeam --dev --sealing 6000 -l <log pattern> or --log <log pattern> - устанавливает настраиваемый фильтр ведения журнала. Синтаксис шаблона журнала: <цель> = <уровень>. Например, чтобы распечатать все журналы RPC, команда будет выглядеть так: -l rpc=trace --sealing <interval> - когда блоки должны быть запечатаны в сервисе dev. Допустимые аргументы для интервала: мгновенный, ручной или число, представляющее интервал таймера в миллисекундах (например, 6000 заставит узел создавать блоки каждые 6 секунд). По умолчанию мгновенно --rpc-port <port> - устанавливает TCP-порт HTTP RPC-сервера. Принимает порт в качестве аргумента --ws-port <port>: устанавливает TCP-порт RPC-сервера WebSockets. Принимает порт в качестве аргумента
Чтобы получить полный список флагов и параметров, разверните узел разработки Moonbeam, добавив --help в конец команды.
API отладки, трассировки и TxPool
Вы также можете получить доступ к некоторым нестандартным методам RPC, запустив узел трассировки, который позволяет разработчикам проверять и отлаживать транзакции во время выполнения. Узлы трассировки используют образ Docker, отличный от стандартного узла разработки Moonbeam.
Чтобы узнать, как запустить узел трассировки разработки Moonbeam, ознакомьтесь с руководством «Запуск узла трассировки» и обязательно переключитесь на вкладку «Узел разработки Moonbeam» во всех инструкциях. Затем, чтобы получить доступ к нестандартным методам RPC с помощью вашего узла трассировки, ознакомьтесь с руководством по отладке и трассировке.
Предварительно финансируемые счета
Ваш узел разработки Moonbeam поставляется с десятью предварительно профинансированных счетов для разработки. Адреса взяты из канонической мнемоники разработчика Substrate:
bottom drive obey lake curtain smoke basket hold race lonely fit walk
- Alith:
- Public Address:
0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac
- Private Key:
0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133
- Baltathar:
- Public Address:
0x3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0
- Private Key:
0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b
- Charleth:
- Public Address:
0x798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc
- Private Key:
0x0b6e18cafb6ed99687ec547bd28139cafdd2bffe70e6b688025de6b445aa5c5b
- Dorothy:
- Public Address:
0x773539d4Ac0e786233D90A233654ccEE26a613D9
- Private Key:
0x39539ab1876910bbf3a223d84a29e28f1cb4e2e456503e7e91ed39b2e7223d68
- Ethan:
- Public Address:
0xFf64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB
- Private Key:
0x7dce9bc8babb68fec1409be38c8e1a52650206a7ed90ff956ae8a6d15eeaaef4
- Faith:
- Public Address:
0xC0F0f4ab324C46e55D02D0033343B4Be8A55532d
- Private Key:
0xb9d2ea9a615f3165812e8d44de0d24da9bbd164b65c4f0573e1ce2c8dbd9c8df
- Goliath:
- Public Address:
0x7BF369283338E12C90514468aa3868A551AB2929
- Private Key:
0x96b8a38e12e1a31dee1eab2fffdf9d9990045f5b37e44d8cc27766ef294acf18
- Heath:
- Public Address:
0x931f3600a299fd9B24cEfB3BfF79388D19804BeA
- Private Key:
0x0d6dcaaef49272a5411896be8ad16c01c35d6f8c18873387b71fbc734759b0ab
- Ida:
- Public Address:
0xC41C5F1123ECCd5ce233578B2e7ebd5693869d73
- Private Key:
0x4c42532034540267bf568198ccec4cb822a025da542861fcb146a5fab6433ff8
- Judith:
Загляните в раздел Использование MetaMask, чтобы начать взаимодействие с вашими учетными записями.
Кроме того, в узел разработки входит предварительно профинансированная учетная запись, используемая для целей тестирования:
Исследовать блоки
Для узла разработки Moonbeam вы можете использовать любой из следующих обозревателей блоков:
Substrate API - приложения Polkadot.js на WS-порт 9944
Ethereum API на основе JSON-RPC - Moonbeam Basic Explorer на HTTP-порту 9933