Ansible role for Nimbus Eth2 beacon node on Linux https://github.com/status-im/nimbus-eth2
Go to file
Jakub Sokołowski 75e8e71993
set SyslogLevel=debug for systemd service avoid journald
This setting in combination with `MaxLevelStore=info` in `/etc/systemd/journald.conf`
will prevent Journald from being constantly filled by a considerable flow of
logs from beacon nodes and making debugging of other servics on the host harder.

Due to this `journalctl` will no longer show logs for the service.

Issue: https://github.com/status-im/infra-role-bootstrap-linux/issues/24

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-09-21 17:40:07 +02:00
defaults Expose the --num-threads option 2021-09-20 13:21:43 +03:00
handlers initial commit 2021-06-22 17:34:37 +08:00
meta use infra-role-open-ports, open metrics for metrics.hq 2021-08-12 17:05:29 +02:00
tasks use different sudoers files for permissions setup 2021-09-07 15:45:59 +02:00
templates set SyslogLevel=debug for systemd service avoid journald 2021-09-21 17:40:07 +02:00
README.md set SyslogLevel=debug for systemd service avoid journald 2021-09-21 17:40:07 +02:00

README.md

Description

This role provisions a Nimbus installation that can act as an ETH2 network bootstrap node.

Introduction

The role will checkout a branch from the nimbus-eth2 repo, build and run it.

Each host can run multiple beacon nodes. Each node can be built from a different branch (stable, unstable, testing, etc.) and will be run with systemd.

A timer is installed that will periodically pull changes from git and rebuild the binaries.

Ports

The service exposes three ports by default:

  • 9000 - LibP2P peering port. Must ALWAYS be public.
  • 9200 - JSON RPC port. Must NEVER be public.
  • 9900 - Prometheus metrics port. Should not be public.

Installation

Add to your requirements.yml file:

- name: infra-role-beacon-node-linux
  src: git+git@github.com:status-im/infra-role-beacon-node-linux.git
  scm: git

Configuration

The crucial settings are:

# branch which should be built
beacon_node_repo_branch: 'stable'
# ethereum network to connect to
beacon_node_network: 'mainnet'
# optional setting for debug mode
beacon_node_log_level: 'DEBUG'
# Infura WebSocket URLs
beacon_node_web3_urls: ['wss://mainnet.infura.io/ws/v3/123qwe123qwe123qwe']

The order of WebSocket URLs matters. First is the default, the rest are fallbacks.

Usage

Assuming the stable branch was built you can manage the service with:

systemctl start beacon-node-stable
systemctl status beacon-node-stable
systemctl stop beacon-node-stable

You can view logs under:

tail -f /data/beacon-node-stable/logs/service.log

The service will store all data in the /data/beacon-node-stable directory.

Building

A timer will be installed to build the image:

systemctl list-timers beacon-node-stable-build

To rebuild the image:

systemctl start beacon-node-stable-build.service

To check build logs use:

journalctl -u beacon-node-stable-build.service

Requirements

Due to being part of Status infra this role assumes availability of certain things:

  • The iptables-persistent module