consensys.hyperledger_besu
Rol de Ansible: Besu
Descripción
Rol de Ansible que instalará, configurará y ejecutará Besu: un cliente empresarial de Ethereum en Java.
Contenido
- Plataformas Soportadas
- Dependencias
- Variables del Rol
- Ejemplo de Playbook
- Licencia
- Información del Autor
Plataformas Soportadas
* MacOS
* Debian
* Ubuntu
* Redhat (CentOS/Fedora)
* Amazon
Dependencias
- JDK 11 o superior
Variables del Rol:
Todas las variables que se pueden sobrescribir se almacenan en el archivo defaults/main.yml. En general, estas variables son opciones de configuración. Consulte la documentación de Besu para más información.
Nombre | Valor por Defecto | Descripción |
---|---|---|
besu_build_from_source |
no establecido | Cuando se establece en true , Besu se compila a partir de fuentes de git. Consulte también besu_git_repo y besu_git_commit |
besu_version |
no establecido | REQUERIDO si besu_build_from_source es falso. Versión de Besu a instalar y ejecutar. Todas las versiones disponibles se enumeran en nuestra página de soluciones |
besu_git_repo |
https://github.com/hyperledger/besu.git | La URL a utilizar al clonar las fuentes de Besu. Solo es necesario cuando besu_build_from_source es true . |
besu_git_commit |
master | El commit de git a utilizar al compilar Besu desde la fuente. Puede ser un nombre de rama, hash de commit o cualquier cosa legal para usar como argumento para git checkout . Solo se utiliza si besu_build_from_source es true . |
besu_user |
besu | Usuario de Besu |
besu_group |
besu | Grupo de Besu |
besu_download_url |
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/{{ besu_version }}/besu-{{ besu_version }}.tar.gz | Archivo tar.gz para descargar. Puede usar esto si necesita recuperar Besu de una ubicación personalizada, como un repositorio interno. |
besu_install_dir |
/opt/besu | Ruta de instalación |
besu_config_dir |
/etc/besu | Ruta para la configuración predeterminada |
besu_node_private_key_file |
"" | Ruta para la clave privada del nodo, si se proporciona. Debe incluir el nombre y la ruta del archivo de clave del nodo, como /home/me/me_node/myPrivateKey . Si no se proporciona, Besu creará una automáticamente. |
besu_data_dir |
/opt/besu/data | Ruta para el directorio de datos |
besu_log_dir |
/var/log/besu | Ruta para los registros |
besu_log4j_config_file |
no establecido | Ruta absoluta para un archivo de configuración customizado de log4j. Tenga en cuenta que esta configuración de registro se anula si se establece besu_log_level . |
besu_profile_file |
/etc/profile.d/besu-path.sh | Ruta para cargar Besu en el PATH del sistema |
besu_managed_service |
true | Habilita un servicio systemd (o launchd si está en Darwin) |
besu_launchd_dir |
/Library/LaunchAgents | El directorio launchd predeterminado |
besu_systemd_dir |
/etc/systemd/system/ | El directorio systemd predeterminado |
besu_systemd_state |
restarted | La opción predeterminada para el estado del servicio systemd |
besu_identity |
no establecido | Configuración de identidad en el ID del Cliente |
besu_host_ip |
"" | La IP del host que Besu utiliza para la red P2P. Esto especifica el host donde escucha P2P |
besu_max_peers |
no establecido | El número máximo de conexiones P2P que puede establecer |
besu_network |
mainnet | La red a la que se unirá este nodo. Otros valores son 'ropsten', 'rinkeby', 'goerli', 'classic', 'mordor', 'kotti', 'dev' y 'custom' |
besu_genesis_path |
no establecido | La ruta al archivo genesis, solo válido cuando besu_network es custom |
besu_required_blocks |
[] | Requiere un par con el número de bloque especificado para tener el hash especificado al conectarse, o Besu rechaza ese par |
besu_sync_mode |
FAST | Especifica el modo de sincronización. Otros valores son 'FULL' |
besu_log_level |
no establecido | El nivel de registro a utilizar. Otros niveles de registro son 'OFF', 'FATAL', 'WARN', 'INFO', 'DEBUG', 'TRACE', 'ALL'. Tenga en cuenta que establecer esto tiene prioridad sobre la configuración establecida por besu_log4j_config_file |
besu_data_storage_format |
no establecido | Formato de almacenamiento de datos. Los valores posibles son 'FOREST' y 'BONSAI'. El valor predeterminado de Besu es 'FOREST' |
besu_engine_jwt_disabled |
no establecido | Desactiva la autenticación para la API de Motor. El valor predeterminado de Besu es falso. |
besu_engine_jwt_secret |
no establecido | Ruta al archivo de secreto compartido utilizado para autenticar clientes de consenso al usar la API Engine JSON-RPC (tanto HTTP como WebSocket). El contenido del archivo podría establecerse con besu_engine_jwt_secret_content y debe tener al menos 32 bytes codificados en hexadecimal, no comenzar con 0x, de lo contrario, se establece un valor aleatorio automáticamente, pero solo si no existe un secreto en el disco. Si no se especifica, por defecto Besu crea un secreto efímero en el directorio de datos, que se elimina al salir. |
besu_engine_jwt_secret_content |
valor aleatorio | Solo disponible si se especifica besu_engine_jwt_secret , el archivo se llena con este valor, que debe tener al menos 32 bytes codificados en hexadecimal y no comenzar con 0x, y debe estar cifrado con Ansible Vault. |
besu_engine_rpc_port |
no establecido | El puerto de escucha para las llamadas a la API de Motor (ENGINE, ETH) para JSON-RPC sobre HTTP y WebSocket. El valor predeterminado de Besu es 8551 |
besu_p2p_port |
30303 | Especifica los puertos de escucha P2P (UDP y TCP). Los puertos deben estar expuestos adecuadamente |
besu_min_gas |
1000 | El precio mínimo que una transacción ofrece para ser incluida en un bloque minado |
besu_miner_enabled |
false | Habilita la minería cuando se inicia el nodo |
besu_miner_coinbase |
0x | Cuenta a la que se pagan las recompensas de minería |
besu_miner_extra_data |
"" | Una cadena hexadecimal que representa los 32 bytes que se incluirán en el campo de datos extra de un bloque minado. |
besu_rpc_http_enabled |
true | Habilita el servicio JSON-RPC HTTP |
besu_rpc_http_host |
0.0.0.0 | Especifica el host en el que escucha JSON-RPC HTTP |
besu_rpc_http_port |
8545 | Especifica el puerto en el que escucha JSON-RPC HTTP |
besu_rpc_http_api |
["ADMIN","DEBUG","NET","ETH","MINER","WEB3"] | APIs separadas por comas para habilitar en el canal JSON-RPC HTTP. Cuando use esta opción, también debe habilitarse la opción besu_rpc_http_enabled |
besu_rpc_http_cors_origins |
["all"] | URLs de dominios de origen, separadas por comas, para la validación de CORS |
besu_rpc_ws_enabled |
true | Habilita el servicio de WebSockets |
besu_rpc_ws_api |
["NET", "ETH", "WEB3"] | APIs separadas por comas para habilitar en el canal JSON-RPC HTTP. Cuando use esta opción, también debe habilitarse la opción besu_rpc_ws_enabled |
besu_rpc_ws_host |
0.0.0.0 | Especifica el host en el que escucha WebSockets |
besu_rpc_ws_port |
8546 | Especifica el puerto de escucha JSON-RPC de WebSockets (TCP). El puerto debe estar expuesto adecuadamente |
besu_graphql_http_enabled |
true | Habilita el servicio JSON-RPC HTTP |
besu_graphql_http_host |
0.0.0.0 | Especifica el host en el que escucha JSON-RPC HTTP |
besu_graphql_http_port |
8547 | Especifica el puerto en el que escucha JSON-RPC HTTP |
besu_graphql_http_cors_origins |
["all"] | URLs de dominios de origen, separadas por comas, para la validación de CORS |
besu_rpc_http_authentication_enabled |
"false" | Habilitar autenticación RPC WS |
besu_rpc_http_authentication_credentials_file |
"" | Especifica el archivo que se utilizará para las credenciales RPC http |
besu_rpc_http_authentication_jwt_public_key_file |
"" | Especifica el archivo que se utilizará para las credenciales RPC http a través de la clave pública |
besu_rpc_ws_authentication_enabled |
"false" | Habilitar autenticación RPC WS |
besu_rpc_ws_authentication_credentials_file |
"" | Especifica el archivo que se utilizará para las credenciales RPC http |
besu_rpc_ws_authentication_jwt_public_key_file |
"" | Especifica el archivo que se utilizará para las credenciales RPC http a través de la clave pública |
besu_metrics_host |
0.0.0.0 | Especifica el host en el que Prometheus accede a las métricas de Besu. El servidor de métricas respeta la opción besu_whitelist |
besu_metrics_port |
9545 | Especifica el puerto en el que Prometheus accede a las métricas de Besu |
besu_bootnodes |
[] | Lista de URLs enode separadas por comas para el descubrimiento P2P inicial. Al conectarse a MainNet o redes de prueba públicas, el valor predeterminado es una lista predefinida de URLs enode |
besu_static_nodes_file |
/etc/besu/static-nodes.json | Ruta al archivo de nodos estáticos |
besu_host_whitelist |
["*"] |
Lista separada por comas de nombres de host para permitir el acceso a la API JSON-RPC. Por defecto, se acepta el acceso desde localhost y 127.0.0.1. |
besu_local_permissions_enabled |
"false" | Habilitar permisos locales |
besu_local_permissions_config_file |
/etc/besu/permissions_config.toml | Ruta al archivo de configuración de permisos de cuentas locales y archivo de configuración de permisos de nodos locales |
besu_local_permissions_accounts |
[] | Lista de cuentas con permisos |
besu_local_permissions_nodes |
[] | Lista de nodos con permisos |
besu_permissions_accounts_contract_address |
no establecido | La dirección del contrato para permisos de cuentas en cadena |
besu_permissions_nodes_contract_address |
no establecido | La dirección del contrato para permisos de nodos en cadena |
besu_cmdline_args |
"" | Argumentos de línea de comandos que se envían como sobrescrituras |
besu_env_opts |
[] | Configuraciones pasadas a la JVM a través de la variable de entorno BESU_OPTS . ej: [-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005]s |
besu_env_vars |
{} | Diccionario con variables de entorno para establecer al ejecutar Besu como servicio systemd. ej: {MALLOC_ARENA_MAX: 2} |
besu_privacy_enabled |
false | Habilitar privacidad |
besu_privacy_url |
"" | URL para contactar a Orion incluyendo puerto, ej: http://localhost:8888 |
besu_privacy_public_key_file |
"" | Ruta a la clave pública de Orion |
besu_privacy_marker_tx_signing_key_file |
"" | Ruta del archivo de clave privada utilizado para firmar transacciones de marcadores de privacidad. Si no especifica esta opción, Besu firma cada transacción con una clave generada aleatoriamente diferente. |
besu_xdns_enabled |
"false" | Soporte DNS con un proveedor de DNS de confianza en redes privadas debido a las limitaciones donde las direcciones IP pueden cambiar. Por ejemplo, al usar pods de Kubernetes |
besu_target_gas_limit |
no establecido | Configuración del límite de gas objetivo |
besu_tx_pool |
layered | Seleccionar la implementación del grupo de transacciones, establecer en legacy para cambiar a la antigua implementación |
besu_tx_pool_price_bump |
10 | El porcentaje de aumento de precio para reemplazar una transacción existente |
besu_tx_pool_limit_by_account_percentage |
0.001 | El número máximo de transacciones, en relación con el tamaño máximo del grupo, permitidas en el grupo de transacciones para el mismo emisor. Por defecto es 5 para prevenir un ataque DoS. Esto usa un valor flotante [0..1], así que establecerlo en 1 significa que un único emisor puede llenar todo el grupo de tx. Solo aplicar si se selecciona legacy |
besu_tx_pool_max_size |
4096 | El número máximo de transacciones mantenidas en el grupo de transacciones. Solo aplicar si se selecciona legacy |
besu_tx_pool_retention_hours |
13 | El período máximo, en horas, para mantener transacciones pendientes en el grupo de transacciones. Solo aplicar si se selecciona legacy |
Ejemplo de Playbook
- Configuración predeterminada: Instala el rol desde galaxy
ansible-galaxy install consensys.hyperledger_besu
Crea un requirements.yml con lo siguiente:
Reemplace x.y.z
abajo con la versión que le gustaría usar de la página de soluciones de Besu
---
- hosts: localhost
connection: local
force_handlers: True
roles:
- role: consensys.hyperledger_besu
vars:
besu_version: x.y.z
Ejecuta con ansible-playbook:
ansible-playbook -v /ruta/a/requirements.yml
- Instalación a través de GitHub
ansible-galaxy install git+https://github.com/consensys/ansible-role-besu.git
Crea un requirements.yml con lo siguiente:
Reemplace x.y.z
abajo con la versión que le gustaría usar de la página de soluciones de Besu
---
- hosts: localhost
connection: local
force_handlers: True
roles:
- role: ansible-role-besu
vars:
besu_version: x.y.z
Ejecuta con ansible-playbook:
ansible-playbook -v /ruta/a/requirements.yml
Licencia
Apache
Información del Autor
Consensys, 2023
Acerca del proyecto
Besu is an open-source java enterprise ethereum client
Instalar
ansible-galaxy install consensys.hyperledger_besu
Licencia
Unknown
Descargas
16.2k
Propietario
Consensys is the software engineering leader of the blockchain space. Our full-stack Ethereum products help developers build next-generation networks.