teku

Ansible Роль: Teku

Описание

Ansible роль, которая устанавливает, настраивает и запускает Teku: корпоративный Java Ethereum 2 клиент.

Содержание

Поддерживаемые платформы

* MacOS
* Debian
* Ubuntu
* Redhat (CentOS/Fedora)
* Amazon

Зависимости

  • JDK 11 или выше

Переменные роли:

Все переменные, которые можно переопределить, хранятся в файле defaults/main.yml. В основном эти переменные — это параметры конфигурации. Дополнительную информацию можно найти в документации Teku документация.

Имя Значение по умолчанию Описание
teku_version unset ТРЕБУЕТСЯ Версия Teku для установки и запуска. Все доступные версии перечислены на странице наших релизов Teku релизы.
teku_user teku Пользователь Teku
teku_group teku Группа Teku
teku_download_url https://artifacts.consensys.net/public/teku/raw/names/teku.tar.gz/versions/{{ teku_version }}/teku-{{ teku_version }}.tar.gz URL для загрузки tar.gz файла. Вы можете использовать это, если вам нужно получить Teku из пользовательского источника, такого как внутренний репозиторий.
teku_install_dir /opt/teku Путь для установки
teku_config_dir /etc/teku Путь для конфигурации по умолчанию
teku_data_dir /opt/teku/data Путь для каталога данных
teku_log_dir /var/log/teku Путь для каталога журналов
teku_log_filename {{ teku_log_dir }}/teku.log Путь, содержащий местоположение (относительное или абсолютное) и имя файла журнала
teku_profile_file /etc/profile.d/teku-path.sh Путь для загрузки Teku в системный PATH
teku_managed_service true Включает службу systemd (или launchd, если на Darwin)
teku_launchd_dir /Library/LaunchAgents Каталог по умолчанию для launchd
teku_systemd_dir /etc/systemd/system/ Каталог по умолчанию для systemd
teku_systemd_state restarted Параметр состояния службы systemd по умолчанию
teku_output_transition_dir /tmp/teku
teku_node_private_key_file ""
teku_network minimal Предопределенная конфигурация сети
teku_host_ip ""
teku_p2p_enabled True Включает или отключает всю P2P связь
teku_p2p_interface 0.0.0.0 Указывает сетевой интерфейс, на котором узел слушает P2P связь
teku_p2p_port 9000 Указывает P2P порты прослушивания (UDP и TCP)
teku_p2p_advertised_port 9000 Рекламируемый P2P порт
teku_p2p_discovery_enabled True Включает или отключает автоматический поиск P2P узлов
teku_interop_genesis_time 0
teku_interop_start_state ""
teku_interop_owned_validator_start_index 0
teku_interop_owned_validator_count 64
teku_interop_number_of_validators 64
teku_interop_enabled False
teku_validators_key_file "" Путь к файлу в формате YAML для загрузки незашифрованных ключей валидаторов
teku_deposit_mode normal
teku_deposit_input_file ""
teku_deposit_number_validators 64
teku_deposit_contract_address 0x Eth1 адрес контракта депозита
teku_deposit_eth1_endpoint "" JSON-RPC URL узла Eth1
teku_metrics_enabled True Установите в true, чтобы включить экспортёр метрик
teku_metrics_interface 0.0.0.0
teku_metrics_port 8008 Порт метрик при развертывании в монохите
teku_beacon_metrics_port 8008 Порт метрик службы маяка при развертывании как самостоятельной
teku_validator_metrics_port 8009 Порт метрик службы валидатора при развертывании как самостоятельной
teku_metrics_categories [] (Все категории включены) Категории, для которых отслеживаются метрики
teku_data_path /data Используйте одну и ту же папку для валидатора и службы маяка в автономном режиме
teku_data_storage_mode prune Установите стратегию управления историческими данными цепочки
teku_beacon_rest_api_port 5051
teku_beacon_rest_api_docs_enabled False
teku_beacon_rest_api_enabled True Включить службу REST API
teku_beacon_rest_api_interface 127.0.0.1 Интерфейс для службы REST API
teku_beacon_rest_api_host_allowlist ["*"] Список разрешённых хостов для REST API
teku_cmdline_args []
teku_cmdline_args_beacon teku_cmdline_args Применимо только в автономном режиме. Позволяет устанавливать специальные значения маяка
teku_cmdline_args_validator teku_cmdline_args Применимо только в автономном режиме. Позволяет устанавливать специальные значения валидатора
teku_env_opts []
teku_env_opts_beacon teku_env_opts Применимо только в автономном режиме. Позволяет устанавливать специальные значения маяка
teku_env_opts_validator teku_env_opts Применимо только в автономном режиме. Позволяет устанавливать специальные значения валидатора
teku_standalone_validator False Запустить валидатор в автономном режиме
teku_beacon_enabled True Нужно ли развернуть узел маяка

Список переменных, которые не определены со значениями по умолчанию в роли ansible. Однако, если эти переменные установлены через командную строку, они будут настроены в конфигурационном файле Teku.

