Руководство для операторов
В этом руководстве описаны шаги, необходимые для настройки и регистрации ноды для DODOchain MACH AVS (тестнет/мейннет).
Минимальные системные требования
4 ПРОЦЕССОРА
16 ГБ памяти
50 ГБ SSD
Ubuntu 22.04 LTS
Docker v24 и выше
EigenLayer CLI
Минимальные требования для стейкинга
💡 Для удобства подключения операторов мы установим минимальное значение стейка на уровне 0.
Поддерживаемая стратегия токенов
Эфир Beacon Chain и все LST, поддерживаемые EigenLayer, поддерживаются нашей AVS.
Настройка оператора
Генерация ключей и пополнение кошелька
Следуйте руководству EigenLayer и установите EigenLayer CLI
Сгенерируйте пары ключей ECDSA и BLS с помощью следующей команды
eigenlayer operator keys create --key-type ecdsa [keyname]
eigenlayer operator keys create --key-type bls [keyname]
💡 Пожалуйста, убедитесь, что вы сохранили резервные копии своих приватных ключей в безопасном месте. По умолчанию зашифрованные ключи будут храниться в ~/.eigenlayer/operator_keys/
Внесите не менее 0,3 ETH на сгенерированный ECDSA-адрес. Он потребуется для регистрации ноды на последующих этапах.
Пожалуйста, отправьте ECDSA-адрес через форму заинтересованности MACH AVS https://forms.gle/3A6xNWwRf9ip9CnN9.
Зарегистрируйтесь в EigenLayer в качестве оператора
💡 Вы можете пропустить следующие шаги, если вы уже являетесь зарегистрированным оператором в тестнете и мейннете EigenLayer.
Вам нужно будет сделать это один раз для тестнета и один раз для мейннета.
Создайте конфигурационные файлы, необходимые для регистрации оператора, с помощью следующих команд. Следуйте пошаговым инструкциям. После завершения будут созданы файлы
operator.yaml
иmetadata.json
.
eigenlayer operator config create
Отредактируйте файл
metadata.json
и заполните данные о своем операторе.
{
"название": "пример оператора",
"вебсайт": "<https://example.com/>",
"описание": "пример описания",
"логотип": "<https://example.com/logo.png>",
"twitter": "<https://twitter.com/example>"
}
Загрузите файл
metadata.json
на публичный URL. Затем обновите файлoperator.yaml
, указав в нем URL (metadata_url
). Если вам нужен хостинг для размещения метаданных, вы можете загрузить gist метаданных и получитьraw
URL.Если вы впервые регистрируете этот оператор, выполните следующую команду для регистрации и обновления оператора
eigenlayer operator register operator.yaml
После успешной регистрации вы должны увидеть
✅ Operator is registered successfully to EigenLayer
Если в будущем вам понадобится отредактировать метаданные, просто обновите файл metadata.json и выполните следующую команду
eigenlayer operator update operator.yaml
После того, как ваш оператор будет зарегистрирован, он будет отражен на странице оператора EigenLayer.
Тестнет: https://holesky.eigenlayer.xyz/operator
Мейннет: https://app.eigenlayer.xyz/operator

