Subject: Re: [EN] NNCP 8.2.0 release announcement

From: John Goerzen <[email-masked]>
Date: Thu, 20 Jan 2022 15:45:46 -0600

Hi Sergey!

This is very cool!  I'll be working to try this out as soon as I can.

One concern I have right now is about the new dependency on gvisor.  Of
course you're not using it as the environment it was built for, but
nonetheless it is a pretty huge piece of software with quite a few
dependencies.  And according to the FAQ [1] , it is only supported on
Linux on x86_64 (with "preliminary" support for arm64).

To try it out, I thought I'd build NNCP 8.2.0 on my Raspberry Pi: Linux,
but 32-bit.  Didn't work:

PREFIX=/usr/local/nncp contrib/do all
do: Incremental mode. Use -c for clean rebuild.
do  all
do    bin/all
do      bin/hjson-cli
do      bin/nncp-bundle
# gvisor.dev/gvisor/pkg/tcpip/transport/tcp
vendor/gvisor.dev/gvisor/pkg/tcpip/transport/tcp/snd.go:326:16: constant 9223372036854775807 overflows int

That doesn't bode well..  It wouldn't surprise me at all if there are
other issues that would keep it from working on 32-bit platforms, or
non-Linux ones.

I don't know if there are other TCP implementations for Go that are
usable.

I'm sorry for asking for something that went in this direction - I
didn't quite realize what I was asking for, I guess. I'd much rather
have a uTP/TCP mismatch than sacrifice platform support in NNCP for
sure.  I use ARM32 quite a bit around here, and actively with NNCP.

I do have NNCP 8.2.0 compiling on NetBSD, but whether it will work
correctly, or keep working over time given the gvisor FAQ, is another
question I guess (I don't have the environment to try that part yet).

[1] https://gvisor.dev/docs/user_guide/faq/

John

On Thu, Jan 20 2022, Sergey Matveev wrote:

> I am pleased to announce NNCP 8.2.0 release availability!
>
> NNCP (Node to Node copy) is a collection of utilities simplifying
> secure store-and-forward files and mail exchanging.
>
> This utilities are intended to help build up small size (dozens of
> nodes) ad-hoc friend-to-friend (F2F) statically routed darknet
> delay-tolerant networks for fire-and-forget secure reliable files, file
> requests, Internet mail and commands transmission. All packets are
> integrity checked, end-to-end encrypted (E2EE), explicitly authenticated
> by known participants public keys. Onion encryption is applied to
> relayed packets. Each node acts both as a client and server, can use
> push and poll behaviour model. Also there is multicasting areas support.
>
> Out-of-box offline sneakernet/floppynet, dead drops, sequential and
> append-only CD-ROM/tape storages, air-gapped computers support. But
> online TCP daemon with full-duplex resumable data transmission exists.
>
> ------------------------ >8 ------------------------
>
> The main improvements for that release are:
>
> * Yggdrasil uses pure-Go IPv6+TCP network stack, instead of naked μTP
>   transport protocol, making it able to work as an ordinary TCP
>   server inside overlay network.
>
> * Yggdrasil’s "prv;bind1,bind2;pub..."-like configuration strings are
>   replaced with URL-like ones
>   ("yggdrasils://PRV?bind=BIND1&bind=BIND2&pub=PUB").
>
> * Ability to pass multicast-related parameters to Yggdrasil
>   configuration.
>
> * "nncp-daemon" is able to listen on both TCP and Yggdrasil-driven
>   sockets simultaneously.
>
> * "nncp-daemon"’s listening on peering endpoint socket is optional –
>   you can be reached through the peers.
>
> ------------------------ >8 ------------------------
>
> NNCP's home page is: http://www.nncpgo.org/
>
> Source code and its signature for that version can be found here:
>
>     http://www.nncpgo.org/download/nncp-8.2.0.tar.xz (1669 KiB)
>     http://www.nncpgo.org/download/nncp-8.2.0.tar.xz.sig
>
> SHA256 hash: 59B0D6E2 48D30289 29395B63 5D4E0CF1 14BC4DE0 F4F9F105 2E049284 980EEADD
> GPG key ID: 0x2B25868E75A1A953 NNCP releases <[email-masked]>
> Fingerprint: 92C2 F0AE FE73 208E 46BF  F3DE 2B25 868E 75A1 A953
>
> There are mirrors where you can also get the source code tarballs:
> http://www.nncpgo.org/Mirrors.html
>
> Please send questions regarding the use of NNCP, bug reports and patches
> to mailing list: http://lists.cypherpunks.ru/nncp_002ddevel.html