<p>In general, there's nothing in the protocol itself that cares where your node made blocks, but here's some best practices on what you would do:</p>
<ol>
<li>Create your new relays in the new hosting center</li>
<li>Setup bi-directional connections between your old/new relays in your topology files</li>
<li>Notify any pools you're pairing with of your new relays so they can add them to their topology files as well</li>
<li>Re-register the new relays for your pool so IOHK and other pools getting information from db-sync to generate their topology files can find your relays</li>
<li>Sync a new &quot;relay&quot; against your new relays in your new hosting center. This will eventually become your block producing node</li>
<li>Identify a time when your node will not produce a block that's a good maintenance window (ideally a few hours in case anything goes wrong)</li>
<li>cleanly stop both the old block producing node and the new one (that's currently a relay) with a SIGINT signal so the database is cleanly shutdown.</li>
<li>(<em>optional</em> but good practice) generate a new KES key an opcert</li>
<li>restart your new block producing node with the VRF skey and new KES/opcert.</li>
<li>Ensure your relays have adequate incoming relay connections from outside prior to shutting down your old relays.</li>
<li>remove old relays from your new relay topology and restart them</li>
</ol>

CC BY-SA 4.0
2022-02-01T21:33:43.773Z
This to me sounds like a good, comprehensive set of steps.  Forgive my ignorance as a first-time SPO, maybe I could confirm details of some of the steps.  2) Bi-directional connections meaning what, I add each of the old/new relays in each of the relay topology files?  4) Re-register, meaning run SPOS 05c script?  Or is there a specific cardano-cli command or such?  10) Adequate relay conxs - how do I do this, is this a cardano-cli query?
Jay Imerman
CC BY-SA 4.0
2022-02-01T15:04:32.120Z
2022-02-01T15:04:32.120Z
Samuel Leathers
<p>i think you are missing something and you make more complicated your question.</p>
<p>every pool needs only one BP (second one for redudancy, but never run 2 BPs at the same time) and you also need Relays, more than 2 for the redudancy.</p>
<p>the BP (block producer) need his settings and only connections to your relays. no other connection to any other Relay in the network. that is for your security. this node, the BP, need 3 files so that runs as BP. that is the only different to the Relays.</p>
<p>which means now,
the IPs which are known and used in public, are the IPs from your relays.</p>
<p>now to your point.
if you want to install new node, what ever it is (either BP or Relay), you need a normal installation as it was for any other old Node.</p>
<p>if you want to use this new Node a Relay,</p>
<ol>
<li>prepare it as relay,</li>
<li>connect it with your BP only</li>
<li>register the pool with your new public IPs</li>
</ol>
<p>if you notice here, in importan key_step is to register again the pool with your new IPs (from Relays)</p>
<p>in case now you want new installation for your BP,</p>
<p>then please just install new node, connect it with your Relays, and add the proper files to run as BP.</p>
<p>please let me know, if that is what you exactly want to make it clear.</p>
<p>for any further support, let us know and we are happy to assist you.
TTS17</p>

