<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Echomix Documentation on EchoMix</title><link>https://echomix.org/docs/</link><description>Recent content in Echomix Documentation on EchoMix</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 18 May 2026 09:33:21 -0700</lastBuildDate><atom:link href="https://echomix.org/docs/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://echomix.org/docs/clients/client-user-guide.html</link><pubDate>Mon, 18 May 2026 09:33:21 -0700</pubDate><guid>https://echomix.org/docs/clients/client-user-guide.html</guid><description>&lt;!DOCTYPE HTML&gt;
&lt;html xmlns:ng="http://docbook.org/docbook-ng"&gt;
 &lt;head&gt;
 &lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;
 &lt;title&gt;KatzenQT chat client guide [Pre-release]&lt;/title&gt;
 &lt;meta name="generator" content="DocBook XSL Stylesheets V1.79.2"&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;div class="section"&gt;
 &lt;div class="titlepage"&gt;
 &lt;div&gt;
 &lt;div&gt;
 &lt;h2 class="title" style="clear: both"&gt;&lt;a name="client_guide"&gt;&lt;/a&gt;KatzenQT chat client guide [Pre-release]&lt;/h2&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;hr&gt;
 &lt;/div&gt;
 &lt;p&gt;This guide introduces the KatzenQT chat client. With KatzenQT you can securely
 share one-to-one and group messages with other KatzenQT users. KatzenQT relies on
 Katzenpost, an advanced mixnet system designed for people who have something to say,
 but
 who also value their anonymity. Anonymity is not the same thing as encryption, which
 protects the &lt;span class="emphasis"&gt;&lt;em&gt;content&lt;/em&gt;&lt;/span&gt; of communication over the Internet. Anonymity is
 about protecting &lt;span class="emphasis"&gt;&lt;em&gt;people&lt;/em&gt;&lt;/span&gt;. &lt;/p&gt;</description></item><item><title>Build Katzenpost from source</title><link>https://echomix.org/docs/build_from_source/</link><pubDate>Mon, 11 May 2026 21:31:32 -0700</pubDate><guid>https://echomix.org/docs/build_from_source/</guid><description>&lt;div class="article"&gt;
