• Async & offline NNCP/UUCP projects, plus org-roam-based website

    From John Goerzen@jgoerzen@complete.org to tilde.projects on Tue Jun 14 18:12:04 2022
    Hi folks,

    So I was interested in the UUCP project that had been going on in the tildeverse, but I've really been more active in NNCP, writing some code with it and such.

    NNCP is to UUCP what ssh is to telnet: an update for a modern world with modern crypto and security. I've written a lot about it here:

    https://www.complete.org/nncp/

    NNCP provides two layers of stuff:

    1) A transport layer. This includes resumable tranfers over the network, peer autodiscovery on a LAN, etc. But also: streaming tar-like transfer and filesystem transfer, so your medium can be USB drives, Dropbox, S3, etc.

    2) The packet layer. You can send or request files, or request the remote execution of stuff.

    NNCP is a very Unixy program, supporting things piping in and such.

    So I've written https://www.complete.org/gitsync-nncp/ with syncs Git repos atop
    NNCP (or really could be over anything that you can pipe stuff into and out of).

    I have been doing backups over NNCP for some time now, and it handles everything
    from 100 byte to 500GB backup sets for me.

    One thing NNCP doesn't do is promise that it will execute requests in order, because things can be relayed via various hops and methods. So I wrote Filespooler, which is a Unixy async execution tool, that can run atop NNCP, but also Syncthing, Dropbox, etc:

    https://www.complete.org/filespooler/

    Filespooler lets you pop requests onto anything from a USB stick to a synced folder or an NNCP request, including piping in of arbitrarily-large payloads, and (by default) will force them to be executed in order. Perfect for incremental backups.

    I mentioned Syncthing. It's a folder sync tool sort of like Dropbox, but entirely peer-to-peer. It is also distributed with greedy eventual consistency,
    so you can, for instance, use your phone as a carrier between your home (with Internet) and a shed (without). Your Pi at the shed will sync with the Syncthing on your phone when it's there, and your phone will sync with your home/other devices when it's got Internet access. Since NNCP and Filespooler can both run atop Syncthing, this makes a pretty easy way to set up an asynchronous mesh.

    I also rebuilt my website using the fantastic org-roam, so it is literally compiled by Emacs. https://www.complete.org/how-this-site-is-built/

    John
    --- Synchronet 3.19a-Linux NewsLink 1.113