consensys.hyperledger_besu

Ansible 角色:Besu

描述

Ansible 角色,用于安装、配置和运行 Besu:一个企业级 Java Ethereum 客户端。

目录

支持的平台

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

依赖

  • JDK 11 或更高版本

角色变量:

所有可以重写的变量存储在 defaults/main.yml 文件中。一般来说,这些变量是配置选项。有关更多信息,请参考 Besu 文档

名称 默认值 描述
besu_build_from_source unset 当设置为 true 时,从 git 源代码构建 Besu。请参见 besu_git_repobesu_git_commit
besu_version unset 必需 如果 besu_build_from_source 为 false。要安装和运行的 Besu 版本。所有可用版本在 Besu 解决方案 页面上列出。
besu_git_repo https://github.com/hyperledger/besu.git 克隆 Besu 源代码时使用的 URL。仅当 besu_build_from_sourcetrue 时才需要。
besu_git_commit master 用于从源代码构建 Besu 的 git 提交。可以是分支名、提交哈希或任何合法的 git checkout 参数。仅在 besu_build_from_sourcetrue 时使用。
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 用于下载的 tar.gz 文件。如果需要从自定义位置(例如内部库)获取 Besu,可以使用此 URL。
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 服务(如果在 Darwin 上,则启用 launchd)
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 "" Besu 用于 P2P 网络的主机 IP。此参数指定 P2P 监听的主机。
besu_max_peers unset 可以建立的 P2P 连接的最大数量
besu_network mainnet 该节点将加入的网络。其他值为 'ropsten'、'rinkeby'、'goerli'、'classic'、'mordor'、'kotti'、'dev' 和 'custom'
besu_genesis_path unset 创世文件的路径,仅在 besu_networkcustom 时有效
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 禁用 Engine API 的身份验证。Besu 的默认值为 false。
besu_engine_jwt_secret unset 用于通过 Engine JSON-RPC API(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 Engine API 调用(ENGINE、ETH)的监听端口,用于 HTTP 和 WebSocket 的 JSON-RPC。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"] 在 HTTP JSON-RPC 通道上启用的 API,使用此选项时,besu_rpc_http_enabled 选项也必须启用
besu_rpc_http_cors_origins ["all"] 用于 CORS 验证的域 URL,以逗号分隔
besu_rpc_ws_enabled true 启用 WebSocket 服务
besu_rpc_ws_api ["NET", "ETH", "WEB3"] 在 HTTP JSON-RPC 通道上启用的 API,使用此选项时,besu_rpc_ws_enabled 选项也必须启用
besu_rpc_ws_host 0.0.0.0 指定 WebSocket 监听的主机
besu_rpc_ws_port 8546 指定 WebSocket 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"] 用于 CORS 验证的域 URL,以逗号分隔
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 [] 用于 P2P 发现引导的以逗号分隔的 enode URL 列表。在连接到 MainNet 或公共测试网时,默认使用预定义的 enode URL 列表
besu_static_nodes_file /etc/besu/static-nodes.json 静态节点文件 的路径
besu_host_whitelist ["*"] 用于允许访问 JSON-RPC API 的主机名的以逗号分隔的列表。默认情况下,接受来自 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 链上账户权限设置的合约地址
besu_permissions_nodes_contract_address unset 链上节点权限设置的合约地址
besu_cmdline_args "" 作为重写参数传入的命令行参数
besu_env_opts [] 通过 BESU_OPTS 环境变量传递给 JVM 的设置。例如: [-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005]s
besu_env_vars {} 运行 Besu 时要设置的环境变量字典。例如: {MALLOC_ARENA_MAX: 2}
besu_privacy_enabled false 启用隐私
besu_privacy_url "" Orion 的联系 URL,包括端口,例如: http://localhost:8888
besu_privacy_public_key_file "" Orion 公钥的路径
besu_privacy_marker_tx_signing_key_file "" 用于签署隐私标记交易的私钥文件路径。如果不指定此选项,Besu 会使用不同的随机生成密钥签署每个交易。
besu_xdns_enabled "false" 在私有网络中与受信任的 DNS 提供商支持 DNS,以应对 IP 地址可能变化的限制情况,例如使用 Kubernetes pods 时
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,以防止拒绝服务攻击。此值为浮动值 [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.hyperledger_besu
许可证
Unknown
下载
16.2k
拥有者
Consensys is the software engineering leader of the blockchain space. Our full-stack Ethereum products help developers build next-generation networks.