dendrite
dendrite copied to clipboard
Adds support for listening on and connecting to I2P and Onion services securely
This PR adds 2 dendrite-demo
main's, each designed expressly to serve a Hidden Service/Overlay network.
The first, dendrite-demo-i2p
add self-configuration for use of dendrite as an I2P hidden service(eepsite) and to connect to I2P services(federate) as an I2P client. It further disables the dendrite
server from communicating with non-anonymous servers by federation(because I2P does not canonically have the ability to exit, we rely on donors for exit traffic), and enables the use of self-signed TLS certificates(because I2P services are self-authenticating but TLS is still required for other aspects of the system to work reliably). This demo turns the system into an "pseudonymous" homeserver which people can connect to using an I2P-enabled Matrix client(I like cinny
and it's what I tested with).
The second, dendrite-demo-tor
adds self-configuration for the use of dendrite as an Onion service and to connect to other onion services and non-anonymous web sites using Tor to obfuscate it's physical location and providing, optionally, pseudonymity. It also enables the use of self-signed TLS certificates, for the same reason as with I2P, because onion services aren't typically eligible for TLS certificates. It has also been tested with cinny
.
These services are both pseudonymous like myself, not anonymous. I will be meeting members of the element team at the CCC assembly shortly to discuss contributing under my pseudonym.
As none of the other dendrite-demo
have unit tests I did not add them to these checkins.
- [*] I have added Go unit tests or Complement integration tests for this PR or I have justified why this PR doesn't need tests