[DYOR] Research && Projects
November 29, 2021

Начало работы с узлом разработки Moonbeam

Перевод оффициальной документации мунбим. Ознакомится с оригиналом можете по ссылке - https://docs.moonbeam.network/builders/get-started/moonbeam-dev/

Содержание:

Вступление

Начало работы с Docker

Начало работы с двоичным файлом

Подключение приложений 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, используя следующее:

Ubuntu

docker run --rm --name moonbeam_development --network host \ purestake/moonbeam:v0.14.2 \ --dev

MacOS

docker run --rm --name moonbeam_development -p 9944:9944 -p 9933:9933 \ purestake/moonbeam:v0.14.2 \ --dev --ws-external --rpc-external

Windows

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:
    • Public Address: 0x2898FE7a42Be376C8BC7AF536A940F7Fd5aDd423
    • Private Key: 0x94c49300a58d576011096bcb006aa06f5a91b34b4383891e8029c21dc39fbb8b


Загляните в раздел Использование MetaMask, чтобы начать взаимодействие с вашими учетными записями.

Кроме того, в узел разработки входит предварительно профинансированная учетная запись, используемая для целей тестирования:

  • Gerald:
    • Public Address: 0x6Be02d1d3665660d22FF9624b7BE0551ee1Ac91b
    • Private Key: 0x99b3c12287537e38c90a9219d4cb074a89a16e9cdb20bf85728ebd97c343e342


Исследовать блоки

Для узла разработки Moonbeam вы можете использовать любой из следующих обозревателей блоков:

Substrate API - приложения Polkadot.js на WS-порт 9944
Ethereum API на основе JSON-RPC - Moonbeam Basic Explorer на HTTP-порту 9933