@node nncp-ack @cindex packet acknowledgement @pindex nncp-ack @section nncp-ack @example $ nncp-ack [options] -all $ nncp-ack [options] -node NODE[,@dots{}] $ nncp-ack [options] -node NODE -pkt PKT $ nncp-ack [@dots{}] 4>&1 >&2 | nncp-rm [@dots{}] -pkt @end example Send acknowledgement of successful @option{PKT} (Base32-encoded hash) packet receipt from @option{NODE} node. If no @option{-pkt} is specified, then acknowledge all packet in node's @code{rx} spool. If @option{-all} is specified, then do that for all nodes. That commands outputs list of created encrypted ACK packets (@code{NODE/PKT}) to @strong{4}th file descriptor. That output can be passed for example to @command{@ref{nncp-rm}} to remove them after transmission to not wait for acknowledgement and retransmission. General workflow with acknowledgement is following, assuming that Alice has some outbound packets for Bob: @itemize @item Transfer encrypted packets, without deleting them locally: @example alice$ nncp-xfer -keep -tx -node bob /mnt/shared @end example @item On Bob's side retrieve those packets: @example bob$ nncp-xfer -rx /mnt/shared @end example That will also check if copied packets checksum is not mismatched. @item Create ACK packets of received ones, saving the list of encrypted ACK packets: @example bob$ nncp-ack -node alice 4>acks @end example @item Send those newly created packets back to Alice: @example bob$ nncp-xfer [-keep] -tx /mnt/shared @end example @item Remove them from outbound spool, because we expect no acknowledgement for them: @example bob$ nncp-rm -node alice -pkt