Руководство для операторов

Руководство для операторов Это руководство содержит шаги, необходимые для настройки и регистрации вашей ноды для AltLayer MACH AVS (testnet/mainnet).

Минимальные системные требования 4 CPU

  • 16 ГБ памяти

  • 50 ГБ SSD

  • Ubuntu 22.04 LTS

  • Docker v24 и выше

  • EigenLayer CLI

  • Полная нода с RPC-сервисом или управляемыми RPC-сервисами для целевого роллапа

Минимальные требования для стейкинга

💡Для беспрепятственного подключения операторов мы установим требование к начальной доле в 0.

  1. AltLayer MACH AVS Mainnet - 0 ETH

  2. AltLayer MACH AVS Testnet - 1 ETH

Поддерживаемая стратегия токенов

Эфир Beacon Chain и все LST, поддерживаемые EigenLayer, поддерживаются нашей AVS.

Текущие активные AVS

  1. AltLayer MACH AVS - Быстрая окончательность для AVS Optimism Mainnet

  2. AltLayer MACH AVS Testnet - Быстрая окончательность AVS для Optimism Sepolia и Arbitrum One

Настройка операторов

Генерация ключей и пополнение кошелька

  1. Следуйте руководству EigenLayer и установите EigenLayer CLI

  2. Сгенерируйте пары ключей ECDSA и BLS с помощью следующей команды

eigenlayer operator keys create --key-type ecdsa [keyname]
eigenlayer operator keys create --key-type bls [keyname]

💡 Пожалуйста, убедитесь, что вы сохранили свои приватные ключи в безопасном месте. По умолчанию зашифрованные ключи будут храниться в ~/.eigenlayer/operator_keys/.

  1. Внесите не менее 0,3 ETH на сгенерированный ECDSA-адрес. Он потребуется для регистрации ноды на последующих этапах.

  2. Пожалуйста, отправьте ECDSA-адрес через форму заинтересованности MACH AVS https://forms.gle/3A6xNWwRf9ip9CnN9.

Зарегистрируйтесь на EigenLayer в качестве оператора

💡 Вы можете пропустить следующие шаги, если вы уже являетесь зарегистрированным оператором в тестовой и основной сети EigenLayer.

Вам нужно будет сделать это один раз для testnet и один раз для mainnet.

  1. Создайте конфигурационные файлы, необходимые для регистрации оператора, с помощью следующих команд. Следуйте пошаговым инструкциям. После завершения будут созданы файлы operator.yaml и metadata.json.

eigenlayer operator config create
  1. Отредактируйте файл metadata.json и заполните данные о своем операторе.

{
  "name": "Example Operator",
  "website": "<https://example.com/>",
  "description": "Example description",
  "logo": "<https://example.com/logo.png>",
  "twitter": "<https://twitter.com/example>"
}
  1. Загрузите файл metadata.json на общедоступный URL. Затем обновите файл operator.yaml с указанием url (metadata_url). Если вам нужен хостинг для размещения метаданных, вы можете загрузить gist метаданных и получить raw URL.

  2. Если вы впервые регистрируете этот оператор, выполните следующую команду для регистрации и обновления оператора

eigenlayer operator register operator.yaml

После успешной регистрации вы увидите

✅ Operator is registered successfully to EigenLayer

Если в будущем вам понадобится отредактировать метаданные, просто обновите файл metadata.json и выполните следующую команду

eigenlayer operator update operator.yaml
  1. После того, как ваш оператор будет зарегистрирован, он будет отражен на странице оператора EigenLayer.

Testnet: https://holesky.eigenlayer.xyz/operator

Mainnet: https://app.eigenlayer.xyz/operator

Вы также можете проверить статус регистрации оператора с помощью следующей команды.

eigenlayer operator status operator.yaml

Присоединение к MACH AVS

💡 Обучающие модули AltLayer Mach AVS первоначально будет запущен в режиме allowlist для операторов. Заинтересованные операторы могут подать заявку, используя эту форму: https://forms.gle/LmPABTNQcwJhw4UB7

Настройка Mach AVS

Клонирование репозитория Mach AVS

Выполните следующую команду для клонирования репозитория оператора MACH AVS

git clone https://github.com/alt-research/mach-avs-operator-setup.git

Внутри этого репозитория находятся конфигурации для различных MACH AVS. Выберите AVS, которую вы хотите запустить.

💡 Вы можете быть оператором разных MACH AVS. Выполните следующие шаги для каждой MACH AVS.

Измените конфигурацию для сети и MACH AVS, которую вы хотите запустить.

AVS
Конфигурация

Тестнет AltLayer Mach AVS

cd mach-avs-operator-setup/holesky/mach-avs/altlayer-multi-mach

Мейннет AltLayer Mach AVS

cd mach-avs-operator-setup/ethereum/mach-avs/optimism

Подключение и отключение 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, убедитесь, что

  1. Вы обеспечены необходимой инфраструктурой (например, облачным хранилищем) для поддержания работоспособности оператора. Операторы AVS, не справляющиеся со своими обязанностями, могут быть исключены из MACH AVS.

  2. Вы уже были внесены в белый список операторов 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=

Настройка конечной точки роллапа

💡 Поскольку публичные конечные точки RPC обычно имеют ограничение по скорости, настоятельно рекомендуется использовать управляемые сервисы RPC, такие как Infura, Alchemy, или QuickNode, для публичных роллапов, таких как OP Sepolia Testnet.

  1. Перейдите в /configs/chain

  2. Перейдите к конфигурации соответствующего чейна, т. е. optimism или arbitrum_one

  3. Найдите collector и переменную url. Замените значение на конечную точку, которую вы сгенерировали у поставщика услуг RPC, например Infura или Alchemy.

Запуск MACH AVS

Для запуска MACH AVS используйте docker compose.

docker compose pull
docker compose up -d 

Схема Helm

Чтобы запустить MACH AVS в кластере Kubernetes, вы можете использовать образец схемы Helm, доступный в репозитории MACH AVS Operator Setup. Вы можете найти эту схему по следующей ссылке: MACH Operator Helm Chart.

Столкнулись с проблемами?

Пожалуйста, свяжитесь с нами через Slack.

Часто задаваемые вопросы

  1. Как узнать, запущен ли мой оператор?

Для начала проверьте, запущен ли ваш докер-контейнер оператора, выполнив команду 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
  1. Кто управляет агрегатором и выполняет агрегацию подписей BLS?

AltLayer предоставит агрегатор, к которому ваш MACH AVS сможет подключиться и отправить подписи для агрегации. Конечная точка агрегатора предварительно настроена в конфигурационном файле.

  1. Как я могу запустить RPC-ноду для различных роллапов для MACH AVS?

Роллап
Ссылка
  1. Как узнать, что при регистрации я не удовлетворяю требованиям минимального стейкинга?

Выполнение будет отменено:

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
  1. Будут ли вознаграждения в токенах?

Вознаграждения в мейннете MACH AVS будут в будущем. Более подробная информация будет объявлена позже.

  • AltLayer MACH AVS - токены ALT

  1. Я не могу зарегистрироваться и сталкиваюсь с проблемой

Unable to register operator with avs registry coordinator

Пожалуйста, проверьте, достаточно ли средств на вашем ECDSA-адресе. Мы рекомендуем хранить не менее 0,3 ETH, чтобы обеспечить достаточное количество газа для регистрации, подключения и отключения оператора AVS.

Last updated