consensys.teku

Ansible 角色: Teku

描述

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

目录

支持的平台

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

依赖

  • JDK 11 或更高版本

角色变量:

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

名称 默认值 描述
teku_version 未设置 必需 要安装和运行的 teku 版本。所有可用版本在 teku 的 发布 页面中列出。
teku_user teku teku 用户
teku_group teku teku 组
teku_download_url https://artifacts.consensys.net/public/teku/raw/names/teku.tar.gz/versions/{{ teku_version }}/teku-{{ teku_version }}.tar.gz 下载用的 tar.gz 文件。如果需要从自定义位置(例如内部仓库)获取 teku,可以使用此链接。
teku_install_dir /opt/teku 安装路径
teku_config_dir /etc/teku 默认配置路径
teku_data_dir /opt/teku/data 数据目录路径
teku_log_dir /var/log/teku 日志目录路径
teku_log_filename {{ teku_log_dir }}/teku.log 包含位置(相对或绝对)和日志文件名的路径
teku_profile_file /etc/profile.d/teku-path.sh 允许将 teku 加载进系统 PATH 的路径
teku_managed_service true 启用 systemd 服务(在 Darwin 上为 launchd)
teku_launchd_dir /Library/LaunchAgents 默认 launchd 目录
teku_systemd_dir /etc/systemd/system/ 默认 systemd 目录
teku_systemd_state restarted systemd 服务状态的默认选项
teku_output_transition_dir /tmp/teku
teku_node_private_key_file ""
teku_network minimal 预定义网络配置
teku_host_ip ""
teku_p2p_enabled True 启用或禁用所有 P2P 通信
teku_p2p_interface 0.0.0.0 指定节点监听 P2P 通信的网络接口
teku_p2p_port 9000 指定 P2P 监听端口(UDP 和 TCP)
teku_p2p_advertised_port 9000 广告的 P2P 端口
teku_p2p_discovery_enabled True 启用或禁用 P2P 节点发现
teku_interop_genesis_time 0
teku_interop_start_state ""
teku_interop_owned_validator_start_index 0
teku_interop_owned_validator_count 64
teku_interop_number_of_validators 64
teku_interop_enabled False
teku_validators_key_file "" 用于加载未加密验证者密钥的 YAML 格式文件路径
teku_deposit_mode normal
teku_deposit_input_file ""
teku_deposit_number_validators 64
teku_deposit_contract_address 0x 存款合约的 Eth1 地址
teku_deposit_eth1_endpoint "" Eth1 节点的 JSON-RPC URL
teku_metrics_enabled True 设置为 true 以启用指标导出功能
teku_metrics_interface 0.0.0.0
teku_metrics_port 8008 部署为单体时的指标端口
teku_beacon_metrics_port 8008 部署为独立时的信标服务指标端口
teku_validator_metrics_port 8009 部署为独立时的验证服务指标端口
teku_metrics_categories [] (所有类别启用) 追踪指标的类别
teku_data_path /data 在单独模式中,为验证者和信标服务使用同一文件夹
teku_data_storage_mode prune 设置处理历史链数据的策略
teku_beacon_rest_api_port 5051
teku_beacon_rest_api_docs_enabled False
teku_beacon_rest_api_enabled True 启用 REST API 服务
teku_beacon_rest_api_interface 127.0.0.1 REST API 服务的接口
teku_beacon_rest_api_host_allowlist ["*"] REST API 服务的主机白名单
teku_cmdline_args []
teku_cmdline_args_beacon teku_cmdline_args 仅适用于独立模式,允许设置信标特定的值
teku_cmdline_args_validator teku_cmdline_args 仅适用于独立模式,允许设置验证器特定的值
teku_env_opts []
teku_env_opts_beacon teku_env_opts 仅适用于独立模式,允许设置信标特定的值
teku_env_opts_validator teku_env_opts 仅适用于独立模式,允许设置验证器特定的值
teku_standalone_validator False 以独立模式运行验证器
teku_beacon_enabled True 是否部署信标节点

未在 Ansible 角色中定义默认值的变量列表。然而,如果这些变量通过命令行设置,则会在 teku 配置文件中进行配置。

