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

* 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

  1. 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
  1. 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.