CC BY-SA 4.0
2022-02-01T21:25:36.547Z
thank you so much for your answer!  I want to make sure I understand.  When you say "register the pool with your new public IPs" I ran the SPOS registration script 05c to register the stake pool with REREG as a command line parameter, from one of the new nodes.  I believe this submitted the topology file with the new IP addresses, right?  Or, maybe more to the point - how do I update the Cardano network topology file with my new relay IP addresses?
Jay Imerman
CC BY-SA 4.0
2022-02-01T21:41:38.820Z
do you use cntools? - here is a great guidance from cool operator - 
https://forum.cardano.org/t/how-to-set-up-a-pool-in-a-few-minutes-and-register-using-cntools/48767/1699   -  i speak for the "STEP 8 - register the pool" -/- in your case you have to go  >> POOL >> MODIFY
TTS17
CC BY-SA 4.0
2022-02-01T21:56:10.433Z
to update the topology file, you need a script to run everyone ,which s called "topologyUpdater"
TTS17
CC BY-SA 4.0
2022-02-02T00:25:23.850Z
OK I will have a look.  I didn't download cntools, and like I said in my post, I tried the topologyUpdater.sh, but it didn't work, and I had to run the prereqs.sh, but that asked for an empty folder, so I didn't understand what it was going to do.
Jay Imerman
CC BY-SA 4.0
2022-02-02T19:43:54.180Z
OK,  now it goes to be more complicated, as we open more tickets,
if you need further support, find telegram group : https://t.me/CardanoStakePoolWorkgroup - or open tickets in : https://forum.cardano.org/ -
we are huge community and happy to support you.
welcome mate
TTS17
CC BY-SA 4.0
2022-02-06T21:30:32.760Z
I did get topology updater to work, I found the env settings. But I dont see the new relays in https://explorer.mainnet.cardano.org/relays/topology.json  I can try Telegram, I figured StackExchange is the best method of capturing the Q&A.
Jay Imerman
CC BY-SA 4.0
2022-02-06T23:53:07.030Z
if you installed properly the node, and is synched, did you modify the pool with the new public IPs of your Relays?
TTS17
CC BY-SA 4.0
2022-02-08T16:08:04.817Z
Yes, the new node is synced, all 3 servers up to date.  What exactly do you mean by "modify the pool with the new public IPs of your Relays"?  The mainnet-topology.json files on all the new pool node servers have the new IP addresses, and the cron job of topologyUpdater.sh should have submitted those, right?  I noticed that a week later, adapools.org still has the old relay IPs.
Jay Imerman
CC BY-SA 4.0
2022-02-08T16:41:32.060Z
do you build your whole installation with cntools or manually? or another installation guide?
TTS17
CC BY-SA 4.0
2022-02-08T16:53:26.220Z
you have to Register the stakepool certificate but without "Generating your delegation certifcate", means you dont have to pay again the 500ADA -----i have 2 different ways, -CNTOOLs -> >> POOL >> MODIFY >>OnLine or OffLine -> then you select your Pool and give values to all parameters again, but using your new Relays IPs.  ///// the second way is the manual by commands, how it was in the past 1. Generating the stakepool certificate(cardano-cli shelley stake-pool registration-certificate) 2. Calculating the fees, 3. building the transaction, and 4.submitting it
TTS17
CC BY-SA 4.0
2022-02-08T20:14:04.127Z
if some / a comment / answer is useful, you can give a credit :)
TTS17
CC BY-SA 4.0
2022-02-10T20:36:16.570Z
Yes, absolutely I will.  Our stake pool is still not operational, and I have had some personal challenges stopping me from working on it at the moment.  I apologize for the delay.  I followed the stakepool247 guide to install, so I installed via their script, not via cntools.  This is the third stakepool I have installed, but I have never moved one before.  I am considering deregistering, get the 500 ada back, and re-registering from the new pool.  The registration I ran using SPOS scripts, and I did that from the BP.
Jay Imerman
CC BY-SA 4.0
2022-02-10T20:37:36.027Z
Another idea might be to wipe the OS back to plain Ubuntu, and do a CNTOOLS install.  I have never done that before, but it can't be that much different.
Jay Imerman
CC BY-SA 4.0
2022-02-10T20:38:59.747Z
if you want, find me in telegram or other chats and groups, i can help you,,
there is also amazing forum.cardano.org/

anyway, i am really happy to assist you. find me
tts17.com, or twitter : tts1710
TTS17
CC BY-SA 4.0
2022-02-10T20:40:14.913Z
cntools is what i use and recommend it.
- it is so easy, and i can assists 101%, the point is , you need the learn and understand the folder structure.
TTS17
CC BY-SA 4.0
2022-02-01T17:39:49.163Z
2022-02-01T17:39:49.163Z
TTS17
<p>First thing: you can re-register the stake pool from any host in the world. You don't have to do it from one of the stake pool nodes.</p>
<p>Second thing: the only keys you need on the block producer node are: kes.skey, vrf.skey and the operational certificate (node.cert or oper.cert, depending on what guide you were using). It is not advised to have the payment keys on a server connected to the Internet. Maybe it is a requirement for the scripts you are using, but I would not do that.</p>
<p>If the new relays are in sync, you should install the topology updater script. You have some requirements to install, but you can use the documentation.
<a href="https://cardano-community.github.io/guild-operators/basics/#pre-requisites" rel="nofollow noreferrer">https://cardano-community.github.io/guild-operators/basics/#pre-requisites</a></p>
<p>Once you are running the topology updated script on the new relays and you have incoming connections, you can re-register the stake pool with the new relays. I assume you already have the new block producer connected to the new relays (both directions connections between relays and block producer). But you should not run both block producers in the same time, if you have blocks scheduled. You can also connect the new block producer to both old relays and new relays, and stop the old block producer even before updating the stake pool registration certification.</p>

