BP node not connecting to relay - Testnet

AWS to AWS

My relay node is connecting to the network fine and staying in sync. My BP node is unable to connect to my relay node. Relay node does not show BP as peer.

I changed the topology of my BP node to include one of the IOHK relays just to see and it began downloading blocks, but not from my relay. After deleting the IOHK relay from topology it can’t connect. (why reading slot 0 - deleted db folder after IOHK relay test)

Here is the error string I’m getting:

[ip-172-3:cardano.node.ChainDB:Info:5] [2020-08-23 21:39:41.48 UTC] Opened db with immutable tip at genesis (origin) and tip genesis (origin)
[ip-172-3:cardano.node.ChainDB:Notice:35] [2020-08-23 21:39:41.48 UTC] Chain extended, new tip: 1e64e74bd7ac76d6806480a28017deb0aedd356fb61844ec95c429ae2f30c7c3 at slot 0
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-23 21:39:41.48 UTC] [String "Trying to connect to <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:57] [2020-08-23 21:39:41.48 UTC] [String "Connection Attempt Start, destination <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Notice:55] [2020-08-23 21:39:41.48 UTC] [String "Waiting 0.025s before attempting a new connection",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Error:57] [2020-08-23 21:41:50.85 UTC] [String "Connection Attempt Exception, destination <RELAYIP>:<PORT> exception: Network.Socket.connect: <socket: 24>: timeout (Connection timed out)",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:57] [2020-08-23 21:41:50.85 UTC] [String "Closed socket to <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Error:55] [2020-08-23 21:41:50.85 UTC] [String "Failed to start all required subscriptions",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.ErrorPolicy:Notice:53] [2020-08-23 21:41:50.85 UTC] [String "ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace Network.Socket.connect: <socket: 24>: timeout (Connection timed out))) 20s",String "ErrorPolicyTrace",String "<RELAYIP>:<PORT>"]

I redacted my IP and Port for the post. Otherwise they are targeting my relay ip:port.

1 Like

Hi Andy,

Have you opened your block producer firewall to accept incoming connections from your relay on the appropriate port?

What do your relay and topology files and firewalls look like (omit ips and port numbers)?

Your friend, FROG

I got locked out of one of my nodes messing with the ufw. I started from scratch with both of them just to be sure there was no residual mistakes. I’m still unable to connect the relay and bp nodes. The errors are not all the same now. Here is what I’m getting.

