consensys.hyperledger_besu

Rôle Ansible : Besu

Description

Un rôle Ansible qui installera, configurera et exécutera Besu : un client Ethereum Java pour les entreprises.

Table des Matières

Plateformes Supportées

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

Dépendances

  • JDK 11 ou supérieur

Variables du Rôle:

Toutes les variables qui peuvent être remplacées sont stockées dans le fichier defaults/main.yml. En général, ces variables sont des options de configuration. Veuillez consulter la documentation de Besu pour plus d'informations.

Nom Valeur par défaut Description
besu_build_from_source non défini Quand défini à true, Besu est construit à partir des sources git. Voir aussi besu_git_repo et besu_git_commit.
besu_version non défini REQUIS si besu_build_from_source est faux. Version de Besu à installer et à exécuter. Toutes les versions disponibles sont listées sur notre page des solutions.
besu_git_repo https://github.com/hyperledger/besu.git L'URL à utiliser lors du clonage des sources de Besu. Nécessaire uniquement lorsque besu_build_from_source est true.
besu_git_commit master Le commit git à utiliser lors de la construction de Besu à partir des sources. Cela peut être un nom de branche, un hash de commit, ou tout ce qui est légal à utiliser comme argument pour git checkout. Utilisé uniquement si besu_build_from_source est true.
besu_user besu Utilisateur de Besu
besu_group besu Groupe de Besu
besu_download_url https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/{{ besu_version }}/besu-{{ besu_version }}.tar.gz Le fichier tar.gz à télécharger. Vous pouvez l'utiliser si vous devez récupérer Besu à partir d'un emplacement personnalisé tel qu'un dépôt interne.
besu_install_dir /opt/besu Chemin d'installation
besu_config_dir /etc/besu Chemin pour la configuration par défaut
besu_node_private_key_file "" Chemin pour la clé privée du nœud, si fournie. Cela doit inclure le nom et le chemin du fichier clé comme /home/me/me_node/myPrivateKey. Si non fournie, Besu en créera une automatiquement.
besu_data_dir /opt/besu/data Chemin pour le répertoire de données
besu_log_dir /var/log/besu Chemin pour les journaux
besu_log4j_config_file non défini Chemin absolu pour un fichier de configuration log4j personnalisé. Notez que cette configuration de journalisation est remplacée si besu_log_level est défini.
besu_profile_file /etc/profile.d/besu-path.sh Chemin pour permettre le chargement de Besu dans le chemin système
besu_managed_service true Active un service systemd (ou launchd si sur Darwin)
besu_launchd_dir /Library/LaunchAgents Répertoire launchd par défaut
besu_systemd_dir /etc/systemd/system/ Répertoire systemd par défaut
besu_systemd_state restarted L'option par défaut pour l'état du service systemd
besu_identity non défini Configuration de l'identité dans l'ID client
besu_host_ip "" L'IP de l'hôte que Besu utilise pour le réseau P2P. Cela spécifie l'hôte sur lequel P2P écoute
besu_max_peers non défini Le nombre maximum de connexions P2P que vous pouvez établir
besu_network mainnet Le réseau auquel ce nœud va se joindre. D'autres valeurs sont 'ropsten', 'rinkeby', 'goerli', 'classic', 'mordor', 'kotti', 'dev' et 'custom'
besu_genesis_path non défini Le chemin vers le fichier genesis, valide uniquement lorsque besu_network est custom
besu_required_blocks [] Nécessite un pair avec le numéro de bloc spécifié pour avoir le hash spécifié lors de la connexion, ou Besu rejette ce pair
besu_sync_mode FAST Détermine le mode de synchronisation. D'autres valeurs sont 'FULL'
besu_log_level non défini Le niveau de journalisation à utiliser. Autres niveaux de journalisation : 'OFF', 'FATAL', 'WARN', 'INFO', 'DEBUG', 'TRACE', 'ALL'. Notez que définir cela a la priorité sur la configuration définie par besu_log4j_config_file
besu_data_storage_format non défini Format de stockage des données. Les valeurs possibles sont 'FOREST' et 'BONSAI'. La valeur par défaut de Besu est 'FOREST'
besu_engine_jwt_disabled non défini Désactive l'authentification pour l'API Engine. La valeur par défaut de Besu est faux.
besu_engine_jwt_secret non défini Chemin vers le fichier de secret partagé utilisé pour authentifier les clients de consensus lors de l'utilisation de l'API Engine JSON-RPC (HTTP et WebSocket). Le contenu du fichier peut être défini par besu_engine_jwt_secret_content et doit faire au moins 32 octets codés en hexadécimal, ne pas commencer par 0x, sinon une valeur aléatoire est définie automatiquement, mais uniquement si un secret n'existe pas déjà sur le disque. Si non spécifié, par défaut, Besu crée un secret éphémère dans le répertoire de données, qui est supprimé à la sortie.
besu_engine_jwt_secret_content valeur aléatoire Disponible uniquement si besu_engine_jwt_secret est spécifié, le fichier est rempli avec cette valeur, qui doit faire au moins 32 octets codés en hexadécimal et ne pas commencer par 0x, et doit être chiffré avec Ansible Vault.
besu_engine_rpc_port non défini Le port d'écoute pour les appels de l'API Engine (ENGINE, ETH) pour JSON-RPC via HTTP et WebSocket. La valeur par défaut de Besu est 8551
besu_p2p_port 30303 Spécifie les ports d'écoute P2P (UDP et TCP). Les ports doivent être exposés correctement
besu_min_gas 1000 Le prix minimum qu'une transaction offre pour être incluse dans un bloc miné
besu_miner_enabled false Active le minage lorsque le nœud est démarré
besu_miner_coinbase 0x Compte vers lequel les récompenses de minage sont payées
besu_miner_extra_data "" Une chaîne hexadécimale représentant les 32 octets à inclure dans le champ de données supplémentaires d'un bloc miné.
besu_rpc_http_enabled true Active le service HTTP JSON-RPC
besu_rpc_http_host 0.0.0.0 Spécifie l'hôte sur lequel HTTP JSON-RPC écoute
besu_rpc_http_port 8545 Spécifie le port sur lequel HTTP JSON-RPC écoute
besu_rpc_http_api ["ADMIN","DEBUG","NET","ETH","MINER","WEB3"] APIs séparées par des virgules à activer sur le canal HTTP JSON-RPC. Lorsque vous utilisez cette option, l'option besu_rpc_http_enabled doit également être activée
besu_rpc_http_cors_origins ["all"] Domaines d'URL d'origine séparés par des virgules pour la validation CORS
besu_rpc_ws_enabled true Active le service WebSockets
besu_rpc_ws_api ["NET", "ETH", "WEB3"] APIs séparées par des virgules à activer sur le canal HTTP JSON-RPC. Lorsque vous utilisez cette option, l'option besu_rpc_ws_enabled doit également être activée
besu_rpc_ws_host 0.0.0.0 Spécifie l'hôte sur lequel WebSockets écoute
besu_rpc_ws_port 8546 Spécifie le port d'écoute WebSockets JSON-RPC (TCP). Le port doit être exposé correctement
besu_graphql_http_enabled true Active le service HTTP JSON-RPC
besu_graphql_http_host 0.0.0.0 Spécifie l'hôte sur lequel HTTP JSON-RPC écoute
besu_graphql_http_port 8547 Spécifie le port sur lequel HTTP JSON-RPC écoute
besu_graphql_http_cors_origins ["all"] Domaines d'URL d'origine séparés par des virgules pour la validation CORS
besu_rpc_http_authentication_enabled "false" Active l'authentification RPC WS
besu_rpc_http_authentication_credentials_file "" Spécifie le fichier à utiliser pour les identifiants RPC http
besu_rpc_http_authentication_jwt_public_key_file "" Spécifie le fichier à utiliser pour les identifiants RPC http via la clé publique
besu_rpc_ws_authentication_enabled "false" Active l'authentification RPC WS
besu_rpc_ws_authentication_credentials_file "" Spécifie le fichier à utiliser pour les identifiants RPC http
besu_rpc_ws_authentication_jwt_public_key_file "" Spécifie le fichier à utiliser pour les identifiants RPC http via la clé publique
besu_metrics_host 0.0.0.0 Spécifie l'hôte sur lequel Prometheus accède aux métriques de Besu. Le serveur de métriques respecte l'option besu_whitelist
besu_metrics_port 9545 Spécifie le port sur lequel Prometheus accède aux métriques de Besu
besu_bootnodes [] Liste des URLs de nœuds enode séparés par des virgules pour la découverte P2P. Lors de la connexion à MainNet ou aux testnets publics, la valeur par défaut est une liste pré-définie d'URLs enode
besu_static_nodes_file /etc/besu/static-nodes.json Chemin vers le fichier de nœuds statiques
besu_host_whitelist ["*"] Liste séparée par des virgules des noms d'hôtes autorisés à accéder à l'API JSON-RPC. Par défaut, l'accès depuis localhost et 127.0.0.1 est accepté.
besu_local_permissions_enabled "false" Active les permissions locales
besu_local_permissions_config_file /etc/besu/permissions_config.toml Chemin vers le fichier de configuration des permissions des comptes locaux et fichier de configuration des permissions des nœuds locaux
besu_local_permissions_accounts [] Liste des comptes autorisés
besu_local_permissions_nodes [] Liste des nœuds autorisés
besu_permissions_accounts_contract_address non défini L'adresse du contrat pour la permission des comptes sur chaîne
besu_permissions_nodes_contract_address non défini L'adresse du contrat pour la permission des nœuds sur chaîne
besu_cmdline_args "" Arguments de ligne de commande qui sont passés en tant que remplacements
besu_env_opts [] Réglages passés à la JVM via la variable d'environnement BESU_OPTS. par exemple : [-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005]s
besu_env_vars {} Dictionnaire avec les variables d'environnement à définir lors de l'exécution de Besu en tant que service systemd. par exemple : {MALLOC_ARENA_MAX: 2}
besu_privacy_enabled false Active la confidentialité
besu_privacy_url "" URL pour contacter Orion y compris le port par exemple : http://localhost:8888
besu_privacy_public_key_file "" Chemin vers la clé publique d'Orion
besu_privacy_marker_tx_signing_key_file "" Chemin du fichier de clé privée utilisé pour signer les transactions de marque de confidentialité. Si vous ne spécifiez pas cette option, Besu signe chaque transaction avec une clé différente générée aléatoirement.
besu_xdns_enabled "false" Support DNS avec un fournisseur DNS de confiance dans des réseaux privés en raison de limitations où les adresses IP peuvent changer. Par exemple, lors de l'utilisation de pods Kubernetes
besu_target_gas_limit non défini Configuration de la limite de gaz cible
besu_tx_pool layered Sélectionne l'implémentation de la pool de transactions, définie sur legacy pour passer à l'ancienne implémentation
besu_tx_pool_price_bump 10 Pourcentage d'augmentation de prix pour remplacer une transaction existante
besu_tx_pool_limit_by_account_percentage 0.001 Nombre maximum de transactions, relatif à la taille maximale de la pool, autorisées pour le même expéditeur dans la pool des transactions. Par défaut, cela vaut 5 pour empêcher une attaque DoS. Cela utilise une valeur flottante [0..1], donc définir à 1 signifie qu'un seul expéditeur peut remplir l'ensemble de la pool de tx. Ne s'applique que si l'implémentation legacy est sélectionnée
besu_tx_pool_max_size 4096 Nombre maximum de transactions conservées dans la pool de transactions. Ne s'applique que si l'implémentation legacy est sélectionnée
besu_tx_pool_retention_hours 13 Période maximale, en heures, pour conserver les transactions en attente dans la pool de transactions. Ne s'applique que si l'implémentation legacy est sélectionnée

Exemple de Playbook

  1. Configuration par défaut : Installez le rôle depuis Galaxy.
ansible-galaxy install consensys.hyperledger_besu

Créez un fichier requirements.yml avec le contenu suivant : Remplacez x.y.z par la version que vous souhaitez utiliser sur la page des solutions.

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

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

Exécutez avec ansible-playbook :

ansible-playbook -v /path/to/requirements.yml
  1. Installer via GitHub
ansible-galaxy install git+https://github.com/consensys/ansible-role-besu.git

Créez un fichier requirements.yml avec le contenu suivant : Remplacez x.y.z par la version que vous souhaitez utiliser sur la page des solutions.

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

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

Exécutez avec ansible-playbook :

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

Licence

Apache

Informations sur l'Auteur

Consensys, 2023

À propos du projet

Besu is an open-source java enterprise ethereum client

Installer
ansible-galaxy install consensys.hyperledger_besu
Licence
Unknown
Téléchargements
16.2k
Propriétaire
Consensys is the software engineering leader of the blockchain space. Our full-stack Ethereum products help developers build next-generation networks.