Cardano staking pool architecture

IaaS services

Plus [+]

  • no electricity downtime, power batteries and generators
  • hardware is virtualized, if some component fails there is no downtime
  • data center is usually situated or have a good connection with the internet backbone cables so network latencies are much better
  • automated backups
  • popular OS can be quickly installed & booted
  • other driver, hardware optimizations that happen in the background
  • server grade hardware AMD Epyc, ECC RAM, …
  • relatively speaking low cost for what you get
  • not directly in line with decentralization effort
  • no customizations at this levels, for example you cannot power your server with solar power
  • if reliability of this services is bad you cannot directly affect this yourself

ADA Point Pool services

For good basic low level step by step setup you can follow an awesome Chris Graffagnino tutorial. Here we will describe some things that we do beyond that.

Operating system

We are running a server version of Ubuntu 20.04.

  • Operating system should be updated with latest security patches
  • Properly configure firewall, we use ufw
  • DO NOT install or add any services that are not crucial to node service operation
  • Setting correct operating system permissions; This really helps with what you can screw up unintentionally. Also it helps with what an attacker can do in your system
  • Use SSH keys to login to the system

Wallet, pool management

We currently use CNTools and are really satisfied with them.

  • Backup, encrypt private wallet, pool keys and then move them to offline storage
  • Wallet management
  • Pool management

Cardano node

Custom configs, with optimized topology files. Testing latest node version and then using it if it turns out it runs fine for an epoch or two (depends on the changelog).

Current hardware

Note: This can/will changed in the future based on demand and our projects.

  • Main node
    - Location: Nuremberg
    - 8 vCores AMD Epyc
    - 8 GB ECC RAM
    - 10 Gbit connection
    - SSD drive 80GB with backups
    - Description: This is our MAIN node and it produces blocks. It is connected to our 2 Relay nodes and not directly to any other nodes.
  • 2 Relay nodes
    - Location: Nuremberg
    - 3 vCores AMD Epyc
    - 4 GB ECC RAM
    - 10 Gbit connection
    - SSD drive 40GB with backups
    - Description: Our Relay node. It is a proxy for the a MAIN node to the rest of the network. If one Relay node is compromised other one takes over or we spin other Relay nodes.
  • 1 Jormungandr testnet node
    - Location: Nuremberg
    - 3 vCores AMD Epyc
    - 4 GB ECC RAM
    - 10 Gbit connection
    - SSD drive 40GB with backups
    - Description: We still run a rust Jormungandr testnet node so Cardano IOHK can try to play around with different network settings.
  • 1 Cardano db sync node
    - Location: Nuremberg
    - 8 vCores AMD Epyc
    - 8 GB ECC RAM
    - 10 Gbit connection
    - SSD drive 80GB with backups
    - Description: Cardano-db-sync (with cardano-graph-ql) node is used for our internal use in our other Cardano related projects. It syncs all the network information in a Postgre SQL database. It also exposes a GraphQL interface to access the data.

Custom workflow scripts

There are always some scripts that devops(sysadmins, IT) need to automate some tasks so they are not repeated every-time. This should all be tracked with a version manager like git. So when we are updating scripts we can track changes and revert if something goes wrong. Also it is more easy to transfer them to a new computer.

Monitoring

Monitoring is recording some parameters in the stack to make informed decisions to further improve the stack so it is even more aligned with our strategy to have an awesome uptime.

Final thoughts

Couple more thoughts about software maintenance.

Our ITN future prediction (came true)

We predict that in the future the node software will be so mature to not need much of the tooling described here. Some parts will still be nice to have, like fast bootstrapping, which works as a caching system. The barrier to enter the pool operator game will be much lower and fees should be smaller than now.

Fin

About author. My nick is Gwearon. I am a computer programmer with about a two decades of programming experience. My interests are functional programming, smart contracts and math.

Disclaimer

This article comes as it is with no guarantees. Use at your own good judgement.

Who are we?

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store