Вы также можете проверить статус регистрации оператора с помощью следующей команды.
eigenlayer operator status operator.yaml
Присоединение к MACH AVS
💡 Учебные ролики DODOchain Mach AVS первоначально будут запущены в режиме разрешительного списка операторов. Заинтересованные операторы могут зарегистрировать свой интерес с помощью этой формы:
https://forms.gle/LmPABTNQcwJhw4UB7.
Настройка Mach AVS
Клонирование репозитория Mach AVS
Выполните следующую команду для клонирования репозитория оператора MACH AVS и изменить каталог на DODOchain MACH AVS mainnet config.
git clone https://github.com/alt-research/mach-avs-operator-setup.git
cd mach-avs-operator-setup/ethereum/mach-avs/dodochain-testnet
Подключение и отключение от MACH AVS
Для подключения и отключения скопируйте следующие env
cp .env.opt-example .env.opt
Обновите разделы TODO
в .env.opt
###############################################################################
####### TODO: Операторы, пожалуйста, обновите следующие значения для вашей ноды ##############
###############################################################################
# TODO: Установите url метаданных для оператора
METADATA_URI=https://path/to/metadata.json
# TODO: Операторы должны обновить это значение в соответствии с их собственными путями
USER_HOME=${HOME}
EIGENLAYER_HOME=${USER_HOME}/.eigenlayer
# TODO: Операторы должны обновить это для своих собственных ключей
NODE_ECDSA_KEY_FILE_HOST=${EIGENLAYER_HOME}/operator_keys/opr.ecdsa.key.json
NODE_BLS_KEY_FILE_HOST=${EIGENLAYER_HOME}/operator_keys/opr.bls.key.json
# TODO: Операторам необходимо добавить пароль для расшифровки вышеуказанных ключей.
# Если ваш пароль содержит пробел, / или $, пожалуйста, используйте одинарную кавычку, чтобы
# инкапсулировать ваш пароль, например, 'mypassword /$'
OPERATOR_BLS_KEY_PASSWORD=
OPERATOR_ECDSA_KEY_PASSWORD=
Чтобы подключиться
💡 Перед тем как подключиться к MACH AVS, убедитесь, что
У вас есть необходимая инфраструктура (например, облачный хостинг) для поддержания работоспособности оператора. Операторы AVS, не справляющиеся со своими обязанностями, могут быть исключены из MACH AVS.
Вы уже были внесены в вайтлист операторов MACH AVS.
./run.sh opt-in
Если вы больше не хотите запускать AVS, вы можете отказаться от участия, запустив
./run.sh opt-out
💡 Обновление EigenLayer AVS и страницы оператора может занять несколько минут. Это автоматический процесс.
Запуск MACH AVS
Создайте файл среды
cp .env.example .env
Настройка оператора MACH AVS
Обновите секции TODO
в файле .env
💡 Путь по умолчанию, где хранятся сгенерированные ключи ~/.eigenlayer/operator_keys/
###############################################################################
####### TODO: Операторы, пожалуйста, обновите следующие значения для вашей ноды ##############
###############################################################################
# TODO: Операторы должны обновить эти значения для своих путей
USER_HOME=${HOME}
EIGENLAYER_HOME=${USER_HOME}/.eigenlayer
# TODO: Операторам необходимо установить адрес ecdsa.
# который можно получить из `eigenlayer operator keys list`, адрес находится в `Key Type: ECDSA`
OPERATOR_ECDSA_ADDRESS=
# TODO: Операторы должны обновить этот адрес до своих собственных ключей
NODE_BLS_KEY_FILE_HOST=${EIGENLAYER_HOME}/operator_keys/opr.bls.key.json
# TODO: Операторам необходимо добавить пароль для расшифровки вышеуказанных ключей
# Если ваш пароль содержит пробел, / или $, пожалуйста, используйте одинарную кавычку, чтобы
# инкапсулировать ваш пароль, например, 'mypassword /$'
OPERATOR_BLS_KEY_PASSWORD=
Настройка конечной точки роллапа
Мы предварительно настроили mach-config.toml
с RPC, размещенным на AltLayer. В качестве альтернативы вы можете обратиться к членам команды AltLayer в рабочей группе Slack за инструкциями по размещению собственной RPC-ноды.
Если вы столкнулись с ограничениями скорости на публичных конечных точках, мы рекомендуем вам использовать управляемые службы RPC, такие как Infura, Alchemy, или QuickNode.
Если вы хотите обновить L1 или Rollup RPC,
Перейдите в
/chain-config/mach-config.toml
Найдите
fetcher
иl1-fetcher
. Найдите переменнуюurl
иl1_url
. Замените значение на свою конечную точку.
Запуск MACH AVS
Чтобы запустить MACH AVS, выполните docker compose.
docker compose pull --policy always
docker compose pull
docker compose up -d
Чтобы снести контейнер
docker compose down
Если вы хотите включить мониторинг, выполните следующие действия
docker compose --profile monitoring up
Если вы хотите остановить мониторинг:
docker compose --profile monitoring down
При использовании профиля monitoring
вы можете добавить grafana
для мониторинга сервиса, порт по умолчанию 1300
, доступ осуществляется через localhost:13000
.
Схема Helm
Чтобы запустить MACH AVS в кластере Kubernetes, вы можете использовать образец схемы Helm, доступный в репозитории MACH AVS Operator Setup. Вы можете найти эту схему по следующей ссылке: MACH Operator Helm Chart.
Столкнулись с проблемами?
Пожалуйста, свяжитесь с нами через Slack.
Часто задаваемые вопросы
Как узнать, запущен ли мой оператор?
Для начала проверьте, запущен ли ваш докер-контейнер оператора, выполнив команду docker compose ps
.
docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
mach-avs-operator-node public.ecr.aws/altlayer/mach-operator:latest "operator" mach-operator-node 33 seconds ago Up 32 seconds 0.0.0.0:9092->9092/tcp, :::9092->9092/tcp
mach-avs-operator-verifier public.ecr.aws/altlayer/mach:latest "/usr/local/bin/op-m…" mach-operator-verifier 33 seconds ago Up 32 seconds 0.0.0.0:9094->9094/tcp, :::9094->9094/tcp, 9715/tcp
mach-avs-reverse-proxy-1 nginx:latest "/docker-entrypoint.…" reverse-proxy 33 seconds ago Up 32 seconds 80/tcp, 0.0.0.0:9091->9091/tcp, :::9091->9091/tcp
Далее вы можете проверить логи, чтобы узнать, были ли запущены сервисы или нет
2024-04-01T17:04:29.613Z INFO logging/zap_logger.go:49 Start operator {"address": "0xAD6B95793DD4D2b8e184FB4666D1cfb14871A035"}
2024-04-01T17:04:29.956Z INFO logging/zap_logger.go:69 Starting operator.
2024-04-01T17:04:29.956Z INFO logging/zap_logger.go:69 Starting node api server at address 0.0.0.0:9091
2024-04-01T17:04:29.956Z INFO logging/zap_logger.go:69 Starting metrics server at port 0.0.0.0:9092
2024-04-01T17:04:29.956Z INFO logging/zap_logger.go:49 start rpc server for got alert
2024-04-01T17:04:29.957Z INFO logging/zap_logger.go:49 node api server running {"addr": "0.0.0.0:9091"}
Наконец, чтобы определить, валидирует ли ваша AVS целевой роллап, можно просмотреть логи верификационного контейнера на предмет активности валидации блоков.
docker logs <name of container>
[2024-04-01T17:06:28Z INFO actor::scheduler] Validate block #166853(0x7ddde84c28da088639bb699a8982e206ca4aea4031fe37b2aa9c69fd23bac940) passed
[2024-04-01T17:06:32Z INFO actor::block-fetcher] Finalized block #166666(0x747828ae5886e1c254462ab586a32ac2fd69f93c06af8b339819160997de3879)
[2024-04-01T17:06:32Z INFO actor::block-fetcher] Latest block #166853(0x7ddde84c28da088639bb699a8982e206ca4aea4031fe37b2aa9c69fd23bac940)
[2024-04-01T17:06:36Z INFO actor::block-fetcher] Finalized block #166666(0x747828ae5886e1c254462ab586a32ac2fd69f93c06af8b339819160997de3879)
[2024-04-01T17:06:37Z INFO actor::block-fetcher] Latest block #166854(0x6f3029b754134107c4e341e1d37a4be99709b1781ba281a7d8483b5dc63b1dbb)
[2024-04-01T17:06:37Z INFO actor::scheduler] Pre validate block #166854(0x6f3029b754134107c4e341e1d37a4be99709b1781ba281a7d8483b5dc63b1dbb) passed
[2024-04-01T17:06:37Z INFO actor::scheduler] There are 1 block validation tasks waiting for result
[2024-04-01T17:06:37Z INFO actor::scheduler] Validate block #166854(0x6f3029b754134107c4e341e1d37a4be99709b1781ba281a7d8483b5dc63b1dbb) passed
[2024-04-01T17:06:41Z INFO actor::block-fetcher] Finalized block #166666(0x747828ae5886e1c254462ab586a32ac2fd69f93c06af8b339819160997de3879)
[2024-04-01T17:06:41Z INFO actor::block-fetcher] Latest block #166854(0x6f3029b754134107c4e341e1d37a4be99709b1781ba281a7d8483b5dc63b1dbb)
[2024-04-01T17:06:46Z INFO actor::block-fetcher] Finalized block #166666(0x747828ae5886e1c254462ab586a32ac2fd69f93c06af8b339819160997de3879)
[2024-04-01T17:06:46Z INFO actor::block-fetcher] Latest block #166855(0x07fbc09cf59e93b965c471153d4fabbff38ed0f72a7a2da43a141861b500fea1)
[2024-04-01T17:06:46Z INFO actor::scheduler] Pre validate block #166855(0x07fbc09cf59e93b965c471153d4fabbff38ed0f72a7a2da43a141861b500fea1) passed
[2024-04-01T17:06:46Z INFO actor::scheduler] There are 1 block validation tasks waiting for result
[2024-04-01T17:06:46Z INFO actor::scheduler] Validate block #166855(0x07fbc09cf59e93b965c471153d4fabbff38ed0f72a7a2da43a141861b500fea1) passed
Кто управляет агрегатором и выполняет агрегацию подписей BLS?
AltLayer предоставит агрегатор, к которому ваш MACH AVS сможет подключиться и отправить подписи для агрегации. Конечная точка агрегатора предварительно настроена в конфигурационном файле.
Как узнать, что при регистрации я не удовлетворяю требованиям минимального стейкинга?
Выполнение будет отменено:
execution reverted: StakeRegistry.registerOperator: Operator does not meet minimum stake
2024-04-02T19:05:40.535Z INFO logging/zap_logger.go:49 registering operator with the AVS's registry coordinator {"avs-service-manager": "0xAE9a4497dee2540DaF489BeddB0706128a99ec63", "operator": "0x44220295991E4Fe4f3A4C5FE04E96B1b19960766", "quorumNumbers": "AA=="}
2024-04-02T19:05:42.162Z ERROR logging/zap_logger.go:57 Unable to register operator with avs registry coordinator {"error": "execution reverted: StakeRegistry.registerOperator: Operator does not meet minimum stake requirement for quorum"}
github.com/Layr-Labs/eigensdk-go/logging.(*ZapLogger).Error
Будут ли вознаграждения в токенах?
Вознаграждения в мейннете MACH AVS будут в будущем. Более подробная информация будет объявлена позже.
Я не могу зарегистрироваться и сталкиваюсь с проблемой
Unable to register operator with avs registry coordinator
Пожалуйста, проверьте, достаточно ли средств на вашем ECDSA-адресе. Мы рекомендуем хранить не менее 0,3 ETH, чтобы обеспечить достаточное количество газа для регистрации, подключения и отключения оператора AVS.
Last updated