The Moonbase Alpha TestNet

Jadovita
7 min readOct 7, 2021

--

Цель

Первая тестовая сеть Moonbeam, получившая название Moonbase Alpha, призвана предоставить разработчикам возможность начать экспериментировать и строить на Moonbeam в общей среде. Поскольку Moonbeam будет развернут как парачейн на Kusama и Polkadot, мы хотим, чтобы наша TestNet отражала нашу производственную конфигурацию. По этой причине мы решили, что это должна быть конфигурация на основе парачейна, а не установка для разработки субстрата.

Чтобы собрать как можно больше отзывов и обеспечить быстрое решение проблем, мы создали Discord со специальным каналом Moonbase AlphaNet .

Начальная конфигурация

Moonbase Alpha имеет следующую конфигурацию:

  • Moonbase Alpha работает как парачейн, подключенный к релейной цепи.
  • Парачейн имеет два сопоставителя (размещенных на PureStake), которые объединяют блоки. Внешние подборщики могут присоединиться к сети. В активном наборе выбираются только 32 верхних узла подборщика по ставке.
  • В цепочке ретрансляции размещены три валидатора (размещенные на PureStake) для финализации блоков цепочки ретрансляции. Один из них выбирается для завершения каждого блока, сопоставленного подборщиками Moonbeam. Эта установка дает возможность расширения до конфигурации с двумя парачейнами в будущем.
  • Есть две конечные точки RPC (размещенные на PureStake). Люди могут запускать полные узлы для доступа к своим собственным частным конечным точкам RPC.

Функции

Доступны следующие функции:

Сентябрь 2020 год

  • Полностью эмулированное производство блоков Ethereum в субстрате (поддон Ethereum)
  • Управляемые функции для взаимодействия с реализацией Rust EVM (поддон EVM)
  • Встроенная поддержка Ethereum RPC (Web3) в Substrate (Frontier ). Это обеспечивает совместимость с инструментами разработчика Ethereum, такими как MetaMask, Remix и Truffle.

Октябрь 2020

  • Поддержка подписки на события (pub / sub), которая отсутствует на стороне Web3 RPC и обычно используется разработчиками DApp. Вы можете найти руководство о том, как подписаться на события здесь
  • Поддержка следующих контрактов предварительной компиляции : ecrecover , sha256 , ripemd160 и функция идентификации (или datacopy)

Ноябрь 2020

  • Объединение учетных записей Substrate и Ethereum в формате H160, мы называем это объединенными учетными записями . Следовательно, в системе будет только один вид учетной записи, представленный одним адресом.
  • Обновление поддержки подписки на события, добавление возможности использования подстановочных знаков и условного форматирования для тем. Вы можете найти больше информации здесь
  • Приложения Polkadot JS теперь изначально поддерживают адреса H160 и ключи ECDSA. Вы можете использовать свой адрес в стиле Ethereum для функций субстрата (если они доступны), таких как размещение ставок, баланс и управление. Вы можете найти больше информации здесь

Декабрь 2020 г.

  • Обновлен до новейшей версии протокола парачейна Polkadot (Parachains V1 ), в котором исправлено несколько проблем с синхронизацией узлов, что позволило использовать несколько коллаторов для синхронизации в одном парачейне.
  • Несколько улучшений наших функций совместимости с Etheruem:
  • Идентификатор подписки на событие теперь возвращает идентификатор подписки в стиле Ethereum.
  • Исправлены проблемы с оценкой газа для конкретных сценариев использования
  • Добавлена ​​поддержка сообщения о причине возврата
  • Поддержка транзакций Ethereum без ChainId

Январь 2021 г.

  • Добавлена ​​пользовательская версия поддона для стекинга (только для целей тестирования и разработки)
  • Добавлена ​​поддержка запросов ожидающих транзакций, пока они находятся в пуле.
  • Исправлены некоторые проблемы при получении прошлых событий и другие мелкие исправления, связанные с событиями смарт-контрактов.
  • Множественные внутренние улучшения, которые включают оптимизацию времени выполнения EVM, что делает его в 15–50 раз быстрее.
  • Поддержка контрактов предварительной компиляции modexp

Февраль 2021 г.

