public inbox for nncp-devel@lists.cypherpunks.ru
Atom feed
* [EN] NNCP 5.5.0 release announcement
@ 2021-01-07 15:31 Sergey Matveev
  2021-01-07 21:23 ` John Goerzen
  0 siblings, 1 reply; 9+ messages in thread
From: Sergey Matveev @ 2021-01-07 15:31 UTC (permalink / raw)
  To: nncp-devel

[-- Attachment #1: Type: text/plain, Size: 2325 bytes --]

I am pleased to announce NNCP 5.5.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.

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:

* Bugfixes in "nncp-call(er)"/"nncp-daemon", "nncp-bundle" and
  "nncp-stat".

* "nncp-rm" has "-dryrun" and "-older" options now.

* "nncp-exec" has "-use-tmp" and "-nocompress" options now.
  Uncompressed packets are not compatible with previous NNCP
  versions.

* "nncp-call", "nncp-caller" and "nncp-daemon" commands have
  "-autotoss*" options for running tosser after call is ended.

* Updated dependencies.

* Administration notes section appeared in documentation:
  http://www.nncpgo.org/Administration.html

------------------------ >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-5.5.0.tar.xz (1161 KiB)
    http://www.nncpgo.org/download/nncp-5.5.0.tar.xz.sig

SHA256 hash: EF0CBEE1 520BE97D A210794C 172BF444 E6F75DB2 84F5BD05 66919193 326AED77
GPG key ID: 0x2B25868E75A1A953 NNCP releases <releases@nncpgo•org>
Fingerprint: 92C2 F0AE FE73 208E 46BF  F3DE 2B25 868E 75A1 A953

Please send questions regarding the use of NNCP, bug reports and patches
to mailing list: https://lists.cypherpunks.ru/pipermail/nncp-devel/

-- 
Sergey Matveev (http://www.stargrave.org/)
OpenPGP: CF60 E89A 5923 1E76 E263  6422 AE1A 8109 E498 57EF

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [EN] NNCP 5.5.0 release announcement
  2021-01-07 15:31 [EN] NNCP 5.5.0 release announcement Sergey Matveev
@ 2021-01-07 21:23 ` John Goerzen
  2021-01-07 21:32   ` New -autotoss option John Goerzen
  2021-01-08  9:45   ` [EN] NNCP 5.5.0 release announcement Sergey Matveev
  0 siblings, 2 replies; 9+ messages in thread
From: John Goerzen @ 2021-01-07 21:23 UTC (permalink / raw)
  To: Sergey Matveev; +Cc: nncp-devel

Hi,

I have a build error with this version:

contrib/do install
do  install
do    bin/all
do      bin/nncp-bundle
do        gopath
# golang.org/x/term
golang.org/x/term/term_unix_linux.go:9:7: ioctlReadTermios 
redeclared in this block
	previous declaration at 
	golang.org/x/term/term_unix_aix.go:9:26
golang.org/x/term/term_unix_linux.go:10:7: ioctlWriteTermios 
redeclared in this block
	previous declaration at 
	golang.org/x/term/term_unix_aix.go:10:27
do:     nncp-bundle: got exit code 2

I initially tried just removing lines 9 and 10 from 
term_unix_linux.go, but then it complained about an unused import. 
Removing that plus the

import "golang.org/x/sys/unix"

line lets the build proceed.

- John


On Thu, Jan 07 2021, Sergey Matveev wrote:

> I am pleased to announce NNCP 5.5.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.
>
> 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:
>
> * Bugfixes in "nncp-call(er)"/"nncp-daemon", "nncp-bundle" and
>   "nncp-stat".
>
> * "nncp-rm" has "-dryrun" and "-older" options now.
>
> * "nncp-exec" has "-use-tmp" and "-nocompress" options now.
>   Uncompressed packets are not compatible with previous NNCP
>   versions.
>
> * "nncp-call", "nncp-caller" and "nncp-daemon" commands have
>   "-autotoss*" options for running tosser after call is ended.
>
> * Updated dependencies.
>
> * Administration notes section appeared in documentation:
>   http://www.nncpgo.org/Administration.html
>
> ------------------------ >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-5.5.0.tar.xz (1161 KiB)
>     http://www.nncpgo.org/download/nncp-5.5.0.tar.xz.sig
>
> SHA256 hash: EF0CBEE1 520BE97D A210794C 172BF444 E6F75DB2 
> 84F5BD05 66919193 326AED77
> GPG key ID: 0x2B25868E75A1A953 NNCP releases 
> <releases@nncpgo•org>
> Fingerprint: 92C2 F0AE FE73 208E 46BF  F3DE 2B25 868E 75A1 A953
>
> Please send questions regarding the use of NNCP, bug reports and 
> patches
> to mailing list: 
> https://lists.cypherpunks.ru/pipermail/nncp-devel/

^ permalink raw reply	[flat|nested] 9+ messages in thread

