Video hosted via IPFS.
CID: QmRRCmHh5bU2ZoEJnuDoop3Vb8ct79gdcc6nKCNByuTVZM
InterPlanetary File System Puts “Climate The Movie” Beyond The Reach of Cancel-Karens
Today’s case study leverages the buzz being created by the documentary about Big Climate Inc., the inevitable ire it is garnering from the cancel-culture crew to show how emerging decentralized technologies can neutralize deplatforming attacks.
To nobody’s surprise – those who disagreed with the documentary’s premise feel their belief system should override everybody else’s, and suppress the movie entirely…
I’m thinking we can get 10,000 people to report “Climate: the Movie” on YouTube as having harmful and misleading content.
— Prof. Eliot Jacobson (@EliotJacobson) March 23, 2024
(I’m surprised his name isn’t Eliot Jacobin)
The upshot of the “harmful” message is that climate alarmism may be driven more by junk science and hidden agendas than an altruistic desire to protect the environment.
Vimeo took the video down entirely and YouTube seems to be randomly removing it, or plastering it with some manner of “Climate Truther” disclaimer.
Yet so many people are reposting Climate: The Movie to alternative platforms, the genie is essentially out of the bottle already.
But in the interests of free speech and providing a primer on IPFS, let’s look at this example and how we can use IPFS to put it beyond the reach of deplatform attacks entirely.
Briefly, IPFS (InterPlanetary File System) is a decentralized and peer-to-peer hypermedia protocol, making it a great choice if you’re looking to host content outside the traditional “Big Tech” ecosystems. Because IPFS operates differently from traditional web hosting, there are a few extra steps and considerations.
At first glance, it may be tempting to simply upload your file to an IPFS hosting service like Pinata, and be done with it.
However, third-party IPFS services like that, are still a choke point unto themselves. We’re still going use Pinata, for IPFS pinning, but we’ll do it in a way where if Pinata ever goes away (or our account is maxed out on downloads, etc) – we’re still in business.
IPFS Deployment Playbook
What we’re going to do is install IPFS on our own VPS – add our movie to IPFS there, generate a CID for it – then we can use any third-party IPFS pinning service to ensure that the content is replicated across multiple nodes, providing redundancy and higher availability).
After that we can create a persistent name for it via IPNS (InterPlanetary Name Service). Finally we can circulate the CID so that anybody else can pin it, including publishing a _dnslink pointer to it via DNS (as explained below).
Install IPFS On Your Own VPS
I have an easyVPS that I use for various yield farming projects. It was as good a place as any to install IPFS, which is pretty easy:
Step 1: Download the IPFS Binary
- Go to the IPFS official website to find the latest release of the IPFS command-line tools. You can find this at https://ipfs.io or directly in the IPFS GitHub repository releases page.
- Download the binary for Linux. You can do this from the command line using
wget
orcurl
.wget https://dist.ipfs.io/go-ipfs/v0.12.2/go-ipfs_v0.12.2_linux-amd64.tar.gz
(Ensure you replace the URL with the latest version available).
Step 2: Install IPFS
- Extract the downloaded tarball:
tar -xvzf go-ipfs_v0.12.2_linux-amd64.tar.gz
- Run the installation script. Navigate to the directory containing the extracted files and run the install script:
cd go-ipfs sudo bash install.sh
This script will move the IPFS binary to
/usr/local/bin
, making it executable from anywhere in your terminal.
Step 3: Initialize Your IPFS Node
- Initialize the IPFS local repository by running:
ipfs init
This command creates a new IPFS configuration file and generates a new peer identity for your node.
- Start the IPFS daemon:
ipfs daemon
This command starts your IPFS node, allowing it to connect to other nodes in the IPFS network. You might want to run this in a separate terminal or background it.
Add your subversive #truthbomb to IPFS
- Add a file to IPFS:
$ ipfs add ClimateTheMovie.mp4 added QmRRCmHh5bU2ZoEJnuDoop3Vb8ct79gdcc6nKCNByuTVZM ClimateTheMovie.mp4 254 MB / 254 MB [=============================================] 100.00%
This command returns a hash (CID) which you can use to access the file through any IPFS gateway or node like ipfs.io:
- Publish content using IPNS:After adding content to IPFS, you can publish it under your node’s IPNS. Use the CID returned by the
ipfs add
command:$ ipfs name publish /ipfs/<YourContentHash> Published to k51qzi5uqu5dlyzolvjzrwf417fu2n8a7bxmnrojagy5vbv4gv586pbp6rr9rr: /ipfs/QmRRCmHh5bU2ZoEJnuDoop3Vb8ct79gdcc6nKCNByuTVZM
This will return an IPNS link that points to your content. The IPNS link uses your node’s peer ID and will resolve to the content’s current CID.
Pin Your CID Via IPFS Pinning Service
Anything you add to IPFS via your own node is automatically pinned there, but we want to try to circulate this across the wider decentralized internet. This will happen gradually, as other IPFS nodes discover the file, but we can help things along by using external IPFS pinning services.
In this case, we’re using the aforementioned Pinata, but we want to do make sure we “Pin by CID”, as opposed to uploading the file there:
Publish the IPFS CID via _dnslink
Finally, you can push the CID out far and wide via my favourite protocol (DNS, of course 😉) via a _dnslink record, which is just a TXT record in your zone.
Which zone? Any zone. For example, the folks who made ClimateTheMovie could publish it in their domain name:
_dnslink IN TXT "/ipfs/QmRRCmHh5bU2ZoEJnuDoop3Vb8ct79gdcc6nKCNByuTVZM"
If you’re using easyDNS, just use the TXT record modular editor in the control panel, or the single page zone editor:
In this case, I’m simply adding a _dnslink for climatemovie.bombthrower.tv:
% dig -t txt +short _dnslink.climatemovie.bombthrower.tv "/ipfs/QmRRCmHh5bU2ZoEJnuDoop3Vb8ct79gdcc6nKCNByuTVZM"
There we have it. “Climate The Movie: The Cold Truth” is now distributed across the decentralized InterPlanetary File System, and there’s nothing anybody can do about it.
And remember: If it’s settled science, then it isn’t actually… science.