Subject: Public NNCP Relay is now available

From: John Goerzen <[email-masked]>
Date: Sat, 31 Jul 2021 20:56:30 -0500

Hi folks,

I have now established the public NNCP relay I wrote about.  This 
is, of course, experimental and I hope we all can learn from it.

I know Sergey writes that it's intended to build up a "small size 
ad-hoc friend-to-friend" network.  I say - let's push its limits 
and see where we can take it!  I mean, we already know it's going 
to be better than UUCP, right? :-)

I'll include the README.txt that can be freq'd from quux below. 
It describes how to fetch a nodelist.  Of course, that nodelist 
need only list the peers that partner with the relay node 
directly.  -via can always hang more branches off it and the relay 
need not know about them.

Also I think it would be really interesting to see where we can 
take this.  Email?  Usenet?  (rmail/rnews)  There are a lot of 
complexities there, and with email also security questions.  I've 
started to think about these issues but haven't gotten very far.

Basically, there's a pretty big difference between allowing a 
machine you own to run sendmail on a remote node and allowing a 
stranger you don't know to do the same.  There are also questions 
of routing and addressing and...  yeah.  Anyhow, there's nothing 
preventing you from using this public relay to send email anyhow.

The public relay itself will not accept any nncp-exec or nncp-file 
commands from any node.  It will, however, answer nncp-freq 
commands from all nodes it know about.  This will let you relay 
email via it, of course.

Here's the README.txt:

nncp.quux.org public NNCP server
John Goerzen
July 31, 2021

Welcome.  Here you will find basic information on using the 
nncp.quux.org
public NNCP relay/server.

JOINING THE NNCP RELAY
----------------------

To join, please send an email to [email-masked] requesting 
addtion.

Make sure your email includes:

- The preferred nodename for your system.  Note that you can use 
  whatever
  nodename you like locally, since they are just aliases for NNCP 
  ids.
  This is to help others in the nodelist.

- If your system is permanently online on the Internet, reachable 
  at a known
  hostname/port, and you wish this to be published in the 
  nodelist,
  let me know.  This is completely optional; it is assumed most 
  systems
  will not be reachable in this way.  However, if we have ones 
  that are,
  then the relay server can also establish outbound connections to 
  you.

- The self section FROM WITHIN THE neigh BLOCK of your nncp.hjson. 
  It should
  look like this:

neigh: {
  self: {
    # You should give public keys below to your neighbours
    id: RKOLY...KAMXQ
    exchpub: 2NZKH...CMI7A
    signpub: EXD7M...YAOFA
    noisepub: MIXYN...BGNDQ
  }
}

Upon receiving your request, you will be added to the server 
configuration and
the public nodelist.

LOCAL CONFIGURATION
-------------------

Add these lines to the neigh section of your nncp.hjson:

    quux: {
      id: SXNADKNYBOU6VPDVZHZZGHPJXDDZTDWDT4YAQ5TJHBA6FTNUHTCA
      exchpub: 
      7L4GZ4LKXZREZFSBKCBX4CGUTLYKUHR4KNQ3O6NPJGGM6C5YGAPQ
      signpub: 
      HS2Q2DNZWWCFY4V2UGYYJZFU4UPTUBFOTFYBY25QNOKDNG2OBKDQ
      noisepub: 
      C7JASCAKJDRQNWNBOUX6WGFN4U7KC3NFU472IW43NJIBUB3V3EZQ

      addrs: {
        internet: "nncp.quux.org:5400"
      }
      incoming: "/tmp" # (or more appropriate path); may be 
      omitted after testing
    }

Then restart your daemons and verify things have loaded 
appropriately.

TESTING YOUR CONFIGURATION
--------------------------

Once you receive confirmation that your node has been added to the 
server,
you can test your configuration by requesting this file from the 
remote:

nncp-freq quux:README.txt

After packets are exchanged and tossed after a few minutes, you 
should have
a copy of README.txt in the directory you labeled as incoming in 
your
configuration.  At this point, if you no longer wish to be able to
receive freqs or files from quux, you may delete or comment out 
the
incoming line in your configuration.  However, you probably will 
want
to be able to freq files from quux; read on.

THE NODELIST
------------

Part of the fun of this relay is discovering other peers around 
the world.

To that end, every peer on this relay is mentioned in the 
nodelist.

Download the latest nodelist with:

nncp-freq quux:nodelist.zip

Upon unpacking, you will find a directory with nncp.hjson 
fragments
corresponding to the nodes in the system.  (Yes, I know about 
nncp-cfgdir,
but it doesn't readily support comments and I wanted them.)

You can use a script such as this to emit a more cohesive 
nncp.hjson blub:

rm MYNODE    # Delete your own node; that will be processed under 
"self"
for FILE in *; do
   echo "$FILE: {"
   cat "$FILE"
   echo 'via: ["quux"]'
   echo '}'
   # Here you could add lines about incoming dirs, via path
done

Then, if you have two ready-made nncp.hsjon segments -- the bit 
before this
part of the neigh section, this part, and then the end, you could 
form the
complete nncp.hjson like so (assuming the above script is in 
cat-nodelist):

cat nncp.hjson.pre > nncp.hjson
cat-nodelist >> nncp.hjson
cat nncp.hjson.post >> nncp.hjson

DISCLAIMERS
-----------

This system is experimental.  No guarantee about correctness of 
operation,
longevity, or uptime is provided.

Submitted data, including your name, email address, host keys, and
hostname/port, will be made available to all other present or 
future members
of this relay server.

If you wish to be removed from the relay server, email 
[email-masked]
with your request.