* New -autotoss option
  2021-01-07 21:23 ` John Goerzen
@ 2021-01-07 21:32   ` John Goerzen
  2021-01-08 10:00     ` Sergey Matveev
  2021-01-08  9:45   ` [EN] NNCP 5.5.0 release announcement Sergey Matveev
  1 sibling, 1 reply; 9+ messages in thread
From: John Goerzen @ 2021-01-07 21:32 UTC (permalink / raw)
  To: nncp-devel

Hi Sergey,

Thanks again for the new version.  I've been experimenting with 
-autotoss.

At first it didn't seem to do anything in nncp-caller, but after 
killing the remote nncp-daemon, it went on to do the toss.

I think that waiting for the remote end to hang up might delay 
things; I have a very large onlinedeadline and timeout.  I think 
pseudo code like this might do the trick:

loop forever
   needstoss = false
   if remote.has_packets_for_us()
       needstoss = true
       process_packets
   when ! remote.has_packets_for_us()
       if needstoss
           toss
           needstoss = false

In other words, every time we transition in state from "remote 
host has packets for us" to "remote host no longer has packets for 
us", we toss.  This could also be very nice even for 10-second 
onlinedeadlines, because it might allow a toss and response to be 
sent even within that window regularly.

What do you think?

- John

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [EN] NNCP 5.5.0 release announcement
  2021-01-07 21:23 ` John Goerzen
  2021-01-07 21:32   ` New -autotoss option John Goerzen
@ 2021-01-08  9:45   ` Sergey Matveev
  2021-01-08 13:43     ` John Goerzen
  1 sibling, 1 reply; 9+ messages in thread
From: Sergey Matveev @ 2021-01-08  9:45 UTC (permalink / raw)
  To: nncp-devel