[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:53:46.84 UTC] [String "Skipping peer <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Error:55] [2020-08-24 15:53:46.84 UTC] [String "Failed to start all required subscriptions",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:53:47.84 UTC] [String "Restarting Subscription after 1.001354447s desired valency 1 current valency 0",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:53:56.84 UTC] [String "Trying to connect to <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:71] [2020-08-24 15:53:56.84 UTC] [String "Connection Attempt Start, destination <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Notice:55] [2020-08-24 15:53:56.84 UTC] [String "Waiting 0.025s before attempting a new connection",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Error:71] [2020-08-24 15:53:56.84 UTC] [String "Connection Attempt Exception, destination <RELAYIP>:<PORT> exception: Network.Socket.connect: <socket: 28>: does not exist (Connection refused)",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.ErrorPolicy:Notice:54] [2020-08-24 15:53:56.84 UTC] [String "ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace Network.Socket.connect: <socket: 28>: does not exist (Connection refused))) 20s",String "ErrorPolicyTrace",String "<RELAYIP>:<PORT>"]
[ip-172-3:cardano.node.IpSubscription:Error:55] [2020-08-24 15:53:56.86 UTC] [String "Failed to start all required subscriptions",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:53:57.87 UTC] [String "Restarting Subscription after 1.027025723s desired valency 1 current valency 0",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:54:06.84 UTC] [String "Skipping peer <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Error:55] [2020-08-24 15:54:06.84 UTC] [String "Failed to start all required subscriptions",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:54:07.84 UTC] [String "Restarting Subscription after 1.001378928s desired valency 1 current valency 0",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:54:16.84 UTC] [String "Trying to connect to <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:72] [2020-08-24 15:54:16.84 UTC] [String "Connection Attempt Start, destination <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Notice:55] [2020-08-24 15:54:16.84 UTC] [String "Waiting 0.025s before attempting a new connection",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Error:72] [2020-08-24 15:54:16.84 UTC] [String "Connection Attempt Exception, destination <RELAYIP>:<PORT> exception: Network.Socket.connect: <socket: 30>: does not exist (Connection refused)",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.ErrorPolicy:Notice:54] [2020-08-24 15:54:16.84 UTC] [String "ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace Network.Socket.connect: <socket: 30>: does not exist (Connection refused))) 20s",String "ErrorPolicyTrace",String "<RELAYIP>:<PORT>"]
[ip-172-3:cardano.node.IpSubscription:Error:55] [2020-08-24 15:54:16.87 UTC] [String "Failed to start all required subscriptions",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:54:17.87 UTC] [String "Restarting Subscription after 1.027034205s desired valency 1 current valency 0",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:54:26.84 UTC] [String "Skipping peer <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Error:55] [2020-08-24 15:54:26.84 UTC] [String "Failed to start all required subscriptions",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:54:27.84 UTC] [String "Restarting Subscription after 1.001400695s desired valency 1 current valency 0",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:54:36.84 UTC] [String "Trying to connect to <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:73] [2020-08-24 15:54:36.84 UTC] [String "Connection Attempt Start, destination <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Notice:55] [2020-08-24 15:54:36.84 UTC] [String "Waiting 0.025s before attempting a new connection",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Error:73] [2020-08-24 15:54:36.84 UTC] [String "Connection Attempt Exception, destination <RELAYIP>:<PORT> exception: Network.Socket.connect: <socket: 32>: does not exist (Connection refused)",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.ErrorPolicy:Notice:54] [2020-08-24 15:54:36.84 UTC] [String "ErrorPolicySuspendConsumer (Just (ConnectionExceptionTrace Network.Socket.connect: <socket: 32>: does not exist (Connection refused))) 20s",String "ErrorPolicyTrace",String "<RELAYIP>:<PORT>"]
[ip-172-3:cardano.node.IpSubscription:Error:55] [2020-08-24 15:54:36.87 UTC] [String "Failed to start all required subscriptions",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:54:37.87 UTC] [String "Restarting Subscription after 1.026992921s desired valency 1 current valency 0",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Info:55] [2020-08-24 15:54:46.84 UTC] [String "Skipping peer <RELAYIP>:<PORT>",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]
[ip-172-3:cardano.node.IpSubscription:Error:55] [2020-08-24 15:54:46.84 UTC] [String "Failed to start all required subscriptions",String "[<RELAYIP>:<PORT>]",String "WithIPList SubscriptionTrace",String "LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}"]

Relay testnet-topology.json

{
  "Producers": [
    {
      "addr": "<BPIP>",
      "port": <BPPORT>,
      "valency": 1
    },
    {
      "addr": "relays-new.cardano-testnet.iohkdev.io",
      "port": 3001,
      "valency": 2
    },
    {
      "addr": "135.181.40.207",
      "port": 3001,
      "valency": 1
    },
    {
      "addr": "95.179.151.144",
      "port": 3010,
      "valency": 1
    },
    {
      "addr": "135.181.40.207",
      "port": 3001,
      "valency": 1
    },
    {
      "addr": "95.179.151.144",
      "port": 3010,
      "valency": 1
    }
  ]
}

Relay firewall

sudo ufw status verbose
Status: inactive

BP testnet-topology.json

{
  "Producers": [
    {
      "addr": "<RELAYIP>",
      "port": <RELAYPORT>,
      "valency": 1
    }
  ]
}

BP firewall

sudo ufw status verbose
Status: inactive

Both AWS security groups are set to allow all incoming and outgoing traffic.

You should have both relays in your bp topology if you have two relays that is

Also, you are duplicating your relays in your relay topology - they don’t really even need to be in there (especially the ip of the same relay itself), let alone duplicated.

usually, if topology is fine then these 2 steps can help:

  1. you are starting node with external ip… change to this --host-addr 0.0.0.0
  2. use internal IP in topology file to connect between nodes (if you have them on the same AWS account)

then - as always, check if you can reach your relay from your BP node and from BP to Relay
telnet

let me know if this helps

Was testing the builds using just 1 relay for now. Will get more once I get it operational.
The repeat in the topology was a copy/paste error. A scrolled to a new page and accidentally grabbed one again.

Thanks, this worked!
I changed to --host-addr 0.0.0.0 when starting both my relay and bp node.
I also used the private IPs in the topology files instead of public.

Will be adding my firewall back, just wanted to eliminate possible problems at first.

I have the same problem, but my setup is one BP at home, and one relay on the cloud (AWS). I use external host/network IP addresses in both relays (including BP) for host addresses for node startup scripts and topology files. Both relays are processing blocks, but I have two errors on my BP:

cardano.node.IpSubscription:Error:58] [2020-08-25 22:18:13.87 UTC] [String “Failed to start all required subscriptions”,String “[y.y.y.y:3001]”,String “WithIPList SubscriptionTrace”,String “LocalAddresses {laIpv4 = Just 0.0.0.0:0, laIpv6 = Nothing, laUnix = Nothing}”]

