Let's Decentralize

Alternatives to the standard internet stack

This website is still under construction.


Routing networks

These are ways to set up a standard server-client connection for applications.

Tor Tor is "free and open-source software for enabling anonymous communication by directing Internet traffic through a free, worldwide, volunteer overlay network consisting of more than seven thousand relays in order to conceal a user's location and usage from anyone conducting network surveillance or traffic analysis." [Wikipedia]

Tor is not a silver bullet (many websites block visitors coming from known Tor exit nodes, and Google's captchas are notoriously slow, although this is due to Google being assholes), but it can be a massively helpful tool for breaking through firewalls or concealing one's browsing habits from traffic sniffers. Programs can be configured to use Tor via a SOCKS proxy or by a wrapper like torsocks.

Although it is not Tor's primary purpose, as a side effect of its routing methods, it can also be used to set up "hidden services", or websites/services that can only be accessed through Tor.

[Set up a Tor hidden service] [This site on Tor] [List of Tor sites]

 

I2P I2P is "an anonymous network layer (implemented as a Mix Network) that allows for censorship resistant, peer to peer communication. Anonymous connections are achieved by encrypting the user's traffic (by using end-to-end encryption), and sending it through a volunteer-run network of roughly 55,000 computers distributed around the world." [Wikipedia]

Unlike Tor, I2P's primary purpose is to facilitate hidden services. While "outproxies" exist to route clearnet traffic through I2P, these are slow, rare, and cannot guarantee any amount of privacy. Therefore, programs configured for I2P should ONLY be used for I2P. Because I2P's routing is peer-to-peer instead of through dedicated "guard" and "entry" nodes like Tor, sometimes it can fail to create routes to servers, meaning sites that are up may appear to be down on occasion.

[Set up a I2P eepsite] [This site on I2P] [List of I2P sites]

 

Lokinet Lokinet is a decentralized onion router that uses the same service nodes as the Loki blockchain (developed by the same team) for routing. Because servers that want to be service nodes are required to meet a minimum standard for bandwidth and processing power, Lokinet is (at least, according to the documentation) near-guaranteed to be fast and low-latency.

It uses a system-wide local DNS server that only handles domains ending in .loki, so it neither interferes with clearnet traffic nor requires programs to be specially configured for Lokinet. While Tor can only handle TCP traffic, Lokinet can handle any IP-based protocol, including UDP, ICMP, and TCP. Lokinet seems to only be able to grant each device one address, meaning that hosting more than one hidden service (or "snapp" as the official documentation calls them) requires configuring subdomains in one's web server configuration.

(GUIDE TO BE WRITTEN)

[List of Lokinet zites]

 

Yggdrasil Yggdrasil is "an early-stage implementation of a fully end-to-end encrypted IPv6 network. It is lightweight, self-arranging, supported on multiple platforms and allows pretty much any IPv6-capable application to communicate securely with other Yggdrasil nodes. Yggdrasil does not require you to have IPv6 Internet connectivity - it also works over IPv4." [Yggdrasil homepage]

Unlike the other routing networks listed here, Yggdrasil uses IPv6 addresses instead of public keys. Thus, while not particularly anonymous, it can coexist with standard DNS resolvers; the IP Yggdrasil gives can be assigned to any standard domain or subdomain's AAAA record (although obviously it will require Yggdrasil to access). From personal experience, Yggdrasil does not seem to play nicely with Linux distributions not using systemd as their init system.

[Set up a Yggdrasil hidden service] [This site on Yggdrasil] [List of Yggdrasil sites]


Peer-to-peer website sharing

These are ways to publish documents or, well, websites without the need for a centralized server.

ZeroNet ZeroNet is "a decentralized web-like network of peer-to-peer users... Instead of having an IP address, sites are identified by a public key (specifically a bitcoin address)." [Wikipedia]

ZeroNet is basically BitTorrent for websites, where instead of domains, websites are identified using a Bitcoin public key (although ZeroNet supports a few ways to link a public key to a ZeroNet-specific domain name). Unlike traditional BitTorrent, however, "zites" (ZeroNet sites) can be updated after they have been originally published while retaining the same key and peers.

Because ZeroNet is not a client-server network, traditional website applications like WordPress that require server-side languages like PHP will not work on it. ZeroNet works best with static sites (HTML/CSS/client-side JavaScript), or you can use CoffeeScript and ZeroNet's special APIs to create decentralized applications.

Please note that development in the official repository seems to have drastically slowed, and the main developers have all but vanished from ZeroTalk (the main discussion zite). Security bugs may not always be addressed in due time. We (the webmasters) highly recommend running ZeroNet in a dedicated virtual machine.

(GUIDE TO BE WRITTEN)

New! You can use zeronet.link to link to ZeroNet pages from the clearnet. If your ZeroNet daemon is running on the default port (43110), it will automatically redirect to the zite. Try it on the link below! (Note: it doesn't seem to work in the Brave browser.)

[This site on ZeroNet] [List of ZeroNet zites]

 

IPFS IPFS is "a protocol and peer-to-peer network for storing and sharing data in a distributed file system. IPFS uses content-addressing to uniquely identify each file in a global namespace connecting all computing devices." [Wikipedia]

Similar to BitTorrent, IPFS allows its users to both receive data from other users who are hosting the file and to share that data in turn with other users looking for that file. Unlike BitTorrent, it seeks to create a unified global network. Files use hashes, meaning if two users publish the same file, that file will be available under the same hash.

While IPFS hashes themselves are immutable, meaning they cannot be changed once published, IPFS supports a system called IPNS where the hash can be of a peer themselves instead of the file, enabling mutable (re-writable) files and folders and ultimately websites.

(GUIDE TO BE WRITTEN)

[List of IPFS sites]

 

Freenet Freenet is "a peer-to-peer platform for censorship-resistant communication. It uses a decentralized distributed data store to keep and deliver information, and has a suite of free software for publishing and communicating on the Web without fear of censorship." [Wikipedia]

Freenet's first release was on March 2000. It is (probably) the oldest project on this page (other than Gopher), and is still receiving regular updates to this day.

Unlike ZeroNet and IPFS, you do not necessarily have control over the data that is seeded on your device. Data is split into several small blocks, which are replicated to multiple nodes. You designate a set amount of disk space to give Freenet (usually between fifteen and fifty gigabytes), and it caches the most popular information on the network. The more frequently accessed a Freenet site is by Freenet users, the more users that will seed the content. Data is encrypted on disk, and can only be accessed through Freenet's web interface.

(GUIDE TO BE WRITTEN)

[This site on Freenet] [List of Freenet sites]


Protocols

Sometimes HTTP just isn't enough (or is too much). These can be combined with routing networks to provide additional anonymity or transport security.

Gopher is "a communications protocol designed for distributing, searching, and retrieving documents in Internet Protocol networks. The design of the Gopher protocol and user interface is menu-driven". [Wikipedia]

The experience of browsing a Gopherhole (a site on Gopher) is essentially the same as browsing a folder on your local hard drive: content is hierarchical (organized into a folder structure). While HTML files can be shared, the vast majority of Gopher clients either do not support viewing HTML in-browser or do not support CSS.

Because Gopher was created before the advent of SSL/TLS, it has no transport security. Someone eavesdropping on your internet connection, like your ISP or network administrator, can know exactly what files you access on a Gopherhole and what the contents of those are, and modify them in transit (a man-in-the-middle attack). This can be mitigated by serving a Gopherhole over an encrypted network like the ones in the first section of this webpage, but unfortunately the vast majority of Gopher administrators do not offer their holes on these.

 

Gemini is "a new, collaboratively designed internet protocol, which explores the space inbetween [sic] gopher and the web, striving to address (perceived) limitations of one while avoiding the (undeniable) pitfalls of the other." [Project Gemini homepage]

Like HTTPS, it uses TLS to secure connections (required by the protocol spec); like Gopher, it serves documents in one-off connections with minimal traffic overhead. Most Gemini clients support a new file type called "gemtext" (.gmi, mimetype "text/gemini"), which is like a stripped-down Markdown with only bullet lists, a few levels of document headers, and links that can only be on their own line. Thus it offers a bit more customization than Gopher's gophermaps, but not by much.


Miscellaneous

Tor and friends are good and all, but even the best anonymizing network won't help if you're using services that don't respect you like Google or Facebook. These are softwares you can self-host on a server of yours, like a VPS or an old computer at home, to take back control of your data.

Fediverse The "fediverse" is "an ensemble of federated (i.e. interconnected) servers that are used for web publishing (i.e. social networking, microblogging, blogging, or websites) and file hosting, but which, while independently hosted, can communicate with each other." [Wikipedia]

In simpler terms, the fediverse is the colloquial term for servers running publishing software (like social media or a blog) that speaks to other servers using the ActivityPub protocol. Like how Gmail users can email users on Outlook and both can (theoretically) email users running their own servers, users on a Misskey (think decentralized Twitter) server can talk to users on a Pixelfed (think decentralized Instagram) server, and both can talk to users on servers running Friendica (think... decentralized Facebook). Many other software packages speak ActivityPub than just these three: Funkwhale, for instance, is for audio streaming like Soundcloud, and PeerTube is for video sharing like YouTube.

Many servers exist already (like the one we run!), and each one has its own moderation policy set by its admins. Not all servers federate with each other: for example, it is often common practice for admins to block the instances of spammers, preventing either server from talking to each other, or to reject incoming media (like pictures) from NSFW-themed servers.

 

XMPP XMPP is "an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Extensible Markup Language), it enables the near-real-time exchange of structured data between two or more network entities. Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses." [Wikipedia]

XMPP is to chat what email is to... well, mailing. Users on one server can talk to users on other servers. Many clients exist for every mainstream operating system and a great deal of obscure ones. We recommend Conversations for Android and Gajim for Linux, as these both support OMEMO for end-to-end encryption.

Several friends of Let's Decentralize host XMPP servers, such as ebin.city and getimiskon. The Calyx Institute also has open registrations.

 

Git Git is "software for tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows (thousands of parallel branches running on different systems)." [Wikipedia]

Git is a version control system. In other words, it's an extended undo/redo history log for files. This makes it incredibly useful for software development: end users can see exactly what parts of the code have changed between commits, and developers can see what contributors wrote what parts in case something goes horribly wrong. It can also be used for hosting websites or as a general system for distributing files to download.

Many options to host a personal Git instance exist. We personally recommend Gogs as it can be fully set up in less than five minutes and does not require a complicated database setup. Other options include GitLab and Pagure.

If you don't want to host your own, publically available Git instances with open registrations also exist: Kiwi FOSS, notabug, Immerda, Lain.la, and Framagit are four on the clearnet. (And, strangely enough, one on Lokinet.) If you don't trust any of those, we also host our own.


Questions? Comments? Have a darknet site you want listed? Email the webmaster at lethe (at) deadendshrine (dot) online [GPG key].

Made with <3 by your friends at MayVaneDay and Dead End Shrine Online.

Remember. Resist. Do not comply.