A thinclient for the Katzenpost client daemon
Project description
katzenpost_thinclient
A thin client for sending and receiving messages via a Katzenpost mix network.
This pypi package provides a thin client library for interacting with a Katzenpost mixnet.
A mix network is a type of anonymous communications network.
A thin client library is code you can use as a depencency in your application so that it can anonymously interact with services on the mix network. The Katzenpost client daemon is a multiplexing client; many applications on the same device can use their thin client libraries to connect to the daemon and interact with mixnet services concurrently.
Contributions
This is a work in progress and we'll require feedback from developers to make improvements. Pull requests welcome:
https://github.com/katzenpost/thin_client
Documentation
Here's our python API docs: https://katzenpost.network/docs/python_thin_client.html
Here's our thin client integration guide: https://github.com/katzenpost/website/blob/main/content/en/docs/client_integration.md
Installation
Install katzenpost using pip:
pip install katzenpost_thinclient
or
pip install -e .
Running Code Examples
In the tests/ directory AND the examples/ directory you'll find
some simple python examples that use this library. However both of
them refer to the path to the katzenpost docker mixnet's client2's
thinclient's config, like so:
docker_mixnet_thinclient_cfg = "../../katzenpost/docker/voting_mixnet/client2/thinclient.toml"
These examples are meant to be runned after starting a katzenpost docker mixnet. Firstly, start the docker mixnet. For details instructions, go here: https://katzenpost.network/docs/admin_guide/docker.html We'll be working with the Katzenpost monorepo to get the docker mixnet started: https://github.com/katzenpost/katzenpost
cd katzenpost/docker
make start wait run-ping
Once our docker mixnet is fully started up then we can start the client2 daemon:
cd katzenpost/client2
make warpedclientdaemon
cd cmd/kpclientd
./kpclientd -c ../../../docker/voting_mixnet/client2/client.toml
The above client2/client.toml should have been created by the docker Makefile
(via the make start command above) which sets up a new docker mixnet. Next we can
finally run our test and examples:
pytest
and
cd examples
python fetch_pki_doc.py
# blah blah informative output
python echo_ping.py
# blah blah informative output
Additional Code Examples
We have two working example python programs that use this thin client library:
-
stats - terminal application that prints the current mixnet status https://github.com/katzenpost/status
-
worldmap - renders an image of the mixnet transposed over a worldmap https://github.com/katzenpost/worldmap
Compatibility
Works with Katzenpost v0.0.49 or later.
License
AGPLv3
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file katzenpost_thinclient-0.0.8.tar.gz.
File metadata
- Download URL: katzenpost_thinclient-0.0.8.tar.gz
- Upload date:
- Size: 46.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5af89ed5693fcb6cc89116db0ad21ba1fdde69f33d958d90dad112ce132c1ab2
|
|
| MD5 |
b7f21b53dc9b214e91ceeb9e35030620
|
|
| BLAKE2b-256 |
fdac15cef0afb726349885a03f8afdad673fc078ce2250632ebcf2e88e7f08ea
|
File details
Details for the file katzenpost_thinclient-0.0.8-py3-none-any.whl.
File metadata
- Download URL: katzenpost_thinclient-0.0.8-py3-none-any.whl
- Upload date:
- Size: 23.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2a1e64c4bbc463cab87aa86a53f16cc01f37d30b74bd83a42fbef06bd1b0d5d
|
|
| MD5 |
1da744830bdaf5b87078ae3e38b5ee13
|
|
| BLAKE2b-256 |
3e3bbdac24398963eabab7b853b0f80ab4de3abfa4bf9c0d67ff0a0f94bbdb60
|