CC BY-SA 4.0
2022-02-01T21:28:59.367Z
When I run the prereqs, don't forget I have an already-installed, running node.  I enter the path to the install folder, and it says I have to give it an empty path.  I don't know what it is going to do, and the documentation isn't clear on my question.  Do I create an empty folder and run the script to that?
Jay Imerman
CC BY-SA 4.0
2022-02-01T22:06:30.947Z
I think the prereqs.sh will only install some packages that you need to run the scripts. You may already have them. You can try to run topology updater without running the prereqs.sh, but if it is not working correctly, take a look to the script to see what it is doing and maybe you can see what's missing. I know for sure I have issues with gLiveView.sh for example because I did not have jq and bc packages installed.
George - APEX Stake Pool
CC BY-SA 4.0
2022-02-02T00:27:17.907Z
I definitely have jq, not sure about bc - jq is used by SPOS... I also had issues with gLiveView hanging the node, back on 1.29.0 when I got started with cnode.  I think I will try the topologyUpdater script, run the prereqs to an empty folder and see what happens.  Take a snapshot of the host first.
Jay Imerman
CC BY-SA 4.0
2022-02-03T15:43:56.507Z
OK, I configured and ran the topologyUpdate script, set it up to run every hour.  However, when I looked at the Cardano centralized topology file (https://explorer.mainnet.cardano.org/relays/topology.json), our relays are not there after 24 hours.  How do we get our relays on that list?
Jay Imerman
CC BY-SA 4.0
2022-02-01T14:59:31.580Z
2022-02-01T14:59:31.580Z
George - APEX Stake Pool
<p>I believe we are missing something.  Earlier I <a href="https://cardano.stackexchange.com/questions/6989/how-to-move-cardano-node-stake-pool-to-new-ip-address">asked a question</a> on how to reregister the stake pool from the new hosts.  However, apparently I had not asked the entire question - which is, how do you go about moving the node?  As in, what are the steps?  The documentation on this has been pretty hard to find.  What I did was to set up the node on the new hosts, transfer the keys, and then re-register the stake pool using the SPOS scripts.  But, the IP addresses of the relays aren't being updated on the net - so how do I update the topology file?  I found a <a href="https://cardano-community.github.io/guild-operators/Scripts/topologyupdater/" rel="nofollow noreferrer">Topology Updater script</a>, but I can't just download and run it - it appears that a set of very specific prerequisites needs to be set up, and I don't see where that is documented.  So how exactly do I take my updated topology file and submit it to the network to supersede the old one?</p>

<cardano-node><stake-pool>
How to move Stake Pool Node to new IP address?
# How to move Stake Pool Node to new IP address?

(Asked by: username_0 on 2022-02-01)

I believe we are missing something. Earlier I [asked a question](https://cardano.stackexchange.com/questions/6989/how-to-move-cardano-node-stake-pool-to-new-ip-address) on how to reregister the stake pool from the new hosts. However, apparently I had not asked the entire question - which is, how do you go about moving the node? As in, what are the steps? The documentation on this has been pretty hard to find. What I did was to set up the node on the new hosts, transfer the keys, and then re-register the stake pool using the SPOS scripts. But, the IP addresses of the relays aren't being updated on the net - so how do I update the topology file? I found a [Topology Updater script](https://cardano-community.github.io/guild-operators/Scripts/topologyupdater/), but I can't just download and run it - it appears that a set of very specific prerequisites needs to be set up, and I don't see where that is documented. So how exactly do I take my updated topology file and submit it to the network to supersede the old one?

**Tags:** cardano-node, stake-pool

---

## 3 answers

### Answer by username_1 on 2022-02-01. Score: 1

In general, there's nothing in the protocol itself that cares where your node made blocks, but here's some best practices on what you would do:

1. Create your new relays in the new hosting center
2. Setup bi-directional connections between your old/new relays in your topology files
3. Notify any pools you're pairing with of your new relays so they can add them to their topology files as well
4. Re-register the new relays for your pool so IOHK and other pools getting information from db-sync to generate their topology files can find your relays
5. Sync a new "relay" against your new relays in your new hosting center. This will eventually become your block producing node
6. Identify a time when your node will not produce a block that's a good maintenance window (ideally a few hours in case anything goes wrong)
7. cleanly stop both the old block producing node and the new one (that's currently a relay) with a SIGINT signal so the database is cleanly shutdown.
8. (*optional* but good practice) generate a new KES key an opcert
9. restart your new block producing node with the VRF skey and new KES/opcert.
10. Ensure your relays have adequate incoming relay connections from outside prior to shutting down your old relays.
11. remove old relays from your new relay topology and restart them

> **Comments:**
> **username_0**: This to me sounds like a good, comprehensive set of steps.  Forgive my ignorance as a first-time SPO, maybe I could confirm details of some of the steps.  2) Bi-directional connections meaning what, I add each of the old/new relays in each of the relay topology files?  4) Re-register, meaning run SPOS 05c script?  Or is there a specific cardano-cli command or such?  10) Adequate relay conxs - how do I do this, is this a cardano-cli query?  