Имя Параметр в конфигурационном файле Описание
teku_data_beacon_path data-beacon-path Путь к данным маяка
teku_data_storage_archive_frequency data-storage-archive-frequency Устанавливает частоту, с которой будут сохраняться окончательные состояния на диск
teku_data_validator_path data-validator-path Путь к данным клиента валидатора
teku_ee_endpoint ee-endpoint URL конечной точки исполнительного движка
teku_ee_jwt_secret_file ee-jwt-secret-file Файл для чтения секрета аутентификации JWT исполнительного движка
teku_log_level logging Уровни детализации журналирования: OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL
teku_log_validator_duties log-include-validator-duties-enabled Включает ли события, которые регистрируются, когда валидаторы выполняют свои обязанности
teku_p2p_discovery_bootnodes p2p-discovery-bootnodes Список ENR узлов для загрузки: ex: ['enr:-enr-string','enr:-enr-string']
teku_p2p_peer_lower_bound p2p-peer-lower-bound Нижняя граница для целевого количества пирингов
teku_p2p_peer_upper_bound p2p-peer-upper-bound Верхняя граница для целевого количества пирингов
teku_p2p_static_peers p2p-static-peers Статические пирингы: ex: ['peer1-address','peer2-address']
teku_p2p_subscribe_all_subnets_enabled p2p-subscribe-all-subnets-enabled True/False
teku_validators_external_signer_public_keys validators-external-signer-public-keys Список публичных ключей внешнего подписывающего: ex: ['key1','key2']
teku_validators_external_signer_timeout validators-external-signer-timeout Тайм-аут (в миллисекундах) для внешнего сервиса подписания
teku_validators_external_signer_url validators-external-signer-url URL для внешнего сервиса подписания
teku_validators_proposer_default_fee_recipient validators-proposer-default-fee-recipient Получатель комиссии по умолчанию, используемый при предложении блоков после слияния
teku_validators_proposer_config validators-proposer-config Удаленный URL или локальный путь для загрузки конфигурации предложителя
teku_validators_proposer_config_refresh_enabled validators-proposer-config-refresh-enabled Необходимо ли периодически обновлять конфигурацию предложителя
teku_validators_graffiti validators-graffiti Граффити, которое будет включено во время создания блока (конвертируется в байты и дополняется до Bytes32).
teku_validators_keystore_locking_enabled validators-keystore-locking-enabled Включить блокировку файлов хранилища валидаторов (допустимые значения True, False)
teku_validators_performance_tracking_enabled validators-performance-tracking-enabled Включить отслеживание производительности валидатора (допустимые значения True, False)
teku_validators_early_attestations_enabled validators-early-attestations-enabled Включить раннее производство аттестации (допустимые значения True, False)
teku_ws_checkpoint ws-checkpoint Последняя контрольная точка в пределах слабой субъективности. Формат :
teku_beacon_node_api_endpoints beacon-node-api-endpoints Массив. Конечные точки API узла маяка, к которым должен подключиться клиент валидатора.

Режим автономной работы

Можно настроить Teku для работы в режиме монолита (оба, маяк и валидатор, работают в одном процессе) или в автономном режиме (маяк и валидатор работают в своих собственных процессах). В автономном режиме служба маяка работает в своем собственном процессе, а служба валидатора — в своем собственном процессе. Имя службы systemd teku используется для службы маяка, а teku-validator - для службы валидатора, когда работает в автономном режиме. Роль ansible по умолчанию запускает Teku в режиме монолита, и поведение можно контролировать с помощью переменной teku_standalone_validator=False/True.

Пример плейбука

  1. Настройка по умолчанию: Установить роль из galaxy
ansible-galaxy install pegasyseng.teku

Создайте файл requirements.yml со следующим содержимым: Замените x.y.z ниже на версию, которую вы хотите использовать из страницы релизов Teku релизы

---
- hosts: localhost
  connection: local
  force_handlers: True

  roles:
  - role: pegasyseng.teku
    vars:
      teku_version: x.y.z

Запустите с помощью ansible-playbook:

ansible-playbook -v /path/to/requirements.yml
  1. Установка через GitHub
ansible-galaxy install git+https://github.com/pegasyseng/ansible-role-teku.git

Создайте файл requirements.yml со следующим содержимым: Замените x.y.z ниже на версию, которую вы хотите использовать из страницы релизов Teku релизы

---
- hosts: localhost
  connection: local
  force_handlers: True

  roles:
  - role: ansible-role-teku
    vars:
      teku_version: x.y.z

Запустите с помощью ansible-playbook:

ansible-playbook -v /path/to/requirements.yml

Лицензия

Apache

Информация об авторе

PegaSysEng, 2020

О проекте

Teku is an open-source java enterprise ethereum 2 client

Установить
ansible-galaxy install ConsenSys/ansible-role-teku
Лицензия
Unknown
Загрузки
6208
Владелец
Consensys is the software engineering leader of the blockchain space. Our full-stack Ethereum products help developers build next-generation networks.