Create Basics of NNCPNET authored by John Goerzen's avatar John Goerzen
---
title: Basics of NNCPNET
---
Let's discuss some of the basic concepts of NNCPNET.
# Nodes and Addressing
Every participant in NNCP is called a node. Each node in NNCP has a name. It could be `grumpy` or it could be `mail.greenhouse`. These aren't Internet domain names; they're just names.
But we need something more rigorous for our purposes. Some email systems might handle both Internet and NNCP mail, and we need a definitive way for a machine to tell them apart. So, when we're creating an email address, we just stick `.nncpnet.org` after the node name.
`grumpy` becomes `grumpy.nncpnet.org`. `mail.greenhouse` becomes `mail.greenhouse.nncpnet.org`. You might then send email to `pat@grumpy.nncpnet.org` or `sam@mail.greenhouse.nncpnet.org`.
These look like Internet addresses, but they are not valid on the Internet. (Unless, that is, the Internet gateway materializes in the future and you opt in to it; but for now, they are not valid on the Internet.) `nncpnet.org` has been registered and parked to ensure there will never be a conflict with it.
When your NNCPNET node sees an email address in the form of `user@something.nncpnet.org`, it knows how to find the NNCP node called `something` and route the mail to it.
# The role of quux
NNCP can be used for more than just email. There is a public relay called [quux](https://www.complete.org/quux-org-nncp-public-relay/) that people can join. NNCP can route messages directly from machine A to machine C, but if A and C can't talk to each other directly, they can talk via B. B is quux. quux knows about all the nodes in the public network, and can interact with them. By default, nncpnet-mailnode will send everything via quux. (If you have a more direct route to something, you can certainly add that later, but that is a more advanced optimization.)
# The nodelist
But how does your node know about nodes like `grumpy` or `mail.greenhouse`?