hyperledger_besu

Ansible Роль: Besu

Описание

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

Содержание

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

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

Зависимости

  • JDK 11 или выше

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

Все переменные, которые могут быть переопределены, хранятся в файле defaults/main.yml. В общем, эти переменные являются опциями настройки. Пожалуйста, смотрите документацию Besu docs для получения дополнительной информации.

Имя Значение по умолчанию Описание
besu_build_from_source unset Когда установлено на true, Besu собирается из git исходников. Смотрите также besu_git_repo и besu_git_commit
besu_version unset ТРЕБУЕТСЯ если besu_build_from_source ложно. Версия Besu для установки и запуска. Все доступные версии перечислены на странице Besu решений
besu_git_repo https://github.com/hyperledger/besu.git URL для клонирования исходников besu. Необходимо только когда besu_build_from_source истинно.
besu_git_commit master Git-коммит, который будет использоваться при сборке Besu из исходников. Может быть именем ветки, хешем коммита или чем-то, что можно использовать в качестве аргумента для git checkout. Используется только если besu_build_from_source истинно.
besu_user besu Пользователь Besu
besu_group besu Группа Besu
besu_download_url https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/{{ besu_version }}/besu-{{ besu_version }}.tar.gz URL для загрузки tar.gz файла. Вы можете использовать это, если нужно получить besu из пользовательского местоположения, например, внутреннего репозитория.
besu_install_dir /opt/besu Путь для установки
besu_config_dir /etc/besu Путь для конфигурации по умолчанию
besu_node_private_key_file "" Путь к приватному ключу узла, если он указан. Должен включать имя файла и путь, например: /home/me/me_node/myPrivateKey. Если не задан, Besu создаст его автоматически
besu_data_dir /opt/besu/data Путь к директории данных
besu_log_dir /var/log/besu Путь к логам
besu_log4j_config_file unset Абсолютный путь к пользовательскому файлу конфигурации log4j. Обратите внимание, что эта конфигурация логов будет переопределена, если установлено besu_log_level
besu_profile_file /etc/profile.d/besu-path.sh Путь для добавления Besu в системный PATH
besu_managed_service true Включает сервис systemd (или launchd, если на Darwin)
besu_launchd_dir /Library/LaunchAgents Папка по умолчанию для launchd
besu_systemd_dir /etc/systemd/system/ Папка по умолчанию для systemd
besu_systemd_state restarted Значение по умолчанию для состояния сервиса systemd
besu_identity unset Конфигурация идентичности в ID клиента
besu_host_ip "" IP-адрес хоста, который использует Besu для сети P2P. Определяет хост, на котором прослушивается P2P
besu_max_peers unset Максимальное количество P2P соединений, которые можно установить
besu_network mainnet Сеть, к которой будет подключен этот узел. Другие значения: 'ropsten', 'rinkeby', 'goerli', 'classic', 'mordor', 'kotti', 'dev' и 'custom'
besu_genesis_path unset Путь к файлу генезиса, действителен только когда besu_network равен custom
besu_required_blocks [] Требует подключение к узлу с указанным номером блока, чтобы иметь указанный хеш, иначе Besu отклоняет этот узел
besu_sync_mode FAST Указывает режим синхронизации. Другие значения: 'FULL'
besu_log_level unset Уровень логирования, который будет использоваться. Другие уровни: 'OFF', 'FATAL', 'WARN', 'INFO', 'DEBUG', 'TRACE', 'ALL'. Установив это, вы переопределяете конфигурацию, заданную besu_log4j_config_file
besu_data_storage_format unset Формат хранения данных. Возможные значения: 'FOREST' и 'BONSAI'. Значение по умолчанию для besu - 'FOREST'
besu_engine_jwt_disabled unset Отключает аутентификацию для API Engine. Значение по умолчанию для besu - false.
besu_engine_jwt_secret unset Путь к файлу общего секретного ключа, используемого для аутентификации клиентов консенсуса при использовании API Engine JSON-RPC (как HTTP, так и WebSocket). Содержимое файла может быть установлено с помощью besu_engine_jwt_secret_content и должно содержать минимум 32 байта в шестнадцатеричном формате, не начинаться с 0x, иначе будет автоматически установлен случайный значение, но только если секрет еще не существует на диске. Если не указано, по умолчанию Besu создает эфемерный секрет в директории данных, который удаляется при выходе.
besu_engine_jwt_secret_content случайное значение Доступно только если указан besu_engine_jwt_secret, файл заполняется этим значением, которое должно содержать минимум 32 байта в шестнадцатеричном формате и не начинаться с 0x, и должно быть зашифровано с помощью Ansible Vault.
besu_engine_rpc_port unset Порт прослушивания для вызовов API Engine (ENGINE, ETH) для JSON-RPC через HTTP и WebSocket. Значение по умолчанию для besu - 8551
besu_p2p_port 30303 Указывает порты прослушивания P2P (UDP и TCP). Порты должны быть правильно открыты
besu_min_gas 1000 Минимальная цена, которую транзакция предлагает, чтобы быть включенной в добываемый блок
besu_miner_enabled false Включает майнинг при запуске узла
besu_miner_coinbase 0x Учетная запись, на которую выплачиваются вознаграждения за майнинг
besu_miner_extra_data "" Шестнадцатеричная строка, представляющая 32 байта, которые будут включены в поле дополнительных данных извлекаемого блока.
besu_rpc_http_enabled true Включает HTTP JSON-RPC сервис
besu_rpc_http_host 0.0.0.0 Указывает хост, на котором прослушивается HTTP JSON-RPC
besu_rpc_http_port 8545 Указывает порт, на котором прослушивается HTTP JSON-RPC
besu_rpc_http_api ["ADMIN","DEBUG","NET","ETH","MINER","WEB3"] Перечисленные через запятую API, которые нужно включить в HTTP JSON-RPC канал. При использовании этой опции также должна быть включена опция besu_rpc_http_enabled
besu_rpc_http_cors_origins ["all"] Перечисленные через запятую URL-адреса исходных доменов для проверки CORS
besu_rpc_ws_enabled true Включает сервис WebSockets
besu_rpc_ws_api ["NET", "ETH", "WEB3"] Перечисленные через запятую API, которые нужно включить в канал HTTP JSON-RPC. При использовании этой опции также должна быть включена опция besu_rpc_ws_enabled
besu_rpc_ws_host 0.0.0.0 Указывает хост, на котором прослушивают WebSockets
besu_rpc_ws_port 8546 Указывает порт для прослушивания Websockets JSON-RPC (TCP). Порт должен быть правильно открыт
besu_graphql_http_enabled true Включает HTTP JSON-RPC сервис
besu_graphql_http_host 0.0.0.0 Указывает хост, на котором прослушивается HTTP JSON-RPC
besu_graphql_http_port 8547 Указывает порт, на котором прослушивается HTTP JSON-RPC
besu_graphql_http_cors_origins ["all"] Перечисленные через запятую URL-адреса исходных доменов для проверки CORS
besu_rpc_http_authentication_enabled "false" Включает аутентификацию RPC WS
besu_rpc_http_authentication_credentials_file "" Указывает файл, который будет использоваться для учетных данных RPC http
besu_rpc_http_authentication_jwt_public_key_file "" Указывает файл, который будет использоваться для учетных данных RPC http через открытый ключ
besu_rpc_ws_authentication_enabled "false" Включает аутентификацию RPC WS
besu_rpc_ws_authentication_credentials_file "" Указывает файл, который будет использоваться для учетных данных RPC http
besu_rpc_ws_authentication_jwt_public_key_file "" Указывает файл, который будет использоваться для учетных данных RPC http через открытый ключ
besu_metrics_host 0.0.0.0 Указывает хост, на котором Prometheus получает метрики Besu. Сервер метрик уважает опцию besu_whitelist
besu_metrics_port 9545 Указывает порт, на котором Prometheus получает метрики Besu
besu_bootnodes [] Список URL-адресов enode, разделенных запятыми, для начального открытия P2P. При подключении к MainNet или публичным тестовым сетям значение по умолчанию - заранее определенный список URL-адресов enode
besu_static_nodes_file /etc/besu/static-nodes.json Путь к файлу статических узлов
besu_host_whitelist ["*"] Перечисленный через запятую список имен хостов, которым разрешен доступ к API JSON-RPC. По умолчанию доступ допускается из localhost и 127.0.0.1.
besu_local_permissions_enabled "false" Включает местное разрешение
besu_local_permissions_config_file /etc/besu/permissions_config.toml Путь к файлу конфигурации местных разрешений учетных записей и файлу конфигурации местных узлов разрешений
besu_local_permissions_accounts [] Список разрешенных учетных записей
besu_local_permissions_nodes [] Список разрешенных узлов
besu_permissions_accounts_contract_address unset Адрес контракта для разрешений учетных записей onchain
besu_permissions_nodes_contract_address unset Адрес контракта для разрешений узлов onchain
besu_cmdline_args "" Аргументы командной строки, передаваемые в качестве переопределений
besu_env_opts [] Настройки, передаваемые JVM через переменную окружения BESU_OPTS. например: [-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005]s
besu_env_vars {} Словарь с переменными окружения, которые должны быть заданы при запуске Besu как сервиса systemd. Например: {MALLOC_ARENA_MAX: 2}
besu_privacy_enabled false Включает конфиденциальность
besu_privacy_url "" URL для связи с Orion, включая порт, например: http://localhost:8888
besu_privacy_public_key_file "" Путь к публичному ключу Orion
besu_privacy_marker_tx_signing_key_file "" Путь к файлу приватного ключа, используемого для подписания транзакций Privacy Marker. Если вы не укажете эту опцию, Besu будет подписывать каждую транзакцию разными случайно сгенерированными ключами.
besu_xdns_enabled "false" Поддержка DNS с надежным провайдером DNS в частных сетях из-за ограничений, когда IP-адреса могут меняться. Например, при использовании подов Kubernetes
besu_target_gas_limit unset Конфигурация целевого газового лимита
besu_tx_pool layered Выбор реализации пула транзакций, устанавливайте в legacy, чтобы переключиться на старую реализацию
besu_tx_pool_price_bump 10 Процент повышения цены, чтобы заменить существующую транзакцию
besu_tx_pool_limit_by_account_percentage 0.001 Максимальное количество транзакций, относительно максимального размера пула, для одного и того же отправителя, разрешенных в пуле транзакций. По умолчанию 5 для предотвращения DoS-атаки. Это использует значение с плавающей точкой [0..1], поэтому установка на 1 означает, что один отправитель может заполнить весь пул транзакций. Применяется только если выбрана реализация legacy
besu_tx_pool_max_size 4096 Максимальное количество транзакций, хранящихся в пуле транзакций. Применяется только если выбрана реализация legacy
besu_tx_pool_retention_hours 13 Максимальный срок, в часах, для хранения ожидающих транзакций в пуле транзакций. Применяется только если выбрана реализация legacy

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

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

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

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

  roles:
  - role: consensys.hyperledger_besu
    vars:
      besu_version: x.y.z

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

ansible-playbook -v /path/to/requirements.yml
  1. Установить через github
ansible-galaxy install git+https://github.com/consensys/ansible-role-besu.git

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

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

  roles:
  - role: ansible-role-besu
    vars:
      besu_version: x.y.z

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

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

Лицензия

Apache

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

Consensys, 2023

О проекте

Besu is an open-source java enterprise ethereum client

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