{"id":19269507,"url":"https://github.com/status-im/infra-role-validator-client","last_synced_at":"2025-04-21T20:32:50.286Z","repository":{"id":85457842,"uuid":"539607267","full_name":"status-im/infra-role-validator-client","owner":"status-im","description":"Ansible role for Nimbus validator client","archived":false,"fork":false,"pushed_at":"2025-04-14T10:39:05.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-04-14T11:39:45.019Z","etag":null,"topics":["ansible-role","eth2","infra","nimbus"],"latest_commit_sha":null,"homepage":"https://github.com/status-im/nimbus-eth2","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/status-im.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-21T17:27:30.000Z","updated_at":"2025-04-14T10:39:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"80533b3f-2f90-479e-a2d6-a8e858b7806e","html_url":"https://github.com/status-im/infra-role-validator-client","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/status-im%2Finfra-role-validator-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/status-im%2Finfra-role-validator-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/status-im%2Finfra-role-validator-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/status-im%2Finfra-role-validator-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/status-im","download_url":"https://codeload.github.com/status-im/infra-role-validator-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250128381,"owners_count":21379502,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible-role","eth2","infra","nimbus"],"created_at":"2024-11-09T20:20:05.807Z","updated_at":"2025-04-21T20:32:50.276Z","avatar_url":"https://github.com/status-im.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Description\n\nThis role deploys an Ethereum [validator client](https://nimbus.guide/validator-client.html) written by [Nimbus Team](https://nimbus.team/) that should run together with a [beacon node](https://nimbus.guide/quick-start.html).\n\n# Introduction\n\nThe role will:\n\n* Checkout a branch from the [nimbus-eth2](https://github.com/status-im/nimbus-eth2) repo\n* Build it using the [`build.sh`](./templates/scripts/build.sh.j2) Bash script\n* Schedule regular builds using [Systemd timers](https://www.freedesktop.org/software/systemd/man/systemd.timer.html)\n* Start a node by defining a [Systemd service](https://www.freedesktop.org/software/systemd/man/systemd.service.html)\n\n# Ports\n\nThe service exposes three ports by default:\n\n* `5052` - Keymanager API port. Must __NEVER__ be public.\n* `8108` - Prometheus metrics port. Should not be public.\n\n# Installation\n\nAdd to your `requirements.yml` file:\n```yaml\n- name: infra-role-validator-client\n  src: git+git@github.com:status-im/infra-role-validator-client.git\n  scm: git\n```\n\n# Configuration\n\nThe crucial settings are:\n```yaml\nvalidator_client_service_name: 'validator-client-{{ validator_client_network }}-{{ validator_client_network }}'\nvalidator_client_network: 'mainnet'\nvalidator_client_build_repo_branch: 'stable'\nvalidator_client_beacon_node_url: ['http://127.0.0.1:5052']\nvalidator_client_suggested_fee_recipient: '0xChangeMeToAddrThatWillReceiveTrasnactionFeeRewards'\n```\nYou might want to change logging level or enable payload builder if beacon node has it:\n```yaml\nvalidator_client_log_level: 'INFO'\nvalidator_client_payload_builder_enabled: true\n```\nTo enable the keymanager API a token needs to be specified.\n```yaml\nvalidator_client_keymanager_enabled: true\nvalidator_client_keymanager_token: '{{lookup(\"bitwarden\", \"nimbus/keymanager\", field=\"token\")}}'\n```\n\n# Management\n\n## Service\n\nAssuming the `stable` branch was built you can manage the service with:\n```sh\nsudo systemctl start validator-client-mainnet-stable\nsudo systemctl status validator-client-mainnet-stable\nsudo systemctl stop validator-client-mainnet-stable\n```\nYou can view logs under:\n```sh\ntail -f /data/validator-client-mainnet-stable/logs/service.log\n```\nAll node data is located in `/data/validator-client-mainnet-stable/data`.\n\n## Builds\n\nA timer will be installed to build the image:\n```sh\n \u003e sudo systemctl list-units --type=service '*validator-client-*'\n  UNIT                                LOAD   ACTIVE SUB     DESCRIPTION\n  validator-client-mainnet-stable.service   loaded active running Nimbus Beacon Node on mainnet network (stable)\n  validator-client-mainnet-testing.service  loaded active running Nimbus Beacon Node on mainnet network (testing)\n  validator-client-mainnet-unstable.service loaded active running Nimbus Beacon Node on mainnet network (unstable)\n```\nTo rebuild the image:\n```sh\n \u003e sudo systemctl start build-validator-client-mainnet-stable\n \u003e sudo systemctl status build-validator-client-mainnet-stable\n ● build-validator-client-mainnet-stable.service - Build validator-client-mainnet-stable\n     Loaded: loaded (/etc/systemd/system/build-validator-client-mainnet-stable.service; enabled; vendor preset: enabled)\n     Active: inactive (dead) since Wed 2021-09-29 12:00:12 UTC; 2h 15min ago\nTriggeredBy: ● build-validator-client-mainnet-stable.timer\n       Docs: https://github.com/status-im/infra-role-systemd-timer\n    Process: 1212987 ExecStart=/data/validator-client-mainnet-stable/build.sh (code=exited, status=0/SUCCESS)\n   Main PID: 1212987 (code=exited, status=0/SUCCESS)\n\nSep 29 12:00:12 build.sh[1213054]: HEAD is now at 0b21ebfe readme: update toc\nSep 29 12:00:12 build.sh[1212987]:  \u003e\u003e\u003e Binary already built\nSep 29 12:00:12 systemd[1]: build-validator-client-mainnet-stable.service: Succeeded.\nSep 29 12:00:12 systemd[1]: Finished Build validator-client-mainnet-stable.\n```\nTo check full build logs use:\n```sh\njournalctl -u build-validator-client-mainnet-stable.service\n```\n\n# Requirements\n\nDue to being part of Status infra this role assumes availability of certain things:\n\n* The `iptables-persistent` module\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatus-im%2Finfra-role-validator-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstatus-im%2Finfra-role-validator-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatus-im%2Finfra-role-validator-client/lists"}