[erlang-questions] Finding nodes

Dave Smith dizzyd@REDACTED
Wed Sep 9 14:47:23 CEST 2009


Assuming you are OK with the inherent security implications of
allowing ANY node to exchange messages with any other node, I'd just
use a multicast ping packet (< 20 lines of Erlang) which would then
allow me to see what hosts are running EPMD. From there, you can talk
to EPMD and find all the nodes running on a particular host.

DNS-SD would be really nice to have someday, but that's a fair bit of
code to knock together last time I looked. EPMD gets you most of the
way there, since all distributed erlang nodes start it by default --
you just need to identify those hosts.

You can talk to EPMD via erl_epmd (undoc'd, in the kernel app) or
(BLATANT PLUG) via the epmd_api library I wrote:
http://github.com/dizzyd/epmd_api

As noted previously however, there are SIGNIFICANT security
implications to what you want to do -- are you sure you want to do
this? :)

D.

On Wed, Sep 9, 2009 at 6:29 AM, Robert Raschke <rtrlists@REDACTED> wrote:
> Hi,
>
> I am thinking about how to get Erlang Nodes within a LAN to find each other,
> without having to have a known central server.
>
> Has anyone already done something along the lines of service discovery in
> Erlang? Like using something like DNS-SD to find other Erlang Nodes on your
> subnet, for example? Or multicast ping on known port? Or ...?
>
> I'd be interested in prior art, before plunging head first into a new
> territory. Googling didn't turn up anything, but so far I've only spent
> about 30 minutes on searching; more to follow.
>
> Thanks for any pointers,
> Robby
>


More information about the erlang-questions mailing list