where y.y.y.y:3001 is address:port-number on my AWS relay and this error above is generated by my BP node at home (x.x.x.x:3000).

There are a variety of errors of course in addition to this one, particularly on my relay node, but I’ll deal with those later.

Edit: corrected mistake in previous edit by omission of mistake in this edit.

Try this? Issue connecting to AWS relay nodes

1 Like

Aha! I was starting to get a feeling that port forwarding would be involved. Nodes are on private IPs behind router/network IPs. Thanks, Andy. I’ll give it a shot - see if it works.

Since I’m going to be setting up two relays and one BP on the cloud, I might as well forego this port-forwarding setup which is more complicated and just create a BP testnet instance on the cloud…that way I’ll get to practice what I actually plan to do in the future. It will cost more, but it’s the setup I’ll be doing eventually. I still would like to practice port-forwarding if I get the chance, but it’s not the setup I plan to do…it’s just scary to have your BP on the cloud…you really need to know what you’re doing in terms of security, so I’ll just start off with low pledge and delegate higher staking ‘pledge’ to my pool to keep majority of ‘pledge’ safe from hackers. Although eventually, I want to stake a significantly larger amount, I have to practice security first and foremost to get to the larger amount I want to eventually pledge.

1 Like

That’s a good idea, Low pledge and delegate a larger amount to your own pool! I’ve set up BP at home and 2 Relays on AWS, all 3 fully synced, once I update topology of BP, both Relays connected to BP but BP not connecting to Relays! I’m pulling my hair out FFS! :confused:

1 Like

I had the same issue with the BP not being able to connect to the AWS relay. I was able to get my home BP on the testnet to connect to my AWS relay instance by using the internal IPs of both the relay and BP launch commands. I probably didn’t need to change the config on the relay because it was the BP connection that was giving me trouble, but I changed it anyway for consistency since it worked for my BP.

cardano-node run
–topology shelley_testnet-topology.json
–database-path /db
–socket-path /db/node.socket
–host-addr <INTERNAL IP ADDRESS OF HOME BP>
–port <‘INTERNAL PORT’>
–config shelley_testnet-config.json
–shelley-kes-key kes.skey
–shelley-vrf-key vrf.skey
–shelley-operational-certificate node.cert

instead of the external IPs. I don’t know if this is safe. I do have port forwarding set up on home router, and firewall (security group) on AWS instance because the topology files still use the external IPs for both the relay and BP.
I’m still on testnet, but almost done with the course, just gotta do metadata stuff and whatever follows that, then I will have finished the course.
I would like to run a BP at home, but I’m in Florida - we are the lightning capital of the US and perhaps beyond, we have hurricanes and lots of thunderstorms, and I will be moving from my current home, so cloud instance setup is most suitable for me at the moment: fast, reliable, and calm location way outside of Florida…lol.

