Одноранговая сеть
Что здесь означает «одноранговая»
AETRON работает как одноранговая сеть майнеров. Каждый майнер - равноправный участник, который и делает работу, и помогает проверять работу других. Центрального сервера, через который обязаны проходить запросы, нет, отдельной роли валидатора, который оценивал бы майнеров сверху, тоже. Сеть образуют сами майнеры.
Как запросы доходят до майнеров
У каждого Нейронета своя схема обнаружения и маршрутизации через шлюз, которую настраивает владелец. Для self-hosted конфигураций сюда входит адрес шлюза. Когда приходит запрос, слой обнаружения и маршрутизации отправляет его майнерам, обслуживающим этот Нейронет, и один из них отдаёт ответ. Добавление и удаление майнеров не требует ни распределения слотов, ни лимитов регистрации, поэтому Нейронет растёт и сжимается вместе со спросом.
Как майнеры проверяют друг друга
Майнер делает две вещи одновременно. Он обслуживает запросы (исполнение) и перепроверяет часть работы других майнеров (проверка). Протокол решает, кто кого перепроверяет, и принуждает к этому правилами наград, поэтому проверка не является добровольной и не отдана привилегированному классу узлов. Обе работы влияют на заработок майнера. Честную работу подтверждают соседи, а результаты, не выдержавшие перепроверки, не оплачиваются.
Корректность меряется через Proof of Intelligence, а пропускная способность - через Pulse, сигнал proof-of-compute, который работает одинаково на NVIDIA, AMD, Apple Silicon и CPU. Мощность идёт за стейком, стоящим за Нейронетом, а не за выставленной настройкой, и работа сверх застейканной мощности не оплачивается.
Как войти в mesh
Транспорт - libp2p: Noise для рукопожатия, Kademlia для обнаружения и circuit relay для майнеров за NAT. В референсном клиенте слушатель выключен, пока mesh_listen не назовёт адрес вроде /ip4/0.0.0.0/tcp/4101; без него майнер не сможет принять задание от шлюза и будет видеть только то, что скажет цепь.
Адреса bootstrap и relay встроены в клиент для каждой сети, поэтому обычному майнеру настраивать нечего. У каждой сети свои relay, и каждый публикуется и как DNS-, и как IP-мультиадрес, чтобы relay мог переехать на другой хост, не сломав клиентов, у которых не резолвится DNS. Перехват такого адреса ничего не даёт, потому что peer id проверяется во время рукопожатия Noise; худшее, что получится, - это отказ в соединении.
Имя протокола Kademlia несёт идентификатор сети, что держит пиров мейннета и тестнета в разных пространствах имён. Переопределив AETRON_NETWORK_ID вручную, вы окажетесь в собственном пространстве, где никто не слушает. Задействованные поля и переменные окружения описаны в Конфигурации, а сбои обнаружения, встречающиеся на практике, - в Диагностике.
Почему такая схема живучая
Раз каждый майнер умеет и обслуживать, и проверять, ни один узел не управляет сетью и ни один не незаменим. Если часть майнеров ушла в офлайн, остальные продолжают обслуживать запросы и проверять друг друга. Референсный клиент (aetron-miner) подключается к ноде, регистрируется, обслуживает инференс и сдаёт артефакты доказательств, но протокол открыт: любой, кто запускает совместимый клиент по публичным спецификациям, является полноценным участником, а не участником второго сорта.