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

Сети и эндпоинты

У AETRON две публичные сети. Мейннет несёт настоящий AET, тестнет несёт ничего не стоящий AET и существует для того, чтобы новые версии рантайма и новые Нейронеты можно было обкатать до того, как они коснутся основной цепи. Рантайм у обеих одинаковый, поэтому всё, что вы построили под одну, работает и со второй.

Коротко​

MainnetTestnet
Имя цепиAETRONAETRON Testnet
RPC по WebSocketwss://entrypoint-mainnet.aetron.aiwss://entrypoint-test.aetron.ai
RPC по HTTPShttps://entrypoint-mainnet.aetron.aihttps://entrypoint-test.aetron.ai
Chain ID для EVM3355 (0xd1b)3356 (0xd1c)
Эксплорерexplorer.aetron.ioexplorer.aetron.io, переключатель сети в шапке
REST API эксплорераhttps://api-explorer.aetron.io/mainnet/apihttps://api-explorer.aetron.io/testnet/api
Managed-шлюзпока не опубликованhttps://gateway-testnet.aetron.ai
Консольapp.aetron.ioapp.aetron.io

Один и тот же хост обслуживает и JSON-RPC Substrate, и JSON-RPC Ethereum. Что именно вы получите, определяет вызванный метод, а не URL.

Параметры цепи​

Одинаковы в обеих сетях:

  • Токен: AET, 9 знаков после запятой. Цепь считает в planck, наименьшей неделимой единице, примерно как Ethereum считает в wei: один AET равен 1 000 000 000 planck. Любая сумма в экстринзике или в хранилище указывается в planck, а не в целых AET.
  • Формат адресов: префикс SS58 42, обычный формат Substrate. Один и тот же адрес работает в Polkadot.js, Talisman, SubWallet и расширении AETRON.
  • Время блока: 12 секунд, Aura для производства блоков и GRANDPA для финальности.
  • Экзистенциальный депозит: 500 planck.
  • Эпоха: 7200 блоков, примерно сутки.
  • Пальета AetronPoI стоит в рантайме под индексом 29.

Версию рантайма читайте у цепи, а не доверяйте числу, записанному где бы то ни было, включая эту страницу:

curl -s https://entrypoint-mainnet.aetron.ai \
-H 'Content-Type: application/json' \
-d '{"id":1,"jsonrpc":"2.0","method":"state_getRuntimeVersion","params":[]}'

Подключение к RPC Substrate​

Подойдёт любой инструмент для Substrate. Polkadot.js Apps открывает цепь с эндпоинтом в адресной строке:

https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fentrypoint-mainnet.aetron.ai

Из кода, через @polkadot/api:

import { ApiPromise, WsProvider } from '@polkadot/api';

const api = await ApiPromise.create({
provider: new WsProvider('wss://entrypoint-mainnet.aetron.ai'),
});

const { specVersion } = api.runtimeVersion;
const epoch = await api.query.aetronPoI.currentEpoch();
console.log(specVersion.toString(), epoch.toString());

Обратите внимание на регистр: в метаданных пальета называется AetronPoI, и JS API выставляет её как api.query.aetronPoI.

Обычный HTTP тоже работает, что удобно для скриптов и проверок доступности:

curl -s https://entrypoint-test.aetron.ai \
-H 'Content-Type: application/json' \
-d '{"id":1,"jsonrpc":"2.0","method":"system_health","params":[]}'

Публичные точки входа выставляют безопасный набор RPC. Методы оператора ноды вроде вставки ключей или управления пирами отклоняются. Если нужны они, или архивное состояние, или полное отсутствие лимитов, смотрите статью Запуск ноды.

Подключение к RPC EVM​

Тот же хост отвечает и на Ethereum JSON-RPC, поэтому MetaMask, ethers, viem, Hardhat и Foundry работают без прокси.

