Hmmm, I've just been reading up a bit on TOR & I'm tempted to leave deploying it up to the OS (integration into network settings would be great!)... I'm not 100% sure whether or not the `torsocks` command would be enough to Torify Rhapsode, but Tor can certainly be configured as the system HTTPS proxy with Rhapsode respecting that!
Or you could mess with the DNS resolver to understand *.onion addresses? Could do this within Rhapsode but I think it'd be best done outside.
So the DNS is one form of sacrificing decentralization for human readability & uniqueness, whilst TOR Hidden Services (did:onion:*, *.onion) or IP addresses sacrafices human readability for decentralization & uniqueness.
That leaves me to implement some form "nicknames" to sacrifice uniqueness. Not entirely sure what that would involve here whilst ensuring sites link where they expect, but I doubt it's something I can offload to the OS where all internet apps can benefit... Thoughts?
Implementing Tor opens up devices with operating systems that Tor doesn't support, but with the cost that maintaining the implementation becomes your responsibility. It's (apparently) not terribly difficult, but doing that for Rhapsode has less upside than, say, Hephaestus
@yaaps Yes, and it looks like complexity I could offload onto packagers: Rhapsode/Haphaestus *should* compose trivially with Tor's existing commandline tools. And they would need to package those commandline tools in some form anyways, unless I were to take on the burden of reimplementing Tor in Haskell!
For people who care about, support, or build Free, Libre, and Open Source Software (FLOSS).