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 |
Пример плейбука
- Настройка по умолчанию: Установите роль из 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
- Установить через 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
Загрузки
11902
Владелец
Consensys is the software engineering leader of the blockchain space. Our full-stack Ethereum products help developers build next-generation networks.