integrate katzenpost
Katzenpost is a mixnet developed by the PANORAMIX european union project.
There is a very crude documentation about the setup: https://katzenpost.mixnetworks.org/docs/setup.html But I have experience myself with it and I can help solving questions.
There is three kind of nodes in the network:
- authority. For now there is only one authority per mixnet, that means that most of the providers will not be running any authority. We might decide that the authority is deployed manually and not as part of the leap platform.
- mix. Ideally the leap platform can be used to set up mix nodes without setting up a full provider.
- provider. Normally this will be connected to having a full mx/soledad/webapp/... platform set up. But will be helpful for non-leap providers if it can be deployed without it.
There are two pieces of software:
nonvoting
The authority. It can be compiled by running:
go get -u -v github.com/katzenpost/daemons/authority/nonvoting
And there is an example of configuration file: https://github.com/katzenpost/daemons/blob/master/authority/nonvoting/authority.toml.sample
The tricky part of configuring it is that it requires the identity keys of all the nodes (mixes and providers) in the network.
server
Is both a mix and a provider. It can be compiled by running:
go get -u -v github.com/katzenpost/daemons/server
And there is an example of configuration file: https://github.com/katzenpost/daemons/blob/master/server/katzenpost.toml.sample
It needs to know the IP and the public key of the authority. And it needs to be runned first with:
server -f katzenpost.toml -g
To generate a key pair (that the authority will need to know about).
Once the key is generated it can be launched without the -g
for a normal run.