Skip to main content

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:

  1. stats - terminal application that prints the current mixnet status https://github.com/katzenpost/status

  2. 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

katzenpost_thinclient-0.0.9.tar.gz (48.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

katzenpost_thinclient-0.0.9-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file katzenpost_thinclient-0.0.9.tar.gz.

File metadata

  • Download URL: katzenpost_thinclient-0.0.9.tar.gz
  • Upload date:
  • Size: 48.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for katzenpost_thinclient-0.0.9.tar.gz
Algorithm Hash digest
SHA256 14ed2a04e97ab56d8d2e2c031f6219c8fbf1b3d6c86e3076ad82204c4d3c3a2e
MD5 b2b99248e2fe60a1c32b37ca2e51fc45
BLAKE2b-256 cc6a74e2dd6294b88d9ada7f0faf8bcc70139df9a87c409f53bacc5ff3e71a7a

See more details on using hashes here.

File details

Details for the file katzenpost_thinclient-0.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for katzenpost_thinclient-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 cc24c6ba75f724766ef2bbb93aaff619a44e51a5482f4a98b089ae615324ec8f
MD5 da976c426eda9d64155ea48b6ecf9a88
BLAKE2b-256 c57ee50f930e8c8144391a3de0d9e7feea2e9bc2ed8dbafe1272f7107fdfe83e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page