<blockquote>
<p>Do you require 3 static IPs to run a stake pool?</p>
</blockquote>
<p>It depends. All your nodes needs a static addresses to talk to each other; this can be IP or dns. If going the IP route, it is best that the block producer IP is local and not public. The relay nodes will need to have public IP addresses.</p>
<ul>
<li>1 public for each relay (2 public static IPs all together)</li>
<li>for a block producing node (one private static IP)</li>
</ul>
<p>Now if reserving static IP is tricky, then you can also get away with just domain name resolutions if you use a dns service that propagates ip changes quickly. What you don't want is for your nodes to be cut out from the network while is creating a block.</p>
<blockquote>
<p>I'm assuming that you can specify hostnames in place of IP addresses because someone did mention that DDNS can work, but isn't recommended.*</p>
</blockquote>
<p>DDNS can work but isn't recommended since those service are often very slow or buggy when it comes to updating dns records. Also, I think DDNS will be more problematic if the upcoming P2P and gossip protocols has any kind of caching layer.</p>

CC BY-SA 4.0
2021-06-16T20:50:46.340Z
Can you explain why you need 2 public static IPs for each relay? Also, the block-producer IP must be public, otherwise how the relays can see it?
Enzo
CC BY-SA 4.0
2021-06-22T22:56:27.523Z
You need 2 altogether, 1 for each; I updated my answer. Your block producer should talk to your relay via a private or local network. Since your block-producer has sensitive information, you don't want the out getting in while still allowing all the things already in to talk to each other.
Darlington Kofa
CC BY-SA 4.0
2021-06-23T07:16:59.107Z
It's not a requirement to have static public IPs for each relay - you can easily share a single IP address and have them on different ports (assuming you have the ability to forward these on, for ex. using NAT).
Danny Tuppeny - CODER
CC BY-SA 4.0
2021-05-31T14:33:35.000Z
2021-06-22T22:46:10.273Z
2021-06-22T22:46:10.273Z
Darlington Kofa
<p>You need to ensure that if your pool creates a block, that this is properly propagated to the rest of the network. So, your pool needs to be connected to the Cardano network at this specific time.</p>
<p>When your IP changes and the DDNS updates this record, it take take up to 5 minutes or more to propagate this DNS change to the rest of the internet. Your peers will probably detect that your IP is down and will try to reconnect.</p>
<p>So, to answer your question: it depends. Can you ensure the change of IP is made in a way that does not break your connection to the network <strong>or</strong> that it does so not when your block creation is scheduled?</p>
<p>I would say, it is possible, but not sure if it is worth to put in the effort. Can you buy a static IP from your ISP?</p>

CC BY-SA 4.0
2021-05-31T13:40:07.907Z
Thanks Marek! My question was more to the number of static IPs required for this endeavor - i.e. do all 3 machines (2 relays + 1 block producing node) require 1 static IP each? I will edit my question so this is clearer :)
Edwin Chua
CC BY-SA 4.0
2021-05-31T13:37:38.677Z
2021-05-31T13:37:38.677Z
Marek Mahut - StakeNuts
<p>You do not need a static <em>public</em> IP address for each node. You can easily run multiple relays on a single public IP address using different ports (eg. behind NAT/port forwarding).</p>
<p>Eg.</p>
<pre><code>1.2.3.4 port 3001 -&gt; relay 1
1.2.3.4 port 3002 -&gt; relay 2
</code></pre>
<p>You could then point all of the hostnames to that IP but <em>you must</em> use the port numbers when connecting/listing them on-chain. Unlike with HTTP where multiple hostnames can run on a single IP/port (using the HOST header), that's not the case here.</p>
<p>Of course to do this, you'd need to be able to forward the ports from the device with that IP so this may depend on your exact setup (but a home router likely can do this with its port forwarding - I did exactly this with my first testnet pool, having two relays running at home).</p>
<p>Your relays/producer will still need some static <em>internal</em> IP address/hostname that they can connect to each other on (since they will need to be listed in each others topology files).</p>

CC BY-SA 4.0
2021-06-23T07:13:40.887Z
2021-06-23T07:40:50.957Z
2021-06-23T07:40:50.957Z
Danny Tuppeny - CODER
<p>Do you require 3 static IPs to run a stake pool?</p>
<ul>
<li>1 for each relay (x2)</li>
<li>1 for a block producing node</li>
</ul>
<p>Or, can I do 1 static IP, and have all these hostnames point to it:</p>
<ul>
<li>relay1.domain.com</li>
<li>relay2.domain.com</li>
<li>bpn.domain.com</li>
</ul>
<blockquote>
<p>I've read that it is not recommended to use a Dynamic DNS provider service as there is some downtime between when your IP address changes and when it is updated by the DDNS provider.</p>
<p>I'm assuming that you can specify hostnames in place of IP addresses because someone did mention that DDNS can work, but isn't recommended.*</p>
</blockquote>
<p>I am debating running this on hardware at home vs GCP, so any advice will be greatly appreciated. TIA</p>

