Сети и эндпоинты
У AETRON две публичные сети. Мейннет несёт настоящий AET, тестнет несёт ничего не стоящий AET и существует для того, чтобы новые версии рантайма и новые Нейронеты можно было обкатать до того, как они коснутся основной цепи. Рантайм у обеих одинаковый, поэтому всё, что вы построили под одну, работает и со второй.
Коротко
| Mainnet | Testnet | |
|---|---|---|
| Имя цепи | AETRON | AETRON Testnet |
| RPC по WebSocket | wss://entrypoint-mainnet.aetron.ai | wss://entrypoint-test.aetron.ai |
| RPC по HTTPS | https://entrypoint-mainnet.aetron.ai | https://entrypoint-test.aetron.ai |
| Chain ID для EVM | 3355 (0xd1b) | 3356 (0xd1c) |
| Эксплорер | explorer.aetron.io | explorer.aetron.io, переключатель сети в шапке |
| REST API эксплорера | https://api-explorer.aetron.io/mainnet/api | https://api-explorer.aetron.io/testnet/api |
| Managed-шлюз | пока не опубликован | https://gateway-testnet.aetron.ai |
| Консоль | app.aetron.io | app.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 работают без прокси.
| Поле | Mainnet | Testnet |
|---|---|---|
| Имя сети | AETRON | AETRON Testnet |
| RPC URL | https://entrypoint-mainnet.aetron.ai | https://entrypoint-test.aetron.ai |
| Chain ID | 3355 | 3356 |
| Символ валюты | AET | AET |
| Знаков в EVM | 18 | 18 |
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-шлюз существует только в тестнете. Текущее состояние обеих сетей описано в Статусе проекта.