ПолеMainnetTestnet
Имя сетиAETRONAETRON Testnet
RPC URLhttps://entrypoint-mainnet.aetron.aihttps://entrypoint-test.aetron.ai
Chain ID33553356
Символ валютыAETAET
Знаков в EVM1818
curl -s https://entrypoint-mainnet.aetron.ai \
-H 'Content-Type: application/json' \
-d '{"id":1,"jsonrpc":"2.0","method":"eth_chainId","params":[]}'
# {"jsonrpc":"2.0","id":1,"result":"0xd1b"}

Одна деталь ловит многих: нативная цепь считает AET в 9 знаках, слой EVM в 18. Frontier масштабирует между ними, поэтому один и тот же баланс выглядит по-разному в зависимости от того, какую сторону вы спрашиваете. См. Совместимость с EVM.

Эксплорер и его API​

explorer.aetron.io показывает блоки, экстринзики, события, аккаунты, переводы и состояние PoI: Нейронеты, майнеров, стейк и эмиссию. Переключатель сети в шапке ходит между мейннетом и тестнетом.

Бэкенд эксплорера открыт на чтение и ключа не требует. Каждый маршрут начинается с имени сети:

https://api-explorer.aetron.io/{mainnet|testnet}/api/...

Полезные маршруты:

МаршрутЧто возвращает
/blocks, /blocks/{id}Список блоков и один блок по высоте или хэшу
/extrinsics, /extrinsics/{id}Экстринзики с вызовом, подписантом и результатом
/events, /events/{eventId}Раскодированные события рантайма
/accounts, /accounts/{address}Балансы аккаунтов, плюс /balance-history и /stake-history
/transfersПереводы AET
/validatorsНабор валидаторов блоков
/network-statsГолова цепи, общий выпуск, общий стейк, счётчики
/runtime/spec-versions/latestВерсия рантайма, которая сейчас проиндексирована
/poi/chainСостояние PoI: эпоха, флаг эмиссии, счётчики Нейронетов и майнеров, стоимость регистрации
/poi/neuronets, /poi/neuronets/{id}Реестр Нейронетов и подробности по одному
/poi/neuronets/{id}/miners, /staking, /emissionsМайнеры, стейкеры и история эмиссии одного Нейронета

Списочные маршруты принимают limit и offset:

curl -s "https://api-explorer.aetron.io/mainnet/api/blocks?limit=5"
curl -s "https://api-explorer.aetron.io/testnet/api/poi/neuronets"

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

Два практических замечания. API ограничен 600 запросами в минуту и дальше отвечает 429. И он стоит за Cloudflare, где соединение, удерживаемое на длинной серии запросов, может зависнуть на десятки секунд; клиент, гоняющий плотный опрос по одному keep-alive сокету, увидит это как зависший API. Разредите опрос или открывайте новое соединение.

Шлюзы​

Шлюз - это HTTP-точка входа в Нейронет: он аутентифицирует вызывающего, выбирает майнера, выполняет задание и возвращает ответ. Это внецепочечная инфраструктура, и её может быть много. Поднять свою может кто угодно.

Managed-шлюз тестнета публичен:

curl https://gateway-testnet.aetron.ai/healthz
# ok

Managed-шлюз мейннета пока не опубликован. До тех пор Нейронет в мейннете обслуживается либо шлюзом, который держит его владелец, либо оператором, с которым владелец договорился, и адрес такого шлюза берётся у них. Сама поверхность запросов одинакова, где бы шлюз ни работал, и описана в статьях Быстрый старт API и Справочник Gateway API.

Консоль​

app.aetron.io - это веб-консоль: создать Нейронет, настроить его задачи, выпустить ключи API, посмотреть использование и расходы. Она работает с теми же сетями, что перечислены выше, и позволяет между ними переключаться.

Какую сеть выбрать​

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

На практике важны три отличия. Мейннет всё ещё находится в launch-фазе, поэтому создание Нейронета и регистрация майнера там требуют холодного ключа из белого списка. Эмиссия на мейннете приостановлена, а на тестнете идёт, поэтому работа в основной цепи пока ничего не приносит. И managed-шлюз существует только в тестнете. Текущее состояние обеих сетей описано в Статусе проекта.