This article series is meant to provide a guide for non technical people to understand what is involved in running a Cardano Stake Pool. You may be asking yourself why should I care? I don’t know… you clicked on the link, not me! We personally don’t want to know how hot dogs are made, we just want to enjoy tasty fire roasted meat sticks. But if you are interested, our hope is that you will gain a better understanding of what is involved, what type of knowledge is required by an operator, and how your fees are being used.
Part 1: Choosing a Server
One of the first decisions a pool operator needs to make is choosing where to run the Cardano node software (Is your cardano node running? Better hurry up and catch it!). What exactly is the cardano node software? It is basically a program that talks with lots of other versions of the software (inserting over simplification in 3… 2… 1…) think of a music sharing platform like Napster! Whatever happened to those guys?
Whereas mining for bitcoin requires a massive amount of computational power, a Cardano node does not. This means it can theoretically
In theory, there is no difference between theory and practice; but in practice, there is
run almost anywhere… a laptop in your house, a raspberry pi (mmm… raspberry pie), a server in a data center, or a virtual machine in the cloud to name a few. This rest of this article will attempt to lay out the different considerations that operators need to take into account when making this decision.
Location: Where do you want the software to run? For example, a space you physically own (i.e. your home), rented space in data center, or a virtual private server in the cloud. Cloud has become a buzz word over the last decade, but we really mean a virtual server managed by a third party. For those not familiar with virtualization, it’s a way to take one or many physical servers and break it into many more virtual servers that are independent and isolated from each other.
Specs: How much CPU, memory, hard drive space, and network speed does the software need to run correctly? This is mostly out of the Stake Pool operators hands, since we are not the ones developing the software, but we need to be prepared if a new version of the software suddenly requires more CPU, memory, or bandwidth.
Cost: What it is going to cost upfront and ongoing to run and maintain the servers. One thing that can’t be overlooked is the time cost of different options. For example, the time to setup, configure, and maintain servers can be considerable.
Given the previous considerations, let’s discuss a few of the options and their pros / cons.
Running a server in your home
- Decentralization: This helps increase the overall decentralization of the network. If all the nodes are running in the Amazon cloud and the data center goes down, the entire network could become unusable.
- Security: The private keys used to run the node aren’t running in a data center somewhere that could theoretically be compromised.
- Fun: Believe it or not, some people enjoy research, building, and maintaining a server rack.
- Cost: The cost to buy your hardware, server racks, cooling, UPS backups, etc… can be considerable, plus the time to setup and maintain your setup.
- Single Point of Failure: If the power or internet in your house goes out for a week, you are in trouble.
- Not Fun: Believe it or not, some people don’t enjoy research, building, and maintaining a server rack.
Cloud / Virtual Private Server (VPS)
- Cost: You can pay only for the resources you need. For example, if the node only requires 2 GB of memory to run, you can choose the right sized server
- Scalability: It is usually relatively easy to spin up new virtual servers with more memory/CPU/bandwidth.
- Time: When a hard drive fails at 2am, there is nothing you need to do, the actual physical server maintenance is handled by the provider.
- Location: A lot of cloud/VPS providers provide the ability to run your software in different physical data centers located throughout the world.
- Physical Security: It is a lot easier for someone to break into your home than into a data center.
- Decentralization: If most of the pool operators choose the same provider and that provider goes down, a large part of the network becomes compromised.
- Key Security: You are putting a certain level of trust with the provider, as some of your private keys will reside on their servers.
This is sort of an intermediate option, where your physical servers are hosted in a third party managed data center. There is an increased cost over Cloud/VPS and less scalability, but greater physical server and less time than running in your home.
As you can see, there are several options with different trade offs. Familiarity and personal preference can also play a factor. If you are already familiar with setting up and running servers in the Google Cloud, it may make sense to stick with what you know. If you enjoy and want to learn how to run your own servers, then that may be a factor in your decision.
We don’t think there are any wrong choices, each has it’s merits. Everyone making different choice increases the overall health and decentralization of the network. We hope you learned a little. Future articles will touch on things like networking, security, and key management. Please feel free to reach out with any questions or suggestions for other articles you would like to see.