I'm trying to setup a distributed network of nodes across a few firewalls and it's not going so well.
My application is structured like this: there is a central server that always running a node (
[email protected]) and my co-worker's laptops connect to it on startup.
This works if we're all in the office, but if someone is at home, they can connect to the masternode, but they fail to connect to the other nodes in the swarm. I.E., erlang fails to gossip correctly.
To correct this, I've change epmd's port number and changed the inet_dist_listen ports to a known open port (1755 and 7070 respectively). However, something fishy is going on.
I can run net_adm:world() and it reports that it connects to master node, but when I run nodes() I get an empty array. Same with net_adm:ping('
[email protected]').
See:
Eshell V5.9 (abort with ^G)
(
[email protected])1> net_adm:world().
['
[email protected]']
(
[email protected])2> nodes().
[]
(
[email protected])3> net_adm:ping('
[email protected]').
pong
(
[email protected])4> nodes().
[]
(
[email protected])5>
What's going on, and how can I fix it?