1 Like

Thank you so much for your swift reply, I really appreciate it, I will certainly give your suggestion a go.

I’ve got basic computer skills, I’ve never done anything like this before; Linux, cli, it’s all new and a massive learning curve, but I am determined to get this done!

It all started off as an ambition to support the Cardano Ecosystem and grow my ADA stack in the process, now it’s all about proving to myself that I can do it! :grinning:

It sound like we are at the same stage; I have all my keys etc, I’ve just completed the Pool Metadata.

I can offer you a tip with the metadata if you get stuck!

Kind regards,
Polat

1 Like

I wanted to figure out once and for all what works on a home BP and an AWS relay.

So I got rid of all connected devices to my LAN except my BP and my router so I could just focus on the communication between them.

Home router has IPv4 enabled, IPv6 disabled, no firewall for IPv4, just port forwarding available for IPv4 to set up to allow my router to forward packets from external IP of relay to internal IP of my BP on port 3000.

AWS relay instance uses firewall (AWS calls it ‘security group’) where the only relevant traffic allowed in is from my home’s external IP in which the subnet mask must be included. In other words, when I choose “My IP” from AWS’s drop-down menu, AWS sees only my public IP address in the form p.p.p.p/24, which is basically my public IP plus the /24 indicating which IP addresses are reserved for use for my devices on my home network/LAN.

Anyway, I’m running Ubuntu Desktop 20.04 LTS.
I disabled the ufw firewall on my BP for this test so it wouldn’t interfere with the experiment.

AWS relay uses cardano-node version 1.19.0, and home BP uses 1.18.0

AWS relay runs on AMI Linux or simply Amazon Linux - don’t recall which version.
I have a 3rd-party (non-ISP) ASUS router - don’t recall model.

All testnet-topology files used for this test were left unchanged, using external IP’s only.
No changes needed to be made to the AWS firewall nor my home router’s port-forwarding because AWS only sees my IP in one particular way and my BP works fine with its internal forwarded, so I left the internal port forwarding IP as is for the duration of the test.

The only changes made during this test were to the start-up commands for the nodes, changing the host address in the start-up command of the BP and relay to one of the three of the following options:

e = external IP, i = internal IP, and 0 = 0.0.0.0 address

So the following table indicates that out of the 9 possible configurations, 4 of them worked! The working configurations are indicated by WW.

all-connections

So, for example, if you look at the first column, second row, this is the configuration:
BP using external IP, and relay using internal IP corresponds to the cell WS which means the BP node works fine, but the relay node has a subscription issue (the relay can’t receive info from the BP node).

The best outcome is WW where both nodes work (run and receive info from one another).
That happens in 4 of 9 configurations: BP and relay both using internal IPs; BP and relay both using address 0.0.0.0.0; BP using internal IP, relay using 0.0.0.0; and finally BP using 0.0.0.0 address, and relay using internal IP.

Now things get strange. If you disable port-forwarding on the ASUS router at home, you get the following map where things work better now than before. You get 6 working instances:

BP and relays - not port-forwarding

AWS relay only has firewall enabled, but installing port-fowarding on AWS instance requires a significant amount of work : https://aws.amazon.com/blogs/mt/amazon-ec2-instance-port-forwarding-with-aws-systems-manager/

Enabling port forwarding on AWS relay might give you a worst outcome than the following two maps, so I won’t try to speculated as to which nodes would work under these ciruclstance.

Whether you can get configurations to work might also depend on the capabilities of your home router or maybe even depends on your ISP not blocking certain services if you are configuring a router they provide to you. I really don’t know.

EDIT NOTE: One of my 6 node launching scripts was bad causing BP node to fail whenever the address was supposed to be 0.0.0.0, so I updated the first table in this edit to reflect the corrections on the third row for the BP.

I forgot to mention that I’ll redo this experiment when I have two or more relays and the BP on the cloud, both AWS and GCP instances.