Subject: Re: Automatic routing: Thoughts, Questions, and Designs

From: Sergey Matveev <[email-masked]>
Date: Tue, 31 Oct 2023 11:43:36 +0300

Greetings!

Unfortunately I can not answer any of that right now. I have never ever
thought about routing automatisation/easiness. NNCP was never intended
to do that kind of things. Being friend-to-friend in my opinion means
that no "automagic" routes/neighbours distribution occurs -- human has
to explicitly make all required decisions. I mean I am not against that
kind of things, but at first glance do not sympathise that features,
ignorant to them.

>The ultimate idea is that NNCP users should be able to send email to
>[email-masked] without having to have previous knowledge of it or
>direct knowledge of how to route a packet there.

In my opinion that is exactly what (completely) distributed networks do,
peer-to-peer ones with automatic peer discovery. And in my views that
some kind of opposes friend-to-friend network, where you have to
explicitly set authentication/trust/knowledge about each peer. NNCP was
not designed with such things in mind. I do not want to say that it is
impossible with current design decisions, but personally I would not try
to implement distributed network with peer's (routing) autodiscovery on
top of existing implementation, but would redesign it from scratch
probably.

>Question: if a destination is not given in nncp.hjson, but its -via step
>is, can we send a packet to it simply by giving its full node ID as the
>destination?  That is, if the node ID is the public key, that should
>theoretically work, right?

No, because node's ID is a hash of node's signing public key. Even if it
was (actually they have got the same length) the signing public key
itself, each node also has "exchpub" key (curve25519 public key that is
used in Diffie-Hellman key agreement to derive shared encryption key for
packet encryption). Using of hash(signpub) instead of signpub is not
necessary step, just used to more uniformly distribute ID's value at
256-bit value space. If node's ID will be concatenated 512-bit
"exchpub"+"signpub", then it could be used to immediately create
outgoing packet to that node indeed.

-- 
Sergey Matveev (http://www.stargrave.org/)
OpenPGP: 12AD 3268 9C66 0D42 6967  FD75 CB82 0563 2107 AD8A