[-- Attachment #1: Type: text/plain, Size: 1338 bytes --]

Greetings!

*** John Goerzen [2021-01-07 15:23]:
>	previous declaration at 	golang.org/x/term/term_unix_aix.go:9:26

It looks like your Go thinks he is both AIX and Linux. I have copied
golang.org/x/term without any modifications from the upstream. I assume
that you probably have old Go version what does not know anything about
AIX and does not treat "_aix" as a build-tag. As I can see, firstly it
appeared https://github.com/golang/go/commit/bf8e6b70276ddfd3e070964542020fe782c1eec8
at 2018 year.

Currently (in develop branch) NNCP uses golang.org/x/term instead of
golang.org/x/crypto/ssh/terminal, that anyway depends on golang.org/x/term.
So that "term" dependency anyway is there and upstream has knowledge
about AIX. I suggest you to update your Go, that will also bring
performance benefits as a rule. Or just: find . -name \*_aix.go -delete

I have tried Go 1.10 -- the same problem as you have.
I have tried Go 1.11 -- same problem.
I have tried Go 1.12 -- build/test is ok.

So I will update documentation and raise Go's 1.10+ version to 1.12.

I have found some Ubuntu virtual machine image and tested building on
it with the golang-go taken from repository (go1.13.8) -- builds fine.

-- 
Sergey Matveev (http://www.stargrave.org/)
OpenPGP: CF60 E89A 5923 1E76 E263  6422 AE1A 8109 E498 57EF

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: New -autotoss option
  2021-01-07 21:32   ` New -autotoss option John Goerzen
@ 2021-01-08 10:00     ` Sergey Matveev
  2021-01-08 10:01       ` Sergey Matveev
  0 siblings, 1 reply; 9+ messages in thread
From: Sergey Matveev @ 2021-01-08 10:00 UTC (permalink / raw)
  To: nncp-devel

[-- Attachment #1: Type: text/plain, Size: 1066 bytes --]

Greetings!

*** John Goerzen [2021-01-07 15:32]:
>In other words, every time we transition in state from "remote host has
>packets for us" to "remote host no longer has packets for us", we toss.

There is no such kind of states inside, that is why there is just
timeout mechanism based on onlinedeadlines. So there will be always
race: toss may be started, but actually remote side's packet was already
on the wire. Toss will burden the drives, possibly making data transfer
slower.

However the same applies to nncp-toss running in background. I think
that will be relatively easy to run tosser when connection is alive
either after some timeouts after the last packet were received, or just
every second (that has little overhead). I think it will be useful for
not keeping nncp-toss running if no connections are made at all.

So I will add it ((optional) tossing while the connection is online),
but probably not on current week.

-- 
Sergey Matveev (http://www.stargrave.org/)
OpenPGP: CF60 E89A 5923 1E76 E263  6422 AE1A 8109 E498 57EF

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: New -autotoss option
  2021-01-08 10:00     ` Sergey Matveev
@ 2021-01-08 10:01       ` Sergey Matveev
  2021-01-08 13:38         ` John Goerzen
  0 siblings, 1 reply; 9+ messages in thread
From: Sergey Matveev @ 2021-01-08 10:01 UTC (permalink / raw)
  To: nncp-devel

[-- Attachment #1: Type: text/plain, Size: 366 bytes --]

*** Sergey Matveev [2021-01-08 13:00]:
>So I will add it ((optional) tossing while the connection is online),
>but probably not on current week.

Also I think there should be added autotoss option per call in
configuration file. Some kind of that.

-- 
Sergey Matveev (http://www.stargrave.org/)
OpenPGP: CF60 E89A 5923 1E76 E263  6422 AE1A 8109 E498 57EF

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: New -autotoss option
  2021-01-08 10:01       ` Sergey Matveev
@ 2021-01-08 13:38         ` John Goerzen
  0 siblings, 0 replies; 9+ messages in thread
From: John Goerzen @ 2021-01-08 13:38 UTC (permalink / raw)
  To: Sergey Matveev; +Cc: nncp-devel


On Fri, Jan 08 2021, Sergey Matveev wrote:

> *** Sergey Matveev [2021-01-08 13:00]:
>>So I will add it ((optional) tossing while the connection is 
>>online),
>>but probably not on current week.
>
> Also I think there should be added autotoss option per call in
> configuration file. Some kind of that.

Yes, thanks, that's a nice idea!

- John

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [EN] NNCP 5.5.0 release announcement
  2021-01-08  9:45   ` [EN] NNCP 5.5.0 release announcement Sergey Matveev
@ 2021-01-08 13:43     ` John Goerzen
  2021-01-08 13:53       ` Sergey Matveev
  0 siblings, 1 reply; 9+ messages in thread
From: John Goerzen @ 2021-01-08 13:43 UTC (permalink / raw)
  To: Sergey Matveev; +Cc: nncp-devel

On Fri, Jan 08 2021, Sergey Matveev wrote:

> *** John Goerzen [2021-01-07 15:23]:
>>	previous declaration at 
>>golang.org/x/term/term_unix_aix.go:9:26
>
> It looks like your Go thinks he is both AIX and Linux. I have 
> copied
> golang.org/x/term without any modifications from the upstream. I 
> assume
> that you probably have old Go version what does not know 
> anything about

Yes, Debian stable and Raspbian both ship with 1.11.

> Currently (in develop branch) NNCP uses golang.org/x/term 
> instead of
> golang.org/x/crypto/ssh/terminal, that anyway depends on 
> golang.org/x/term.
> So that "term" dependency anyway is there and upstream has 
> knowledge
> about AIX. I suggest you to update your Go, that will also bring
> performance benefits as a rule. Or just: find . -name \*_aix.go 
> -delete

That's a good enough workaround, yes.

> I have tried Go 1.10 -- the same problem as you have.
> I have tried Go 1.11 -- same problem.
> I have tried Go 1.12 -- build/test is ok.
>
> So I will update documentation and raise Go's 1.10+ version to 
> 1.12.

Understandable, but a bummer; it raises barrier to entry, 
especially on Raspberry Pi.  On Debian, there is 1.14 in 
buster-backports.  Raspberry Pi OS / Raspbian doesn't have 
backports, though in practice the Debian buster-backports work 
there at times.  It may be a bit dicey with something like this in 
the toolchain, though, because part of why Rasbian exists is 
optimizations for its particular architecture that the more 
general Debian distro doesn't do.

Previously, one could just apt-get install golang && PREFIX=blah 
./contrib/do install

Anyhow, thanks again!

- John

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [EN] NNCP 5.5.0 release announcement
  2021-01-08 13:43     ` John Goerzen
@ 2021-01-08 13:53       ` Sergey Matveev
  0 siblings, 0 replies; 9+ messages in thread
From: Sergey Matveev @ 2021-01-08 13:53 UTC (permalink / raw)
  To: nncp-devel

[-- Attachment #1: Type: text/plain, Size: 731 bytes --]

*** John Goerzen [2021-01-08 07:43]:
>Understandable, but a bummer; it raises barrier to entry

Understand that, but anyway earlier or sooner I will upgrade
dependencies, that are also depend on that updated golang.org/x
libraries with AIX "knowledge" and who knows what other kind of
incompatibilities more.

Actually Go is pretty easy to build. Either you have Go 1.4, or you have
more modern installation and any future version can be built for example
by "cd go/src ; ./all.bash". Also, comparing to something like GCC/LLVM
(which take many hours on my laptop to build), it takes only several
minutes.

-- 
Sergey Matveev (http://www.stargrave.org/)
OpenPGP: CF60 E89A 5923 1E76 E263  6422 AE1A 8109 E498 57EF

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-01-08 13:53 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-07 15:31 [EN] NNCP 5.5.0 release announcement Sergey Matveev
2021-01-07 21:23 ` John Goerzen
2021-01-07 21:32   ` New -autotoss option John Goerzen
2021-01-08 10:00     ` Sergey Matveev
2021-01-08 10:01       ` Sergey Matveev
2021-01-08 13:38         ` John Goerzen
2021-01-08  9:45   ` [EN] NNCP 5.5.0 release announcement Sergey Matveev
2021-01-08 13:43     ` John Goerzen
2021-01-08 13:53       ` Sergey Matveev