Апрель 2021 г.

  • Добавлена ​​поддержка модулей отладки / трассировки Ethereum. По умолчанию они отключены, чтобы использовать их, вам нужно развернуть полный узел и включить эту функцию.
  • Исправлены проблемы с распространением блоков, поэтому они больше не ограничиваются подборщиками, улучшая стабильность сети.
  • Добавлены советы и технический комитет, расширяющие возможности управления.
  • Модуль стекинга был переработан с новыми именами для улучшения взаимодействия с конечным пользователем.
  • Добавлены три новых прекомпилятора: Bn128Add , Bn128Mul и Bn128Pairing.

Май 2021 г.

  • Добавлен поддон Казначейства , чтобы включить функции Казначейства в Moonbase Alpha. Были созданы две отдельные казначейства: одна получает 20% комиссий за транзакции и регулируется демократией / советами, а другая получает 30% вознаграждений за блоки, которые будут служить для обеспечения будущих слотов парачейна.
  • Добавлен поддон прокси , который позволяет использовать учетные записи прокси на Moonbase Alpha.
  • Введен новый механизм консенсуса под названием Nimbus. Nimbus предоставляет различные фильтры для выбора случайного подмножества текущего активного пула подборщика для создания следующего блока. Кроме того, авторы блоков теперь подписывают блоки с помощью сеансовых ключей, которые через внешний адрес сопоставляются с адресом H160 для выплаты вознаграждений. Вы можете узнать больше о Nimbus здесь.
  • Добавлен предварительно скомпилированный контракт по стейкингу по адресу 0x0000000000000000000000000000000000000800. Интерфейс для взаимодействия с контрактом можно найти по этой ссылке.
  • Добавлена предварительная фильтрация журналов по цвету для соответствия запросам пользователей через Frontier. Эта функция была дополнительно оптимизирована для достижения более быстрого времени отклика и более предсказуемой производительности.
  • Добавлен поддон Parachain Crowdloan для проверки распределения наград
  • Множество улучшений, направленных на повышение стабильности сети
  • Минимальная цена на газ увеличена до 1 GDEV (аналог GWei на Ethereum).

Примечания к выпуску

Дополнительные сведения об обновлениях Moonbase Alpha см. В следующих примечаниях к выпуску:

Начать

Конечные точки Moonbase Alpha RPC и WSS, размещенные на PureStake, предназначены только для целей разработки и не предназначены для использования в производственных приложениях. Ниже приведены альтернативные поставщики конечных точек:

HTTPS DNS

Чтобы подключиться к Moonbase Alpha через HTTPS, просто укажите вашему провайдеру следующий RPC DNS:

PureStake

code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; font-size: inherit; background: transparent; border: 0px; position: absolute; top: 0.5em; right: 0.5em; z-index: 1; width: 1.5em; height: 1.5em; color: var(--md-default-fg-color--lightest); border-radius: 0.1rem; cursor: pointer; transition: color 250ms ease 0s;">https://rpc.testnet.moonbeam.network

OnFinality

Для библиотеки web3.js вы можете создать локальный экземпляр Web3 и настроить провайдера для подключения к Moonbase Alpha (поддерживаются как HTTP, так и WS):

code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; font-size: inherit; background: transparent; border: 0px; position: absolute; top: 0.5em; right: 0.5em; z-index: 1; width: 1.5em; height: 1.5em; color: var(--md-default-fg-color--lightest); border-radius: 0.1rem; cursor: pointer; transition: color 250ms ease 0s;">const Web3 = require('web3'); //Load Web3 library
.
.
.
//Create local Web3 instance - set Moonbase Alpha as provider
const web3 = new Web3('https://rpc.testnet.moonbeam.network');

Для библиотеки ethers.js определите поставщика, используя ethers.providers.StaticJsonRpcProvider(providerURL, {object})и задав URL-адрес поставщика Moonbase Alpha:

code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; font-size: inherit; background: transparent; border: 0px; position: absolute; top: 0.5em; right: 0.5em; z-index: 1; width: 1.5em; height: 1.5em; color: var(--md-default-fg-color--lightest); border-radius: 0.1rem; cursor: pointer; transition: color 250ms ease 0s;">const ethers = require('ethers');
const providerURL = 'https://rpc.testnet.moonbeam.network';
// Define Provider
const provider = new ethers.providers.StaticJsonRpcProvider(providerURL, {
chainId: 1287,
name: 'moonbase-alphanet'
});

Любой кошелек Ethereum должен иметь возможность генерировать действительный адрес для Moonbeam (например, MetaMask ).

WSS DNS

Для подключений через WebSocket вы можете использовать следующий DNS:

