slingnode.ethereum
  • Overview
    • Supported clients
    • Supported OSes
    • Requirements
  • Using the role
  • Role Variables
  • Architecture
    • Exposing ports
    • Security
    • Docker & host firewall
  • JWT secret
  • Enabling Validator client API
  • Checkpoint sync
  • Switching clients
  • Metrics
  • Logging
  • Testing
  • Contributing
  • Known issues
Powered by GitBook
On this page
  • Target audience
  • Deployment types
  • Single server deployment
  • Distributed deployment
  • Repositories
  • Project's principles
  • Contact
  • Acknowledgments

Was this helpful?

Overview

NextSupported clients

Last updated 1 year ago

Was this helpful?

slingnode.ethereum is an Ansible role that facilitates deployment of Ethereum clients. Its objective is to enable a consistent way of deploying and upgrading the chosen client mix. The role can be used to deploy:

  • a single node running execution, consensus and validator layers

  • hundreds of nodes running all three layers

  • a distributed set up with each layer running on a separate server

  • change client mix (as seamlessly as this can be done)

  • upgrade clients

The project uses Docker Compose to deploy and manage the lifecycle of the clients. We believe that that the software developers know best how to build and package their software. Therefore slingnode.ethereum uses unmodified stable Docker images published and maintained by the original developers (the docker image is specified as variable and can be modified for each client if a role user wants to use their own image, this will work as long as the entrypoint is the same).

Target audience

slingnode.ethereum can be used by anyone from a solo-staker running a single node to a DevOps Team deploying and managing hundreds of servers. Check out example Playbooks to see how this can be implemented using group_vars.

Deployment types

slingnode.ethereum role supports two types of deployment, a single server deployment where all client layers run on a single server and a distributed deployment where each layer runs on a separate server.

Single server deployment

In a single server deployment (default type) all client layers run on a single server and communicate over as depicted in the diagram below.

Distributed deployment

In a distributed deployment the clients run on separate servers and communicate over the network (LAN) as depicted in the diagram below.

Repositories

Project's principles

  • use unmodified official docker images

  • require only a running Docker daemon and the Compose plugin

  • provide secure defaults

  • keep it simple

  • DRY

Contact

Acknowledgments

Throughout the development we have

  • used Discord to seek help and explanations from various Ethereum projects

We'd like to thank the Eth-Docker maintainers as well as the individuals that have helped us in Discord.

The role is available from Ansible Galaxy:

The source code is on Github:

If you have any questions join our or log a GitHub issue.

referred to the amazing Eth-Docker project -

https://galaxy.ansible.com/slingnode/ethereum
https://github.com/SlingNode/slingnode-ansible-ethereum
Discord server
https://github.com/eth-educators/eth-docker
Docker Network
Single server deployment
Distributed deployment