#nncp — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #nncp, aggregated by home.social.
-
Convince your friends to host their own email server a home and do help them set it up…
Then set up NNCP routes to and from their email server to your own self-hosted email server(s) and any of your mutual friend's self-hosted email servers
-
@orsinium I know, they stole email from us claiming to combat spam and somehow there is still spam
==Email==
Maybe I only need to receive email over SMTP.
Otherwise email transfer using NNCP with known-trusted-hosts of friends and family?
Perhaps #FOAF even?
Perhaps as part of NNCPNET?
Maybe (text-only) #USENET also via NNCP?
Edit: bc I just found #NNCP and #NNCPNET and think this could be a solution
==Webdev==
I can use #RubyOnRails as needed ¯\_(ツ)_/¯
-
@spacehobo This sent me down a rabbit hole and now I'm all jazzed up about #NNCP.
-
@karen With #NNCP, we break the tyranny of online with delay-tolerant networking. https://www.complete.org/nncp/ The new #NNCPNET is an email network running atop it -- with bridges to the public Internet. https://salsa.debian.org/jgoerzen/docker-nncpnet-mailnode/-/wikis/home
2/
-
@ireneista Oh interesting! I'd enjoy hearing some about your project.
These days I am mostly working with its successor #NNCP but UUCP still is fun to work with also. Especially over slow radios like #LoRa.
-
I have a new blog post: "I'm not very popular, thankfully. That makes the Internet fun again."
I muse that not having to care about subscriber counts lets me write about the things that interest me, from non-square DOS VGA text mode pixels in Linux to #NNCP and such. I couldn't do that if I cared about advertisers and subscriber counts and so forth.
-
@kelbot I'll also call out #UUCP. It was one of the last 2 large-scale asynchronous communication methods we had (the last being email, which still survives in that form). Could talk over anything. #NNCP is a worthy successor and, while it doesn't do modems, it does do #encryption and USB drives.
-
@usul @lwn I like to say "#NNCP is to #UUCP as #ssh is to telnet". That is, NNCP adds modern encryption and a lot more flexibility, while dropping UUCP's modem focus.
If you really do need to use modems, NNCP is more flexible than UUCP in how you get data in and out of it, and it is certainly possible to transport NNCP using UUCP. (Vice-versa is more difficult because UUCP has no API for this)
1/
-
This is a great article by #LWN @lwn about #NNCPNET, which uses #NNCP to form an email network that lets you run real mail servers (even with an Internet bridge) as easily as it used to be! https://lwn.net/SubscriberLink/1031208/2335d9c8b8eb28c5/
-
NNCPNET email: Atavistic project to bring back old style UUCP email but with modern protocols and tools
https://changelog.complete.org/archives/10768-announcing-the-nncpnet-email-network
#networking #internet #history #email #uucp #nncp #+ -
My new blog post, Memoirs of the Early #Internet, unearths a few relics of the early Internet and #UUCP days from some obscure sites.
https://changelog.complete.org/archives/10792-memoirs-of-the-early-internet
Researching cool things a person can do with #asynchronous #email over #NNCP (#NNCPNET) led me down that path. So while you're there, you can also check out the post about the NNCPNET Internet email gateway. https://changelog.complete.org/archives/10783-nncpnet-can-optionally-exchange-internet-email
-
NNCPNET Can Optionally Exchange Internet Email
A few days ago, I announced NNCPNET, the email network based atop NNCP. NNCPNET lets anyone run a real mail server on a network that supports all sorts of topologies for transport, from Internet to USB drives. And verification is done at the NNCP protocol level, so a whole host of Internet email bolt-ons (SPF, DMARC, DKIM, etc.) are unnecessary.
Shortly after announcing NNCPNET, I added an Internet bridge. This lets you get your own DOMAIN.nncpnet.org domain, and from there route email to and from the Internet using a gateway node. Simple, effective, and a way to get real email to and from your laptop or Raspberry Pi without having to have a static IP, SPF, DMARC, DKIM, etc.
It’s a volunteer-run, free, service. Give it a try!
-
All right so I kind of have the basics of what #nncp is now let's see if I can figure out how to set up an email server that runs over that I think the downside of it though is in order to send emails to other people add I would have to add them to the node list I think
-
My blog post on #NNCPNET, the #email network atop #NNCP : https://changelog.complete.org/archives/10768-announcing-the-nncpnet-email-network
-
Announcing the NNCPNET Email Network
From 1995 to 2019, I ran my own mail server. It began with a UUCP link, an expensive long-distance call for me then. Later, I ran a mail server in my apartment, then ran it as a VPS at various places.
But running an email server got difficult. You can’t just run it on a residential IP. Now there’s SPF, DKIM, DMARC, and TLS to worry about. I recently reviewed mail hosting services, and don’t get me wrong: I still use one, and probably will, because things like email from my bank are critical.
But we’ve lost the ability to tinker, to experiment, to have fun with email.
Not anymore. NNCPNET is an email system that runs atop NNCP. I’ve written a lot about NNCP, including a less-ambitious article about point-to-point email over NNCP 5 years ago. NNCP is to UUCP what ssh is to telnet: a modernization, with modern security and features. NNCP is an asynchronous, onion-routed, store-and-forward network. It can use as a transport anything from the Internet to a USB stick.
NNCPNET is a set of standards, scripts, and tools to facilitate a broader email network using NNCP as the transport. You can read more about NNCPNET on its wiki!
The “easy mode” is to use the Docker container (multi-arch, so you can use it on your Raspberry Pi) I provide, which bundles:
- Exim mail server
- NNCP
- Verification and routing tools I wrote. Because NNCP packets are encrypted and signed, we get sender verification “for free”; my tools ensure the From: header corresponds with the sending node.
- Automated nodelist tools; it will request daily nodelist updates and update its configurations accordingly, so new members can be communicated with
- Integration with the optional, opt-in Internet email bridge
It is open to all. The homepage has a more extensive list of features.
I even have mailing lists running on NNCPNET; see the interesting addresses page for more details.
There is extensive documentation, and of course the source to the whole thing is available.
The gateway to Internet SMTP mail is off by default, but can easily be enabled for any node. It is a full participant, in both directions, with SPF, DKIM, DMARC, and TLS.
You don’t need any inbound ports for any of this. You don’t need an always-on Internet connection. You don’t even need an Internet connection at all. You can run it from your laptop and still use Thunderbird to talk to it via its optional built-in IMAP server.
-
@jeremiah_ @elb #NNCPNET, the new #NNCP-based email network, now has a bidirectional, opt-in, Internet #email bridge! https://salsa.debian.org/jgoerzen/docker-nncpnet-mailnode/-/wikis/bridge/intro
This gates Internet email to/from NNCP. The bridge is off by default. It is a full participant in #SPF, #DKIM, #DMARC, and #TLS in both directions.
Yes, now you can get Internet email straight to your #RaspberryPi ! (And even without this, your Pis can email each other!)
-
@elb I'm now ready to announce #NNCPNET, the #NNCP-based email network. https://salsa.debian.org/jgoerzen/docker-nncpnet-mailnode/-/wikis/home
It is open to all. It can route email across the Internet or USB stick. You can run a full, real mail server without a public IP, port forwarding, or even Internet access. It's a friend-of-a-friend network; mail delivery is automatic, but adding people is done by humans.
It uses all the tools that you're used to with Internet email, but is the opposite of it. Enjoy!
-
I am thinking the time is right to implement a #NNCP-based email network.
Anyone interested?
-
@codemonkeymike I've even found people interested in my obscure asynchronous communication interests like #NNCP and #UUCP. Twitter was never great for less popular things and got worse over time as it tried to boost the popular.
#Mastodon is the closest thing I've seen to a 90s #BBS, and this is a compliment.
You can also follow hashtags here, so any post by any person that is followed by anybody on your instance with that hashtag will show up in your feed. 2/
-
@minoru Thanks for sharing that info!
It's practical because Syncthing's very nice distributed nature lets it be an underlying communications layer for a lot of other things. For instance, I talk about using #Filespooler over #Syncthing here: https://www.complete.org/using-filespooler-over-syncthing/ , and #NNCP over Syncthing here: https://changelog.complete.org/archives/10219-a-simple-delay-tolerant-offline-capable-mesh-network-with-syncthing-optional-nncp
That you can have a "roaming" device (eg, a phone) nicely sync between two locations that otherwise don't have connectivity to each other is pretty slick.
-
@alienghic @schlink Yes! This is a perfect use case for #NNCP. As @craigmaloney mentioned, #Syncthing can also do the job; if you name your files according to a set pattern, you can just add them to a directory on the sending side, and mv/rm them out of there on the receiving side when processed.
My #Filespooler tool https://www.complete.org/filespooler/ can provide some more queue-processing tools, esp. if you need the queue to be processed in order. It can run atop NNCP, Syncthing, or others.
-
I wrote "Building an #Asynchronous, Internet-Optional Instant Messaging System" today. It suggests using #DeltaChat (@delta) across an #email system that can run on non-IP networks to achieve #IM coverage without having to have an Internet backbone, using things like #NNCP, #Syncthing, #Filespooler, and such. I love the ways we can combine interesting tools like this!
-
@stevelord @kas Incidentally, a second alternative along those lines would be to use #gensio to provide a reliable connection over an unreliable medium, and then use #nncp's nncp-daemon/nncp-call atop gensio.
I have thought about all this when I've considered running over #LoRA or #XBee SX links. In particular, in xbnet, I documented some #UUCP settings: https://github.com/jgoerzen/xbnet/blob/master/doc/xbnet.1.md#uucp
I haven't directly tried the NNCP-over-UUCP scenario, but I do think it should be fairly straightforward.
-
3/
Introducing Fast, Ordered Unixy #Queues over #NNCP and #Syncthing with #Filespooler: https://floss.social/@jgoerzen/108387639329271399
"#Modem World" and modern communities that span interests: https://floss.social/@jgoerzen/108546787833118936
Why do I feel drawn to work from my #DEC #vt510 #terminal? Does it have advantages over my 27" LCD GUI? https://floss.social/@jgoerzen/108898543787831520
Growing up through the #PC and #Internet revolution in #rural America: https://floss.social/@jgoerzen/108909211718813036
-
2/
How to tunnel NNCP over: #S3 #Nextcloud #Owncloud #WebDAV #ssh #tor #LoRA #Xbee #SFTP and #UUCP - https://floss.social/@jgoerzen/106786433628981477
My 12-yr-old decides to write an operating system and learn C. https://floss.social/@jgoerzen/106871449955753762
I offer #Usenet feeds over #NNCP. https://floss.social/@jgoerzen/106891544884588818
#Yggdrasil, the end-to-end encrypted #Mesh network that needs zero infra. https://floss.social/@jgoerzen/107584885919420001
Tools that work #Offline with #NoInternet. https://floss.social/@jgoerzen/107884945439834995
-
@gwil Welcome, gwil! Glad to see you here. It looks like your interests intersect mine quite a bit; I've been interested in #NNCP and #Syncthing as decentralized, offline-first or offline-capable systems, and recently wrote #Filespooler in that space.
I hadn't heard of #Earthstar. After reading the website, it sounds kind of like Syncthing, but with a more-public way of joining a share? (Sharing a link without having the approve the request) I'd be interested in other comparisons.
-
It seems that lately I’ve written several shell implementations of a simple queue that enforces ordered execution of jobs that may arrive out of order. After writing this for the nth time in bash, I decided it was time to do it properly. But first, a word on the why of it all.
Why did I bother?My needs arose primarily from handling Backups over Asynchronous Communication methods – in this case, NNCP. When backups contain incrementals that are unpacked on the destination, they must be applied in the correct order.
In some cases, like ZFS, the receiving side will detect an out-of-order backup file and exit with an error. In those cases, processing in random order is acceptable but can be slow if, say, hundreds or thousands of hourly backups have stacked up over a period of time. The same goes for using gitsync-nncp to synchronize git repositories. In both cases, a best effort based on creation date is sufficient to produce a significant performance improvement.
With other cases, such as tar or dar backups, the receiving cannot detect out of order incrementals. In those situations, the incrementals absolutely must be applied with strict ordering. There are many other situations that arise with these needs also. Filespooler is the answer to these.
Existing WorkBefore writing my own program, I of course looked at what was out there already. I looked at celeary, gearman, nq, rq, cctools work queue, ts/tsp (task spooler), filequeue, dramatiq, GNU parallel, and so forth.
Unfortunately, none of these met my needs at all. They all tended to have properties like:
- An extremely complicated client/server system that was incompatible with piping data over existing asynchronous tools
- A large bias to processing of small web requests, resulting in terrible inefficiency or outright incompatibility with jobs in the TB range
- An inability to enforce strict ordering of jobs, especially if they arrive in a different order from how they were queued
Many also lacked some nice-to-haves that I implemented for Filespooler:
- Support for the encryption and cryptographic authentication of jobs, including metadata
- First-class support for arbitrary compressors
- Ability to use both stream transports (pipes) and filesystem-like transports (eg, rclone mount, S3, Syncthing, or Dropbox)
Filespooler is a tool in the Unix tradition: that is, do one thing well, and integrate nicely with other tools using the fundamental Unix building blocks of files and pipes. Filespooler itself doesn’t provide transport for jobs, but instead is designed to cooperate extremely easily with transports that can be written to as a filesystem or piped to – which is to say, almost anything of interest.
Filespooler is written in Rust and has an extensive Filespooler Reference as well as many tutorials on its homepage. To give you a few examples, here are some links:
- Using Filespooler over Syncthing (and the most comprehensive tutorial)
- Using Filespooler over NNCP
- Compressing Filespooler Jobs
- Encrypting Filespooler Jobs with GPG or Age
- Guidelines for Writing To Filespooler Queues Without Using Filespooler
Filespooler is intentionally simple:
- The sender maintains a sequence file that includes a number for the next job packet to be created.
- The receiver also maintains a sequence file that includes a number for the next job to be processed.
fspl preparecreates a Filespooler job packet and emits it to stdout. It includes a small header (
-
@stibbons I actually use #NNCP quite a bit (and used #UUCP back in the day also). Unlike UUCP, NNCP assumes a clean connection - a reasonable assumption for most these days. Actually one of my use cases for this would be running NNCP over this kind of link. The NNCP author's canonical suggestion for NNCP over serial is to use TCP over PPP. That works fine to provide reliability, but has too much overhead for these very slow #XBee modems. https://changelog.complete.org/archives/tag/nncp
-
9/ Recovering free will online
Let's look at the tech. For data link and networking, of course there are #LoRA, and #XBee. #meshtastic is atop #LoRA. #Briar can form a #Bluetooth mesh. #NNCP is a powerful delay-tolerant network. #cjdns and #Hyperboria form mesh networks, optionally using the existing Internet as a backhaul; their goal is nothing less than replacing the Internet. #Tor of course provides some of this too, at a different layer.