About

This website is maintained on the internet by this Raspberry Pi, a $50 credit-card-sized minicomputer. While the device is capable of serving the website directly, the secret is that it broadcasts the content over the Inter-Planetary File System (IPFS) network. That content is downloaded and rebroadcast by several other servers around the internet. Anyone who downloads that content also helps broadcast the IPFS content. The Raspberry Pi (RPi), is just a backup as a last resort, in case no other systems on the internet have the content.

Videos - Learn More

Here is a walkthrough video of how to use the tools discussed above, to publish your own website in a decentralized, censorship-resistant way.

How it Works

Content on the IPFS network is linked by its hash. A hash looks like this:QmNuGu4moPdCu3Rrnia77k3wDS2v4jLxmyiE68N7fGEDv5The cryptography behind these hashes ensures that any random person can provide a copy of the conent, and you can be sure it hasn't been tampered with. But the downside is that any time a piece of content (like this website) is updated, the hash must also change, and that change must be broadcast to the people who want to access the content.

IPFS has a general solution to this problem called IPNS, which can be very slow. Instead, this site uses the Bitcoin Cash Blockchain (BCH) to syndicate updates. The uncensorable nature of the BCH blockchain ensures that updates to the site can not be blocked, and links to past and present conent can not be lost.

This new, permissionless, censorship-resistant form of publishing makes use of a few tools that I created:

gatsby-ipfs-boilerplate is the 'front end' website template used to create this site. You can fork it to create your own website. It includes all the prerequisits for syndicating your site over the IPFS network.

IPFS Cacher (optional) finds the latest link published to the BCH blockchain the requests the IPFS content from a list of public IPFS gateways once per hour. This ensure that the gateways have the latest website updates on-hand and can provide the content to the network too.

Decentralized Publishing Model

Below is a model illustrating the different ways this website can be accessed over the internet.

The website is updated on a Dev Box. Updated content is uploaded to the IPFS network and the new link is published to the BCH blockchain.

The Raspberry Pi periodically checks the BCH network for updates published to a specific address. If an update is detected, the updates are downloaded from the IPFS network.

The Rasberry Pi then serves the content over the clearnet and Tor darkweb. It also begins pinging IPFS public gateways so that other servers begin downloading and syndicating the IPFS content.

Mirror servers, Random IPFS users, and distributed web apps (dapps) can independently and permissionlessly check the BCH address and syndicate the IPFS data too. This all taps into the Streisand Effect, causing content to be easier to syndicate if an authority-in-power tries to censor it.

How You Can Help

You can help distribute this site and any other content on IPFS by running your own node and pinning the content. This allows your node to download and share the content with anyone else in the network.