---

### Answer by username_2 on 2022-02-01. Score: 0

i think you are missing something and you make more complicated your question.

every pool needs only one BP (second one for redudancy, but never run 2 BPs at the same time) and you also need Relays, more than 2 for the redudancy.

the BP (block producer) need his settings and only connections to your relays. no other connection to any other Relay in the network. that is for your security. this node, the BP, need 3 files so that runs as BP. that is the only different to the Relays.

which means now,
the IPs which are known and used in public, are the IPs from your relays.

now to your point.
if you want to install new node, what ever it is (either BP or Relay), you need a normal installation as it was for any other old Node.

if you want to use this new Node a Relay,

1. prepare it as relay,
2. connect it with your BP only
3. register the pool with your new public IPs

if you notice here, in importan key\_step is to register again the pool with your new IPs (from Relays)

in case now you want new installation for your BP,

then please just install new node, connect it with your Relays, and add the proper files to run as BP.

please let me know, if that is what you exactly want to make it clear.

for any further support, let us know and we are happy to assist you.
TTS17

> **Comments:**
> **username_0**: thank you so much for your answer!  I want to make sure I understand.  When you say "register the pool with your new public IPs" I ran the SPOS registration script 05c to register the stake pool with REREG as a command line parameter, from one of the new nodes.  I believe this submitted the topology file with the new IP addresses, right?  Or, maybe more to the point - how do I update the Cardano network topology file with my new relay IP addresses?  
> **username_2**: do you use cntools? - here is a great guidance from cool operator -  https://forum.cardano.org/t/how-to-set-up-a-pool-in-a-few-minutes-and-register-using-cntools/48767/1699   -  i speak for the "STEP 8 - register the pool" -/- in your case you have to go  >> POOL >> MODIFY  
> **username_2**: to update the topology file, you need a script to run everyone ,which s called "topologyUpdater"  
> **username_0**: OK I will have a look.  I didn't download cntools, and like I said in my post, I tried the topologyUpdater.sh, but it didn't work, and I had to run the prereqs.sh, but that asked for an empty folder, so I didn't understand what it was going to do.  
> **username_2**: OK,  now it goes to be more complicated, as we open more tickets, if you need further support, find telegram group : https://t.me/CardanoStakePoolWorkgroup - or open tickets in : https://forum.cardano.org/ - we are huge community and happy to support you. welcome mate  
> **username_0**: I did get topology updater to work, I found the env settings. But I dont see the new relays in https://explorer.mainnet.cardano.org/relays/topology.json  I can try Telegram, I figured StackExchange is the best method of capturing the Q&A.  
> **username_2**: if you installed properly the node, and is synched, did you modify the pool with the new public IPs of your Relays?  
> **username_0**: Yes, the new node is synced, all 3 servers up to date.  What exactly do you mean by "modify the pool with the new public IPs of your Relays"?  The mainnet-topology.json files on all the new pool node servers have the new IP addresses, and the cron job of topologyUpdater.sh should have submitted those, right?  I noticed that a week later, adapools.org still has the old relay IPs.  
> **username_2**: do you build your whole installation with cntools or manually? or another installation guide?  
> **username_2**: you have to Register the stakepool certificate but without "Generating your delegation certifcate", means you dont have to pay again the 500ADA -----i have 2 different ways, -CNTOOLs -> >> POOL >> MODIFY >>OnLine or OffLine -> then you select your Pool and give values to all parameters again, but using your new Relays IPs.  ///// the second way is the manual by commands, how it was in the past 1. Generating the stakepool certificate(cardano-cli shelley stake-pool registration-certificate) 2. Calculating the fees, 3. building the transaction, and 4.submitting it  
> **username_2**: if some / a comment / answer is useful, you can give a credit :)  
> **username_0**: Yes, absolutely I will.  Our stake pool is still not operational, and I have had some personal challenges stopping me from working on it at the moment.  I apologize for the delay.  I followed the stakepool247 guide to install, so I installed via their script, not via cntools.  This is the third stakepool I have installed, but I have never moved one before.  I am considering deregistering, get the 500 ada back, and re-registering from the new pool.  The registration I ran using SPOS scripts, and I did that from the BP.  
> **username_0**: Another idea might be to wipe the OS back to plain Ubuntu, and do a CNTOOLS install.  I have never done that before, but it can't be that much different.  
> **username_2**: if you want, find me in telegram or other chats and groups, i can help you,, there is also amazing forum.cardano.org/  anyway, i am really happy to assist you. find me tts17.com, or twitter : tts1710  
> **username_2**: cntools is what i use and recommend it. - it is so easy, and i can assists 101%, the point is , you need the learn and understand the folder structure.  