<stake-pool>
How many static IPs does one require to run a stake pool?
# How many static IPs does one require to run a stake pool?

(Asked by: username_0 on 2021-05-31)

Do you require 3 static IPs to run a stake pool?

* 1 for each relay (x2)
* 1 for a block producing node

Or, can I do 1 static IP, and have all these hostnames point to it:

* relay1.domain.com
* relay2.domain.com
* bpn.domain.com

> I've read that it is not recommended to use a Dynamic DNS provider service as there is some downtime between when your IP address changes and when it is updated by the DDNS provider.
>
> I'm assuming that you can specify hostnames in place of IP addresses because someone did mention that DDNS can work, but isn't recommended.\*

I am debating running this on hardware at home vs GCP, so any advice will be greatly appreciated. TIA

**Tags:** stake-pool

---

## 3 answers

### Answer by username_1 on 2021-05-31. Score: 3 | Accepted answer

> Do you require 3 static IPs to run a stake pool?

It depends. All your nodes needs a static addresses to talk to each other; this can be IP or dns. If going the IP route, it is best that the block producer IP is local and not public. The relay nodes will need to have public IP addresses.

* 1 public for each relay (2 public static IPs all together)
* for a block producing node (one private static IP)

Now if reserving static IP is tricky, then you can also get away with just domain name resolutions if you use a dns service that propagates ip changes quickly. What you don't want is for your nodes to be cut out from the network while is creating a block.

> I'm assuming that you can specify hostnames in place of IP addresses because someone did mention that DDNS can work, but isn't recommended.\*

DDNS can work but isn't recommended since those service are often very slow or buggy when it comes to updating dns records. Also, I think DDNS will be more problematic if the upcoming P2P and gossip protocols has any kind of caching layer.

> **Comments:**
> **username_2**: Can you explain why you need 2 public static IPs for each relay? Also, the block-producer IP must be public, otherwise how the relays can see it?  
> **username_1**: You need 2 altogether, 1 for each; I updated my answer. Your block producer should talk to your relay via a private or local network. Since your block-producer has sensitive information, you don't want the out getting in while still allowing all the things already in to talk to each other.  
> **username_3**: It's not a requirement to have static public IPs for each relay - you can easily share a single IP address and have them on different ports (assuming you have the ability to forward these on, for ex. using NAT).  

---

### Answer by username_4 on 2021-05-31. Score: 2

You need to ensure that if your pool creates a block, that this is properly propagated to the rest of the network. So, your pool needs to be connected to the Cardano network at this specific time.

When your IP changes and the DDNS updates this record, it take take up to 5 minutes or more to propagate this DNS change to the rest of the internet. Your peers will probably detect that your IP is down and will try to reconnect.

So, to answer your question: it depends. Can you ensure the change of IP is made in a way that does not break your connection to the network **or** that it does so not when your block creation is scheduled?

I would say, it is possible, but not sure if it is worth to put in the effort. Can you buy a static IP from your ISP?

> **Comments:**
> **username_0**: Thanks Marek! My question was more to the number of static IPs required for this endeavor - i.e. do all 3 machines (2 relays + 1 block producing node) require 1 static IP each? I will edit my question so this is clearer :)  

---

### Answer by username_3 on 2021-06-23. Score: 1

You do not need a static public IP address for each node. You can easily run multiple relays on a single public IP address using different ports (eg. behind NAT/port forwarding).
Eg.
1.2.3.4 port 3001 -> relay 1
1.2.3.4 port 3002 -> relay 2

You could then point all of the hostnames to that IP but you must use the port numbers when connecting/listing them on-chain. Unlike with HTTP where multiple hostnames can run on a single IP/port (using the HOST header), that's not the case here.
Of course to do this, you'd need to be able to forward the ports from the device with that IP so this may depend on your exact setup (but a home router likely can do this with its port forwarding - I did exactly this with my first testnet pool, having two relays running at home).
Your relays/producer will still need some static internal IP address/hostname that they can connect to each other on (since they will need to be listed in each others topology files).


---

