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_repo 和 besu_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_source 为 true 时才需要。 |
besu_git_commit |
master | 用于从源代码构建 Besu 的 git 提交。可以是分支名、提交哈希或任何合法的 git checkout 参数。仅在 besu_build_from_source 为 true 时使用。 |
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_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 | 禁用 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 实现时适用 |
示例剧本
- 默认设置: 从 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.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.