---

### Answer by username_3 on 2022-02-01. Score: 0

First thing: you can re-register the stake pool from any host in the world. You don't have to do it from one of the stake pool nodes.

Second thing: the only keys you need on the block producer node are: kes.skey, vrf.skey and the operational certificate (node.cert or oper.cert, depending on what guide you were using). It is not advised to have the payment keys on a server connected to the Internet. Maybe it is a requirement for the scripts you are using, but I would not do that.

If the new relays are in sync, you should install the topology updater script. You have some requirements to install, but you can use the documentation.
<https://cardano-community.github.io/guild-operators/basics/#pre-requisites>

Once you are running the topology updated script on the new relays and you have incoming connections, you can re-register the stake pool with the new relays. I assume you already have the new block producer connected to the new relays (both directions connections between relays and block producer). But you should not run both block producers in the same time, if you have blocks scheduled. You can also connect the new block producer to both old relays and new relays, and stop the old block producer even before updating the stake pool registration certification.

> **Comments:**
> **username_0**: When I run the prereqs, don't forget I have an already-installed, running node.  I enter the path to the install folder, and it says I have to give it an empty path.  I don't know what it is going to do, and the documentation isn't clear on my question.  Do I create an empty folder and run the script to that?  
> **username_3**: I think the prereqs.sh will only install some packages that you need to run the scripts. You may already have them. You can try to run topology updater without running the prereqs.sh, but if it is not working correctly, take a look to the script to see what it is doing and maybe you can see what's missing. I know for sure I have issues with gLiveView.sh for example because I did not have jq and bc packages installed.  
> **username_0**: I definitely have jq, not sure about bc - jq is used by SPOS... I also had issues with gLiveView hanging the node, back on 1.29.0 when I got started with cnode.  I think I will try the topologyUpdater script, run the prereqs to an empty folder and see what happens.  Take a snapshot of the host first.  
> **username_0**: OK, I configured and ran the topologyUpdate script, set it up to run every hour.  However, when I looked at the Cardano centralized topology file (https://explorer.mainnet.cardano.org/relays/topology.json), our relays are not there after 24 hours.  How do we get our relays on that list?  

---

