My pool set-up, would it work?

Hey people :slight_smile:

I am going through the Stake Pool School and got already pretty far. Now, I am pretty sure that I want to set up and run a pool very soon, thanks to the school!!
I have a question for experienced system admins regarding what they think about the set-up I am contemplating:

Option 1: I buy a new, powerful computer (something like KAIZN showed in his video) and run it from home through a 1000mbit/s internet connection with fibre cable until the house, but inside the house normale wires.
Question to 1: Can I use that internet connection also for surfing on my normal computer or would that be unadvisable, and can I run the relay node as well as the block producer node on the same computer?

Option 2: I rent 2 or 3 instances on AWS (1-2 relays and 1 BP), buy a rather cheap pc (something like this) and control the three instances through three control panels/terminals.

Which option do you think works better for me? Or do you have any suggestions to make it work even better?

Thanks to everyone for helping out! :slight_smile:
Best Regards, Bastian

My two cents is that I would be hesitant to spend the money to run from home until you are sure it can be profitable (unless you own enough ada to guarantee it is profitable).

This article may be of some interest (https://medium.com/@contact_73710/a-non-technical-guide-for-running-a-stake-pool-part-1-a9071022d125)

2 Likes

Thank you for writing that guide! When choosing the ā€˜cloudā€™ option, would you still have a small machine running at home which is connected to the nodes all the time through a terminal or is that unnecessary?

Unnecessary, should setup monitoring (prometheus/grafana) and only ssh to nodes when updating versions, updating keys, etcā€¦

Want to limit SSH access in some way as well, either by using VPN, firewall that only allows access from your home ip, bastion host, etcā€¦

1 Like

Yes, what could that amount be at k=150, or k=1000, and what about the ā€˜aā€™ parameter as well as others?

Iā€™m not IT guy at all, but Charles having mentioned latency and uptime being very high priorities for a SPO (ā€˜Oā€™ in this instance is operation), all aspects of the system should be taken into consideration:
What type of instance are you running (e.g., server, virtual server, container nodes, home, or on the cloud, FIOS etc.) How much of a difference does more than one relay make to security, uptime, and latency? What about physical relay location distances to BP?

How many people know the answers to these question? Probably not that many, unless theyā€™ve testing these configurations under the very similar conditions, or have been donig similar things professionally for a while.

I agree with you. Itā€™s not worth it to spend the money for a big operation, if you donā€™t know itā€™s going to be successful, and being that cryptos are highly speculative still, particularly in this global economic environment from the effects of the virus, this highly speculative aspect of cryptos extends to crypto-specific infrastructure, like miners, mining pools, and SPOā€™s.

In this case, if you donā€™t want to take a big risk with such type of SPO high-end set up, then the best alternative is to maximize the ratio of ā€˜uptime and low latencyā€™ to cost, the idea being to minimize cost as much as possible without compromising ā€˜uptime and low latencyā€™.

1 Like

I wish we could open up a discussion group for this to compare notes. Maybe legacy IT infrastructure informs us to a significant extent as to what the optimal set up is for no costs barred vs best value without compromising ā€œuptime and low latencyā€. Again, I donā€™t knowā€¦Iā€™m not an IT guy.

1 Like

Iā€™d advise you to go for a cloud solution, if you do not have a separate room to run your pc.

Home internet is always subject to down-times, which is unacceptable when running a stake pool. Thus I would advise you to go for a cloud solution.

Furthermore you can learn the hardships of setting up a secure server and expand if your node grows. Also think about the communication of the relay and core node, if your core node sits at your home you need a public-IP4 adress to access it, which does not change. This is hard to get and comes at almost the same cost as a full server.

Remember that 8 GB of RAM are advised to operate a block producer when renting a cloud solution.

2 Likes

If legacy Banking IT infrastructure will come into play for Cardano, and I guess it will due to higher rewards for efficient, stable and fast nodes, than there might be incentives to put all nodes as close together as possible. Thats what we see when banks want to be as close to stock exchanges as possible, to have an advantage with their trading algorithms.

Which is potentially a bad development for decentralisation?!

Thank you for the advice! I thought so too :wink: Are you running your pool on AWS? If yes, what instance did you choose? I guess a ā€™ t3a.largeā€™ should be sufficient with 2 cores and 8 gb of RAM?

I have seen pools with as little as 300k delegated stake producing blocks and the d parameter is even pretty high still. So it seems that already now, with high ā€˜dā€™ and a low ā€˜kā€™, its very likely that you produce blocks, which is amazing! :slight_smile:

1 Like

Itā€™s ironicā€¦so many of us are gung-ho for decentralized solutions until we come to realize that the among the best, most affordable and safest solutions againt downtime, high latency, physical theft of BP relays, and natural disasters are currently owned by a few very large centralized corporate players. This is not necessarily a bad thing. You can still have a degree of decentralization of providers by spreading your BP and relay(s) among various cloud service providers nationally and internationally;e.g., AWS, Azure, GCP, and various smaller ā€œnon-household name brandā€ cloud service providers, and if you are a decentralization purist to an extent, you can always have a back-up Cardano network instance deployed at home if the centralized providers shut off your operation due to pressure for the anti-crypto sentiments if the current administration that happens to be in power at the time decides they donā€™t like cryptos. I donā€™t think any cloud service provider will complain about the increase in future business from the influx of crypto related projects running on the cloud. If anyone, itā€™s the government that will be concerned about this and would likely want to put a stop to it out of ignorance or self-preservation of their own monetary policy. Itā€™s difficult for an economic system governed by potentially ignorant, corruptible people to compete with one that is based on open source code and mathematics.

1 Like

But I just have my private laptop, which is not always on nor in the home network all the time. As far as I understand, in order for the nodes to be running, I need to have the terminals opened? Am I correct? Or can I even start the nodes with ā€˜cardano-node run ā€¦ā€™ close the terminals and it will keep on running?

Iā€™m using a laptop too at home. Actually two of them, oneā€™s a relay, the other oneā€™s the BP, and then thereā€™s also another relay on the cloud.

Iā€™ve heard that tmux might be the solution for the issue you have: https://medium.com/@tholex/what-is-tmux-and-why-would-you-want-it-for-frontend-development-e43e8f370ef2

I donā€™t use it, but maybe will in the future when I configure my mainnet SPO for the cloud.

So your laptops are just always at home and always on, with the terminals running?

Most of the timeā€¦thereā€™s a command to disable laptop screens completely, so you donā€™t burn out the screen. I just have inbuntu server installed on both laptops, the bp has minimal GUI support so I can log into my relay laptop and AWS instance, but both relays are console-only based servers.

If youā€™re interested in disabling laptop screen, and youā€™re using linux, use a text editor like vim or nano to open the file:

sudo nano /etc/default/grub

Then add consoleblank=0 to the GRUB_CMDLINE_LINUX_DEFAULT=""

line in-between the quotes at the end of the line so that you get the new lineā€¦

GRUB_CMDLINE_LINUX_DEFAULT=ā€œconsoleblank=0ā€ you can set the time to 5, etc., consoleblank tells your system how many seconds to leave the screen on before disabling itā€¦the screen will go out as if itā€™s in sleep mode. If it doesnā€™t go out on itā€™s ownā€¦you may just have to touch any key first to trigger the countdown to screen disable. The line has to be type accurately I suppose since any mistake in grub could cause your computer not to boot at all or get stuck in a boot loop since grub is responsbile for bootstrapping the operating system. Once youā€™ve added the file, save it, and close it, then run

sudo update-grub, and reboot computer so that next time this feature will be enabled. Itā€™s a fueature that built into the kernal or heart of the operating system, so you have to reboot the modified kernel to enable it. Basicaclly what it doesnā€™t is disable your screen whether youā€™re in the GUI or only on console. so that your laptop looks like itā€™s asleep with the lid open. Also I wouldnā€™t close the lid if you going to use the laptop as a server, a lot of heat could build up unintentionally, as laptops were not made to run with their lids closed, cause damage or shortened life span to your laptop.

correction to previous post!

The command ā€œconsoleblankā€ only disables your screen when youā€™re in console mode, not GUI mode or inside your regular graphical desktop environment with the mouse control, desktop icons, etc., but you can still disable screen by pressing and holding down the following three keys in this order ctrl+alt+F3 for example where those key combinations will take you into console modeā€¦if it doesnā€™t work because thereā€™s a GUI enabled on the F3, try some other function key number between F4 and F8. This works on Ubuntu server, which likely works on Ubuntu desktop, as well as other flavors of linux.

Also, it you want to get back out of console mode try ctrl+alt+F1, ctrl+alt+F2, or ctrl+alt+F7, one of these will take you back into graphical mode. and if not itā€™s usually ctrl+alt+Fx where x is a number from 1 to 6 or more.

You should really think about using tmux or a systemd service to keep your node running. Keeping a computer on and attached to the node session is a really shoddy solution and will still rely on your home internet and power to always work. Even then, the SSH gods have a habit of breaking your connection.

1 Like

I am using the command tmux as soon as I have established a connection to my nodes in iterm2 terminal, but mostly for ā€˜splittingā€™ the screens and being able to execute commands while having the live view in on split screen.
Is that what you mean already? Could you please elaborate further, also about the systemed service? :slight_smile:
Thank you!

I use strato, which is a german server hosting solution, not AWS as I donā€™t like amazon and would never buy any product from them :wink:

There is a bunch of smaller server hosters out there, apart from the big players.

If you plan to operate the node from your home, also pay attention to the power adapters you use.

Usual LapTop power plugs/adapters are not made for 24/7/365 use and will eventually burn if you use them all the time. Get a proper, actively cooled power adapter which is made for running all the time if you donā€™t want to start a fire, yes itā€™s sad, but many people just leave their machines running and risk this.

Furthermore the Internet is not so much decentralized as one might think, keeping in mind that DNS is mostly a centralized thing.

So I think for a start an online hosting solution with a smaller provider is fine, if you want to expand buy the proper hardware and do not run a home-use computer 24/7/365 as from an electronic perspective itā€™s highly unadviseable.