Subject: Re: Public NNCP Relay is now available

From: John Goerzen <[email-masked]>
Date: Mon, 02 Aug 2021 21:34:34 -0500

On Mon, Aug 02 2021, Sergey Matveev wrote:

> then hardly something can go from and compromise anything on the
> computer. But that mbox file can be viewed with an ordinary MUA.
> Allowing "sendmail" execution must be very trusted.

Yes; in fact, rmail is a pretty simple interface for this.  I was 
thinking of rsmtp (BSMTP) but rmail sure does lend itself to 
simplicity.

So this and a conversation I had off-list have prompted me to 
start to wonder - what are we building here?  One person asked me 
to add via lines, since he had three nodes, only one of which 
would contact quux.  That gets complicated in a hurry, since of 
course the via lines on quux only help for content originating 
there (which is pretty much nothing except responses to freqs).

So, what are we building?  Maybe:

1. A simple relay for people to exchange data with their own 
nodes;

2. A simple relay for people to exchange data with their own nodes 
or the nodes of their friends;

3. A larger peer-to-peer network as in UUCPNet or FidoNet that 
builds a decentralized network atop the Internet (or other 
transports)

For 1 or 2, a public nodelist is barely even necessary; you 
configure your own machines as appropriate.  For 3, it's a must, 
and even more so than in UUCP land because we can't send traffic 
to a remote without their keys - and we can't RECEIVE traffic from 
a remote without their keys.

More on that below...

> Files in any of the directories starting with the "." will be 
> silently
> skipped, so can be used to store comments. And nearly all 
> unknown files
> (unknown configuration keys) will be ignored too.

Oh very nice!

> I even wanted to make an example (suggested) nodelist format in
> recutils/recfile format in documentation, something like:

TIL of recutils.  Interesting - thanks!

So if we're going to build #3, what we need is for each node to be 
able to compute the via lines for the other nodes in the network 
*from its own perspective*.

Fortunately we actually have such a tool: pathalias, from the old 
UUCP days.  And, it's even still maintained! 
https://gitlab.com/uucpnet/pathalias

Its output is in UUCP bang path format, but a little bit of sed 
munging would get it to exactly what we need to facilitate basic 
communications from any node in the network to any other node in 
the network.

After that, we can think about possibilities for how to address 
email across the system.  It would be somewhat different from 
SMTP, in that in SMTP the mailers did the relaying, and with NNCP 
we can do the relaying in NNCP itself.  (And SHOULD, to preserve 
E2EE).

I made a sample map file for pathalias:

quux .quux.org
quux = quux.org

alexandria quux(DEDICATED)

hephaestus alexandria(LOCAL)

athena quux(DEDICATED)

Running pathalias on that produces:

hephaestus	%s
alexandria	alexandria!%s
quux	alexandria!quux!%s
athena	alexandria!quux!athena!%s
quux.org	alexandria!quux!%s
.quux.org	alexandria!quux!%s

(those are tab-delimeted)

And that is a correct output for what I described the links: 
alexandria<->quux, hephaestus<->alexandria, and athena<->quux, 
with the local system being hephaestus.

If anybody is interested in looking into this, be my guest. 
Otherwise, I may do so when I have time (which may not be right 
away)

John