Set up pool on testnet using single VPS instance

I’ve got a spare VPS instance, and I’d like to use it for running a stake pool against Testnet.

To set up a pool on Testnet, do I need to run 2 separate node processes – one for BP and one for Relay or is it possible to just run a BP process and let it also serve as a relay?

If it does require 2 separate node processes, would I configure a loopback interface to establish the separate network or is there a better way? My VPS instance has 30GB of RAM, 8 cores, and 800 GB of storage, so I should have plenty of resources to support 2 node processes.


1 Like


I never tried but maybe u can set 2 users, one for producer and one for relay and try to install one node/user

Or maybe someone else will have other ideas


Interesting idea, Alex. Even if having separate users is not necessary, it might make it easier for organizing the node configuration and the system daemon processes.

Perhaps, I just need to run the BP and relay node processes on different ports. Then, fort the node-config topology files, I use the same IP address for both BP and relay, but the ports will be different.

Hi @extramileit if your VPS seems to have more than enough resources for running 2 instances of the Cardano node. I manage to run a testnet relay and a bp node on an AWS EC2 with 2vCPU and 4GB of memory, I’ve also added a 4GB swap. So when running the node and relay you can run in different ports. For example 6000 for the core(bp) and 6001 for the relay.

When binding ports what I did was only to bind the relay nodes port to be reachable via the internet and the core node only bind to as it only needs to be connected by your relay node only.

For your topology files you can use the local ( address, however, you have to bind your port to IP address in relay node so other relay nodes can connect to your relay node.

Something I observed is when you first start the node it needs a lot of CPU during the db sync and after that it needs more memory and less CPU. So since I can easily upgrade resources in aws I increased my number of CPUs until the db is synced and downgraded back to lower specs to keep in running, So when I monitor my node now I see less CPU utilization and high memory consumption.

Hope this is helpful


I appreciate the good info, @rukshan.

Yeah, that makes a lot of sense. Glad you got it working with only 4 gigs of RAM, which means I should have plenty of resources.

Regarding the config organization, do you just maintain separate directories for relay and BP or did you create separate users or anything like that?

@extramileit having 2 directories is enough for you to get it running, but if you want to run with 2 different users it would let you organize the node configuration and the system daemon processes as you mentioned before.

I just run both nodes under same the same user, if this was in mainnet I would have a separate user for my Cardano nodes

1 Like

Got it. This will be a fun exercise! Thanks again.

Your welcome @extramileit it’s definitely gonna be a fun exercise, let us know if you run into any issue will be happy to share what I’ve learned so far. enjoy !!!

1 Like

You don’t really need to run for testnet 2 instances on the same machine. Having the BP separate from the relays is a security measure. You can run only the BP and connect it to other relays in the network like it would be a relay. I know there are other people doing this on testnet.
You can do as you wish. If you want to run it as close as possible to mainnet, then run 2 instances of cardano-node, one as relay and one as block produces, using different users and different ports.


That’s good to know. Thanks @georgem1976. As a first step, I think I will just run a BP node and connect it to relays.

Do you know if there are any software wallets that can be pointed at testnet, so that you can have a GUI to send payments? I noticed on a video from Andrew Westberg, he was using Daedalus pointing at Testnet. I can’t figure out how he got that to work. Maybe there’s other wallets?

I did not find an option in Yoroi and Adalite, but Yoroi tells me in the settings, which network it is on. That only makes sense if it can be changed, doesn’t it?

Anyway, has the option to switch the network prominently in the lower right of its main screen:

1 Like

Most excellent! I use and never even noticed that. Thank you!


I’ve really come to like ccVault, the last couple of days.

Might be overwhelming for beginners, but it seems to offer really every technical possibility of all the other apps: multi-account like Adalite and Nami, restrict to only the first address like Nami, decide if you want to withdraw in regular transactions, …

It seems like it has a great feature set. I haven’t tried to do a ton with it, though.

You can also use any wallet you prefer as your pledge wallet. But you have to generate your payment keys and your addresses in command line, starting from the recovery words, to be able to do the transactions required to create and manage the stake pool.


Thanks @georgem1976 for sharing this. This is new info to me. Will give it a try. I thought a relay and BP was both required to just try a node to test block producing.

I have a question, how to know if your node is selected for producing blocks? Any indicators showing that.

You need to run cncli leaderlog to know exactly the second when your block producer will mint blocks. And soon there will be also a built-in command in cardano-cli for that.

I have my testnet pool registered and it shows as active on cardanoscan.
link to pool on cardanoscan

But, I’m not able to find it on under testnet. I double checked that my pool metadata hash file is correct for the pool.cert file I generated using cardano-cli stake-pool registration-certificate command.

The only outstanding thing I need to do is run the topology-updater-pull script to fetch additional peers. I need to wait a few hours before I do that to let the service find out about my pool.

Could that be the reason, is not seeing things?

Hi @extramileit

Something is not right.

I think extended metadata URL should not exceed 64 symbols.

Hmmm… since I also have a Mainnet pool, I simply used the same pool metadata files including the extended one. So, if it works on Mainnet, you would think it should be fine for testnet?

I searched on the telegram account, and somebody said pooltool is no longer working for testnet. They didn’t provide any addtional details, but maybe their website is no longer running jobs to find new pools. I left a follow-up question on telegram, but no response