名称 配置文件参数 描述
teku_data_beacon_path data-beacon-path 信标数据路径
teku_data_storage_archive_frequency data-storage-archive-frequency 设置将最终状态存储到磁盘的频率(以槽为单位)
teku_data_validator_path data-validator-path 验证器客户端数据路径
teku_ee_endpoint ee-endpoint 执行引擎的端点 URL
teku_ee_jwt_secret_file ee-jwt-secret-file 读取执行引擎 JWT 身份验证密钥的文件
teku_log_level logging 日志级别: OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL
teku_log_validator_duties log-include-validator-duties-enabled 是否在验证器执行任务时记录事件
teku_p2p_discovery_bootnodes p2p-discovery-bootnodes 启动节点的 ENR 列表,例如: ['enr:-enr-string','enr:-enr-string']
teku_p2p_peer_lower_bound p2p-peer-lower-bound 目标对等点的下限
teku_p2p_peer_upper_bound p2p-peer-upper-bound 目标对等点的上限
teku_p2p_static_peers p2p-static-peers 静态对等点,例如: ['peer1-address','peer2-address']
teku_p2p_subscribe_all_subnets_enabled p2p-subscribe-all-subnets-enabled True/False
teku_validators_external_signer_public_keys validators-external-signer-public-keys 外部签名者公共密钥列表,例如: ['key1','key2']
teku_validators_external_signer_timeout validators-external-signer-timeout 外部签名服务的超时(以毫秒为单位)
teku_validators_external_signer_url validators-external-signer-url 外部签名服务的URL
teku_validators_proposer_default_fee_recipient validators-proposer-default-fee-recipient 提议合并区块时使用的默认费用接收者
teku_validators_proposer_config validators-proposer-config 加载提议者配置的远程 URL 或本地文件路径
teku_validators_proposer_config_refresh_enabled validators-proposer-config-refresh-enabled 是否定期刷新提议者配置
teku_validators_graffiti validators-graffiti 在创建区块时包含的涂鸦(将被转换为字节并填充为 Bytes32)
teku_validators_keystore_locking_enabled validators-keystore-locking-enabled 启用锁定验证者密钥库文件(有效值 True, False)
teku_validators_performance_tracking_enabled validators-performance-tracking-enabled 启用验证者性能跟踪和日志记录(有效值 True, False)
teku_validators_early_attestations_enabled validators-early-attestations-enabled 启用提前认证生产(有效值 True, False)
teku_ws_checkpoint ws-checkpoint 在弱主观期内的最近检查点。格式 :
teku_beacon_node_api_endpoints beacon-node-api-endpoints 数组。验证器客户端应该连接的信标节点 API 端点。

独立模式

可以将 Teku 配置为在单体模式下运行(信标和验证者在同一进程中运行)或独立模式(信标和验证者在各自的进程中运行)。独立模式将信标服务与验证者服务运行在各自的进程中。系统服务名称 teku 用于信标服务,teku-validator 用于在独立模式下运行的验证者服务。Ansible 角色默认在单体模式下运行 Teku,行为可以通过变量 teku_standalone_validator=False/True 来控制。

示例剧本

  1. 默认设置: 从 galaxy 安装角色。
ansible-galaxy install pegasyseng.teku

创建一个 requirements.yml 文件,如下所示: 将下面的 x.y.z 替换为您想要使用的 teku 版本,参见 teku 发布 页面。

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

  roles:
  - role: pegasyseng.teku
    vars:
      teku_version: x.y.z

使用 ansible-playbook 运行:

ansible-playbook -v /path/to/requirements.yml
  1. 通过 GitHub 安装:
ansible-galaxy install git+https://github.com/pegasyseng/ansible-role-teku.git

创建一个 requirements.yml 文件,如下所示: 将下面的 x.y.z 替换为您想要使用的 teku 版本,参见 teku 发布 页面。

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

  roles:
  - role: ansible-role-teku
    vars:
      teku_version: x.y.z

使用 ansible-playbook 运行:

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

许可证

Apache

作者信息

PegaSysEng, 2020

关于项目

Teku is an open-source java enterprise ethereum 2 client

安装
ansible-galaxy install consensys.teku
许可证
Unknown
下载
6.2k
拥有者
Consensys is the software engineering leader of the blockchain space. Our full-stack Ethereum products help developers build next-generation networks.