Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/status-im/infra-role-rocketpool
Ansible role for Nimbus-based RocketPool smart node
https://github.com/status-im/infra-role-rocketpool
ansible-role infra staking-pools
Last synced: 3 months ago
JSON representation
Ansible role for Nimbus-based RocketPool smart node
- Host: GitHub
- URL: https://github.com/status-im/infra-role-rocketpool
- Owner: status-im
- License: mit
- Created: 2021-04-02T13:11:55.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-24T13:51:28.000Z (4 months ago)
- Last Synced: 2024-10-25T16:33:23.064Z (4 months ago)
- Topics: ansible-role, infra, staking-pools
- Language: Jinja
- Homepage:
- Size: 98.6 KB
- Stars: 5
- Watchers: 26
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Description
This role configures [RocketPool smart node](https://github.com/rocket-pool/smartnode) to run using [Systemd services](https://www.freedesktop.org/software/systemd/man/systemd.service.html).
# Introduction
For general information about RocketPool read [this article](https://medium.com/rocket-pool/rocket-pool-101-faq-ee683af10da9).
In simple terms RocketPool provides a "decentralised ETH2 staking protocol". It depends on an Eth1 and Eth2 nodes being available.
This role deploys it's own [nimbus-eth2](https://github.com/status-im/nimbus-eth2) node but depends on an external URL for [go-ethereum](https://github.com/ethereum/go-ethereum).# Installation
Add to your `requirements.yml` file:
```yaml
- name: infra-role-rocketpool
src: [email protected]:status-im/infra-role-rocketpool.git
scm: git
```# Configuration
A basic configuration would look like:
```yaml
rocketpool_graffiti: 'my-rocketpool-node'
rocketpool_network: 'holesky'
# Mandatory
rocketpool_eth2_fee_recipient: '0x1111111111111111111111111111111111111111'
rocketpool_eth1_exec_layer_jwtsecret: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
rocketpool_eth1_exec_layer_authrpc_url: 'http://1.2.3.4:8551/'
rocketpool_eth2_exec_layer_rpc_url: 'http://1.2.3.4:8545/'
rocketpool_eth2_exec_layer_ws_url: 'ws://1.2.3.4:8546/'
```
The main config file is `user-settings.yml` which normally is generated by `rocketpool-cli service config`, but we used that just once and used the result to create the [`templates/user-settings.yml.j2`](templates/user-settings.yml.j2) which we use instead.In case of a version upgrade it might be necessary to use the commented out task which calls `rocketpool-cli` in [`tasks/config.yml`](tasks/config.yml) to generate a new config and update the template format.
# Management
The smart node installation procedure will create 3 Systemd services:
```
> systemctl list-units --type=service -a 'rocketpool-*'
UNIT LOAD ACTIVE SUB DESCRIPTION
rocketpool-eth2-node.service loaded active running Nimbus Beacon Node on mainnet network (stable)
rocketpool-smart-node.service loaded active running RocketPool smart node daemon
rocketpool-watchtower.service loaded active running RocketPool watchtower activity daemon
```
Those can be managed with `systemctl` and logs viewed with `journalctl`.RocketPool binaries are installed in `/opt/rocketpool` and symlinked at `/usr/local/bin`.
```
> ls -o /usr/local/bin/rocketpool*
lrwxrwxrwx 1 root 58 Oct 27 17:59 /usr/local/bin/rocketpool-cli -> /opt/rocketpool/v1.0.0-pre3/bin/rocketpool-cli-linux-amd64
lrwxrwxrwx 1 root 61 Oct 27 17:59 /usr/local/bin/rocketpool-daemon -> /opt/rocketpool/v1.0.0-pre3/bin/rocketpool-daemon-linux-amd64
```
All config files and data are created in `/data/rocketpool`. It also contains:* `cli.sh` - Wrapper script which simplifies use of CLI tool.
* `eth2-stop.sh` - Wrapper script which stops the Beacon node service.
* `eth2-restart.sh` - Wrapper script which restarts the Beacon node service.The node wallet can be managed manually by executing commands such as `cli.sh wallet restore` or `cli.sh wallet init`.