&lt;div class="titlepage"&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h1 id="build-katzenpost-from-source"&gt;&lt;span id="building"&gt;&lt;/span&gt;Build Katzenpost from source&lt;/h1&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;/div&gt;
&lt;div class="toc"&gt;
&lt;p&gt;&lt;strong&gt;Table of Contents&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="section"&gt;&lt;a href="#pinned-versions"&gt;Pinned versions&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="section"&gt;&lt;a href="#prerequisites"&gt;Prerequisites&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="section"&gt;&lt;a href="#kpclientd-the-client-daemon"&gt;kpclientd (the client daemon)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="section"&gt;&lt;a href="#go-thin-client"&gt;Go thin client&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="section"&gt;&lt;a href="#rust-thin-client"&gt;Rust thin client&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="section"&gt;&lt;a href="#python-thin-client"&gt;Python thin client&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="section"&gt;&lt;a href="#katzenqt-qt-group-chat-client"&gt;katzenqt (Qt group chat client)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="section"&gt;&lt;a href="#verifying-the-stack"&gt;Verifying the stack&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This page is the canonical reference for the
&lt;span class="strong"&gt;&lt;strong&gt;pinned versions&lt;/strong&gt;&lt;/span&gt; of the Katzenpost
stack, together with brief instructions for building and running
each component from source. It is intended for anyone who wishes to
run the software ahead of binary packages becoming available.&lt;/p&gt;</description></item><item><title/><link>https://echomix.org/docs/build_katzenqt/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://echomix.org/docs/build_katzenqt/</guid><description>&lt;h1 id="build-and-run-katzenqt-from-source"&gt;Build and run katzenqt from source&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;katzenqt&lt;/code&gt; is the Qt group chat client. It is a decentralised
application that runs over the Katzenpost mix network and the
Pigeonhole storage services. The design is set out in the
&lt;a href="https://arxiv.org/abs/2501.02933"&gt;Echomix paper&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning.&lt;/strong&gt; &lt;code&gt;katzenqt&lt;/code&gt; is in active development and has not yet
been tagged for general release. It is not appropriate to rely on
the software for anonymity, security, or privacy at this stage.
Pre-built packages will be linked from the &lt;a href="https://echomix.org/docs/"&gt;docs landing&lt;/a&gt;
once a release is cut.&lt;/p&gt;</description></item><item><title/><link>https://echomix.org/docs/python_thin_client_api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://echomix.org/docs/python_thin_client_api/</guid><description>&lt;h1 id="python-thin-client-api"&gt;Python Thin Client API&lt;/h1&gt;
&lt;p&gt;This is the API reference for the &lt;code&gt;katzenpost_thinclient&lt;/code&gt; Python
package, the Python binding of the Katzenpost thin client. The thin
client is an interface to the &lt;code&gt;kpclientd&lt;/code&gt; daemon, which performs all
cryptographic and network operations; the binding itself does no
cryptography.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This page is generated&lt;/strong&gt; by &lt;code&gt;website/tools/python-api-gen/&lt;/code&gt; from the
docstrings of the pinned &lt;code&gt;katzenpost_thinclient&lt;/code&gt; release, using the
native Python documentation tool &lt;a href="https://niklasrosenstein.github.io/pydoc-markdown/"&gt;&lt;code&gt;pydoc-markdown&lt;/code&gt;&lt;/a&gt;.
Do not edit it directly: changes belong in the binding docstrings (in
the &lt;code&gt;thin_client&lt;/code&gt; repository) and will be overwritten by the next
generation pass.&lt;/p&gt;</description></item><item><title/><link>https://echomix.org/docs/run_katzenpost_mixnode_docker/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://echomix.org/docs/run_katzenpost_mixnode_docker/</guid><description>&lt;h1 id="run-a-katzenpost-mix-server-in-a-docker-container"&gt;Run a Katzenpost Mix server in a Docker container&lt;/h1&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Access to the &lt;code&gt;namenlos&lt;/code&gt; git repo&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="preparing-the-host-filesystem"&gt;Preparing the host filesystem&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir katzenpost-mix
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd katzenpost-mix
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir &lt;span style="color:#f92672"&gt;{&lt;/span&gt;conf,data&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod &lt;span style="color:#ae81ff"&gt;700&lt;/span&gt; data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;All further actions are performed from the &lt;code&gt;katzenpost-mix&lt;/code&gt; directory.&lt;/p&gt;
&lt;h2 id="building-the-docker-image"&gt;Building the Docker image&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Create &lt;code&gt;Dockerfile&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-docker" data-lang="docker"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;FROM&lt;/span&gt; &lt;span style="color:#e6db74"&gt;golang:bookworm&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;AS&lt;/span&gt; &lt;span style="color:#e6db74"&gt;builder&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;LABEL&lt;/span&gt; authors&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&amp;lt;ops@cryptonymity.net&amp;gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;RUN&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cd /go &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; git clone https://github.com/katzenpost/katzenpost &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cd katzenpost &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; go mod tidy &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cd cmd/server &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; go build&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;FROM&lt;/span&gt; &lt;span style="color:#e6db74"&gt;debian:bookworm&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;AS&lt;/span&gt; &lt;span style="color:#e6db74"&gt;deploy&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;COPY&lt;/span&gt; --from&lt;span style="color:#f92672"&gt;=&lt;/span&gt;builder /go/katzenpost/cmd/server/server /usr/bin/server&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;EXPOSE&lt;/span&gt; &lt;span style="color:#e6db74"&gt;8181&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;ARG&lt;/span&gt; uid&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;ARG&lt;/span&gt; gid&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;RUN&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mkdir -p /home/user &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;user:x:&lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;uid&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;:&lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;gid&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;:User,,,:/home/user:/bin/bash&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; /etc/passwd &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;user:x:&lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;uid&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;:&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; /etc/group&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;USER&lt;/span&gt; &lt;span style="color:#e6db74"&gt;user&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;ENV&lt;/span&gt; HOME&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/home/user&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;ENTRYPOINT&lt;/span&gt; [&lt;span style="color:#e6db74"&gt;&amp;#34;/usr/bin/server&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;-f&amp;#34;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#34;/conf/katzenpost.toml&amp;#34;&lt;/span&gt;]&lt;span style="color:#960050;background-color:#1e0010"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Build Docker image:&lt;/p&gt;</description></item><item><title/><link>https://echomix.org/docs/thin_client_api_reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://echomix.org/docs/thin_client_api_reference/</guid><description>&lt;h1 id="thin-client-api-reference"&gt;Thin Client API Reference&lt;/h1&gt;
&lt;p&gt;This is the complete API reference for the Katzenpost thin client. The
thin client is an interface to the kpclientd daemon, which handles all
cryptographic and network operations. The thin client communicates
with the daemon over a local socket using CBOR-encoded messages.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This document is generated.&lt;/strong&gt; The canonical source is
&lt;code&gt;website/tools/thin-client-api-gen/&lt;/code&gt;; edit binding docstrings (in the
source trees) or &lt;code&gt;groups.yaml&lt;/code&gt; / &lt;code&gt;overlay/*.md&lt;/code&gt; (in the generator) — do
not edit this file directly, as local changes will be overwritten by
the next generation pass.&lt;/p&gt;</description></item><item><title/><link>https://echomix.org/docs/thin_client_howto/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://echomix.org/docs/thin_client_howto/</guid><description>&lt;h1 id="thin-client-how-to-guide"&gt;Thin Client How-to Guide&lt;/h1&gt;
&lt;p&gt;This guide shows how to accomplish specific tasks with the Katzenpost
thin client. Each section is self-contained: find the task you need
and follow the steps.&lt;/p&gt;
&lt;p&gt;If you are new to Pigeonhole, read
&lt;a href="https://echomix.org/docs/pigeonhole_explained/"&gt;Understanding Pigeonhole&lt;/a&gt; first for the
concepts, then return here for the recipes, and consult the
&lt;a href="https://echomix.org/docs/thin_client_api_reference/"&gt;Thin Client API Reference&lt;/a&gt; for the
precise signatures.&lt;/p&gt;
&lt;p&gt;Throughout this guide and the API the words &lt;strong&gt;channel&lt;/strong&gt; and &lt;strong&gt;stream&lt;/strong&gt;
are used interchangeably: they denote one and the same thing.&lt;/p&gt;</description></item><item><title/><link>https://echomix.org/docs/threat_model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://echomix.org/docs/threat_model/</guid><description>&lt;h1&gt;Threat Model&lt;/h1&gt;

&lt;h1 id="the-purpose-and-structure-of-this-document"&gt;The purpose and
structure of this document&lt;/h1&gt;
&lt;p&gt;This threat model document is unique in the privacy technology
landscape for its detailed treatment of realistic adversary
capabilities. It is not a description of a superficial, theoretical
system, but rather of complex, real-life software that is being
interrogated and constantly re-designed to provide the best possible
security. We examine it from the point of view of both theoretical
design, networking choices and practical pitfalls.&lt;/p&gt;</description></item><item><title/><link>https://echomix.org/docs/pigeonhole_explained/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://echomix.org/docs/pigeonhole_explained/</guid><description>&lt;h1 id="understanding-pigeonhole"&gt;Understanding Pigeonhole&lt;/h1&gt;
&lt;p&gt;Pigeonhole is the storage layer of the Katzenpost mix network. It
lets applications communicate anonymously using encrypted,
append-only streams. From a passive network observer&amp;rsquo;s perspective
there is no consistent stream access and instead everything looks like
randomly scattered queries across storage servers.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; client ┌───── via mix network ─────┐ courier replicas
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ┌────┐
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; kpclientd ──▶ Sphinx round-trip (×3 mix layers) ──▶ service │ 1 │
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; node ├────┤
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (courier) │ 2 │
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; │ ├────┤
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └─────▶│ ...│
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; └────┘
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fixed-throughput K = 2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; connections; replicas
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cannot read box IDs per box
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (consistent
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hashing)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is the document to read first. Having understood the concepts
here, proceed to the &lt;a href="https://echomix.org/docs/thin_client_howto/"&gt;how-to guide&lt;/a&gt; for
task-oriented recipes, and consult the
&lt;a href="https://echomix.org/docs/thin_client_api_reference/"&gt;API reference&lt;/a&gt; for the precise
signatures.&lt;/p&gt;</description></item></channel></rss>