PureStake

code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; font-size: inherit; background: transparent; border: 0px; position: absolute; top: 0.5em; right: 0.5em; z-index: 1; width: 1.5em; height: 1.5em; color: var(--md-default-fg-color--lightest); border-radius: 0.1rem; cursor: pointer; transition: color 250ms ease 0s;">wss://wss.testnet.moonbeam.network

OnFinality

Элара

Идентификатор цепочки

Для Moonbase Alpha TestNet идентификатор цепочки:, 1287который находится 0x507в шестнадцатеричном формате .

Релейная цепь

Для подключения к релейной цепочке Moonbase Alpha, управляемой PureStake, вы можете использовать следующую конечную точку WS:

code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; font-size: inherit; background: transparent; border: 0px; position: absolute; top: 0.5em; right: 0.5em; z-index: 1; width: 1.5em; height: 1.5em; color: var(--md-default-fg-color--lightest); border-radius: 0.1rem; cursor: pointer; transition: color 250ms ease 0s;">wss://wss-relay.testnet.moonbeam.network

Телеметрия

Вы можете увидеть текущую телеметрическую информацию Moonbase Alpha, перейдя по этой ссылке .

Жетоны

Токены на Moonbase Alpha под названием DEV будут выпускаться по запросу. Токены DEV не имеют ценности и могут быть свободно приобретены . В настоящее время есть два способа получить доступ к этому токену: через бота Discord или вручную.

Discord — Управление полетами

Для автоматического запроса токенов мы создали бота Discord (с именем Mission Control), который будет автоматически отправлять максимум 5 токенов DEV каждые 24 часа (на пользователя Discord), когда вы вводите свой адрес. Вы можете проверить это на нашем канале в Discord . Для получения дополнительной информации посетите этот сайт .

В категории «Разное» вы найдете наш бот-канал AlphaNet. Введите следующее сообщение, заменив его <enter-address-here->своим адресом H160:

code" style="box-sizing: inherit; -webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; font-size: inherit; background: transparent; border: 0px; position: absolute; top: 0.5em; right: 0.5em; z-index: 1; width: 1.5em; height: 1.5em; color: var(--md-default-fg-color--lightest); border-radius: 0.1rem; cursor: pointer; transition: color 250ms ease 0s;">!faucet send <enter-address-here->

Ручная процедура

Для запросов токенов, превышающих ограниченную учетную запись, разрешенную нашим ботом Discord, свяжитесь с модератором напрямую через наш канал Discord . Мы рады предоставить токены, необходимые для тестирования ваших приложений.

Подтверждение ставки на ранней стадии

С выпуском Moonbase Alpha v6 TestNet теперь работает с системой Proof of Stake на ранней стадии. В настоящее время активный набор состоит из 32 подборщиков, номинированных на средства DEV, принадлежащие команде.

По мере развития Moonbase Alpha мы планируем превратиться в полностью децентрализованную сеть Proof of Stake.

Ограничения

Это первая TestNet для Moonbeam, поэтому есть некоторые ограничения.

Некоторые прекомпиляторы еще не включены. Вы можете проверить список поддерживаемых прекомпиляций здесь . Однако доступны все встроенные функции.

С момента выпуска Moonbase Alpha v6 максимальный лимит газа на блок был установлен на уровне 15 миллионов, а максимальный лимит газа на транзакцию — 12,995 миллиона.

Пользователи имеют доступ только к парачейну Moonbeam. В будущих сетях мы добавим доступ к цепочке ретрансляции, чтобы пользователи могли тестировать передачу токенов.

Chain Purge

Эта сеть находится в стадии активного развития. Иногда может потребоваться очистка цепочки, чтобы вернуть цепочку блоков в исходное состояние. Это необходимо при выполнении крупных обновлений или обслуживания TestNet. Мы сообщим, когда произойдет чистка цепочки, на нашем канале в Discord как минимум за 24 часа.

Обратите внимание, что PureStake не будет переносить состояние цепочки. Таким образом, все данные, хранящиеся в цепочке блоков, будут потеряны при выполнении очистки цепочки.

Ссылки проекта:
Discord: https://discord.gg/WJ7TWRdK
Сайт проекта: https://moonbeam.network/
Канал TG: https://t.me/Moonbeam_Official
Русская группа TG: https://t.me/moonbeam_official_rus
Medium — https://medium.com/moonbeam-network

--

--