infra-role-geth/defaults/main.yml

139 lines
4.0 KiB
YAML

---
geth_service_name: 'geth'
geth_service_path: '/docker/{{ geth_service_name }}'
geth_compose_path: '{{ geth_service_path }}/docker-compose.yml'
# Security, json is optional
#geth_account_addr: ~
#geth_account_pass: ~
#geth_account_json: ~
# account
geth_account_json_file: '{{ geth_cont_vol }}/keys/account.json'
geth_account_pass_file: '{{ geth_cont_vol }}/keys/account.pass'
geth_account_addr_file: '{{ geth_cont_vol }}/keys/account.addr'
# Container config
geth_cont_tag: 'v1.14.2'
geth_cont_image: 'ethereum/client-go:{{ geth_cont_tag }}'
geth_cont_name: '{{ geth_service_name }}-node'
geth_cont_vol: '{{ geth_service_path }}/node'
geth_cont_stop_grace_period: '1m'
geth_enode_file: '{{ geth_cont_vol }}/keys/enode'
geth_sync_check_script: '/usr/local/bin/check_sync_{{ geth_cont_name | replace("-", "_") }}.sh'
# Enable metrics
geth_metrics_enabled: true
geth_metrics_port: 6060
# RPC port of administration
geth_rpc_enabled: true
geth_rpc_addr: '127.0.0.1'
geth_rpc_port: 8545
# Available: admin, clique, debug, eth, les, miner, net, personal, rpc, txpool, web3, engine
geth_rcp_api: 'eth,net,web3,personal,admin,engine'
# useful for linking containers
geth_rpc_extra_vhost: geth
geth_rpc_vhosts:
- 'localhost'
- '{{ geth_cont_name }}'
- '{{ geth_rpc_extra_vhost }}'
- '{{ hostname }}'
- '{{ hostname }}.wg'
- '{{ ansible_local.wireguard.vpn_ip }}'
# Wrapper for easier RPC usage
geth_rpc_wrapper: '{{ geth_service_path }}/rpc.sh'
# Web Sockets API
geth_websocket_enabled: false
geth_websocket_addr: '127.0.0.1'
geth_websocket_port: '{{ geth_rpc_port|int + 1 | int }}'
geth_websocket_api: 'eth,net,web3,personal,admin,engine'
geth_websocket_origins: '{{ geth_rpc_vhosts }}'
# Engine API
geth_authrpc_enabled: true
geth_authrpc_addr: '127.0.0.1'
geth_authrpc_port: 8551
geth_authrpc_vhosts: '{{ geth_rpc_vhosts }}'
#geth_authrpc_jwtsecret: '0x64charHexEncodedSecretToken'
geth_authrpc_jwtsecret_file: '{{ geth_cont_vol }}/keys/jwtsecret'
# Sync mode: full, fast, light, snap
geth_sync_mode: 'light'
# Maximum number of untrusted peers that can connect
geth_max_peers: 50
# Maximum pending connection attempts
geth_max_pend_peers: 30
# Maximum percentage of time allowed for serving LES requests (0-90)
geth_light_serv: 90
# Peer discovery protocol
geth_discovery_enabled: true
geth_v5disc_enabled: true
# List of trusted peers to connect to
geth_trusted_peers: []
geth_trusted_peers_file: '{{ geth_cont_vol }}/data/trusted-nodes.json'
# Any additional flags you want to provide
geth_extra_flags: []
# Some custom testnets require a custom init
geth_init_enabled: false
geth_init_genesis_path: '{{ geth_cont_vol }}/genesis.json'
#geth_init_url: ~
#geth_init_sha256: ~
# Custom bootnodes
geth_bootnodes: []
# Mining settings
geth_miner_enabled: false
geth_miner_account: '{{ geth_account_addr }}'
# Whisper protocol
geth_whisper_enabled: false
geth_whisper_pow: 0.2
# logging
geth_lov_level_names:
silent: 0
error: 1
warn: 2
info: 3
debug: 4
detail: 5
geth_log_level_name: 'info'
geth_log_level_id: '{{ geth_lov_level_names[geth_log_level_name | lower] | mandatory }}'
# Available: mainnet, goerli, sepolia, holesky
geth_network_name: 'mainnet'
#geth_network_id: ~
# Port to listen on
geth_port: 30303
# Address to advertise
geth_public_addr: '{{ ansible_host }}'
# Consul config
geth_consul_enabled: true
geth_consul_service_name: 'geth-{{ geth_network_name }}'
geth_consul_advertised_address: '{{ ansible_local.wireguard.address }}'
geth_consul_scope: 'main'
geth_consul_default_tags:
- 'geth'
- 'scope:{{ geth_consul_scope }}'
- '{{ env }}.{{ stage }}'
- '{{ geth_network_name }}'
geth_consul_extra_tags: []
geth_consul_tags: '{{ geth_consul_default_tags + geth_consul_extra_tags }}'
# Geth cache size. WARNING: Values higher than 1GB cause issues.
geth_cache_size: ~
# Container memory limits
geth_cont_mem_ratio: 0.6
geth_cont_mem_limit: '{{ (ansible_memtotal_mb * geth_cont_mem_ratio|float) | int }}'
# general container management
compose_recreate: 'smart'
compose_state: 'present'
compose_restart: false