According to Wikipedia, Urbit is a "decentralized personal server platform." It seeks to "deconstruct the client-server model in favour of a federated network of personal servers in a peer-to-peer network with a consistent digital identity." In other words, it's a piece of software you run on your computer that supposedly lets you communicate and share data without the need for a server that's online 24/7 or a static IP. Going on the project homepage immediately hits any visitor over the head with a ton of cruft about DAOs, however, so it is clear from the get-go that this isn't a replacement for something like ZeroNet but instead a web3 project with a paywall.
As I stated a few posts ago, the apparently inherent paywall requirement of web3 projects excludes low-income and other disenfranchised people who don't have additional money to spend on getting into these citadels. Unlike other web3 projects, however, an identity on Urbit seems to be a one-time purchase (as I will detail later) instead of requiring tokens to fund every action taken on the network, and being a part of the network doesn't require hosting a local copy of a gigantic and computation-heavy blockchain. In addition, owners of "stars" can issue 216 "planets" each and either sell them or give them away to, ahem, broke dumbasses like yours truly.
I got an Urbit planet out of the blue from a man I used to be internet friends with back in 2019. I was kind of an ass to him, but there was an understanding at the time that most of it was just joking and banter. I eventually ended up cutting off contact with him because he had given me admin permissions over his XMPP group chat and I had taken it upon myself to ban a "coomer" who was constantly putting simulated CSAM in the chat and sexually harassing me in DMs. Said "friend" kept adding the coomer back despite my protestations, so, disgusted, I decided that my mental health was more important than maintaining what little of the friendship remained at that point.
Apparently nowadays he LARPs as a gross stereotype of a woman and spends his entire online presence fetishizing lesbians, so whatever guilt I felt for calling him cringe for being an Urbit fanatic instantly dissipated.
For whatever reason, although I had no intentions of ever using it again, I kept my Urbit passport, two JPEGs containing my "master ticket" and "management phrase". When cleaning out the downloads folder on my phone a few months ago, I discovered that it was still there, sitting at the top of the file listing. And hey, it's been three years... so surely Urbit is now more than just a nonsensical terminal, right?
Getting on Urbit isn't always easy, either. The onboarding process hasn't been optimized by product managers in search of maximal profit. There's no checkbox for your interests—you have to discover them yourself.
You mean... onboarding hasn't been made easy for non-technical people? The same people all these grand overtures of "escaping from MEGACORP" are supposed to save? Or is this one of those "citadel" projects where all the benefit is for the early adopters safe inside and the masses are supposed to be locked outside to suffer whatever computing apocalypse will come?
Urbit has a free version of an identity called a "comet", but apparently it can't download any apps or interact with much of the network, which is confusingly later contradicted in the CLI install instructions: "There are currently few differences between using a comet-level identity and a planet-level one." To do anything of substance, you'll "need a to get a planet". Because I already had my Urbit passport from three years ago, the post doesn't end here, and I was able to continue my research without spending any money. Otherwise, judging from the recommended planet resellers that were functional, prices for a Layer 2 planet range from about $15 to $50, which isn't an "I am now destitute and living on the streets" amount of money... but still, that's a lot of groceries.
The desktop GUI, according to the documentation, requires snap
to be installed, but some digging reveals there are also .dpkg
packages and raw binaries... which, par for the course of web3 bullshit, are written in Node.js. However, these seem to only be available for x86_64, unless you're using a Mac, in which case you also get arm64
, or a Raspberry Pi, in which case you get shunted to a a third-party solution. You could also attempt to compile it yourself, but given the aforementioned Node.js dependency, you're more likely to see the sun explode tomorrow than get the damn thing to compile properly.
Because I wasn't sure how much bandwidth Urbit would use, even though I have a Wi-Fi repeater in my bedroom now and thus an actually decent connection, I instead opted for the server install, which entails downloading a shady-looking CLI binary and feeding it a keyfile... which supposedly comes with the passport, but mine didn't have one, and the setup instructions make it too easy to accidentally skip over the part where you can redownload said keyfile at bridge.urbit.org in the "OS" menu at the bottom of the page.
It took what felt like forever (at least ten minutes; I timed it) to get to a prompt after running ~/urbit/urbit -p 57323 -w socleb-fosrut -k ./socleb-fosrut.key
. The web interface, the port to run on specified with the -p
option, completely ignored this argument and instead decided to run on port 8081, which thankfully wasn't claimed by any other process at the time. You still need the CLI running in a separate window, though, because you'll need to run +code
in the "dojo" (Urbit speak for the CLI) to generate a code to log in to the web interface.
On first run, there are only three options in the web UI: "Terminal", "Groups", and "Bitcoin". I tried Terminal first. It appeared that whatever I typed into it was immediately mirrored in the CLI window. I typed help
thinking it would give me a list of commands like it does in Bash, but instead I got the nonsensical string <1.lqz [* <232.hhi 51.qbt 123.ppa 46.hgz 1.pnw %140>]>
. (At least it has an angel number...?)
Unintuitively, "installing" more apps means opening the search bar instead of a dedicated "install" button (even a little plus sign would have been more helpful) and pasting in a long unmemorable string from an external app directory that has right-clicking disabled, just like the Urbit project blog I sifted through to try to get more information on how the project had grown over the past three years. (There are only so many times I can right-click a tab and duplicate it before I give up out of frustration.) The web UI provides neither app discovery nor progress on app installation: all logs instead get output to the CLI window, and the web UI just gives the web3 equivalent of a middle finger with an endlessly-spinning wheel icon. Once I got some apps installed, I attempted to interact with them:
~dister-norsyr-torryn/canvas
: Like r/place, but stupider. I definitely had A Time vandalizing a few doodles on the preinstalled public canvas. I wouldn't call it a "fun" time... just A Time.~magped-magped-rabsef-bicrym/wrdu
: I don't play Wordle, but I got the general gist of the game pretty quickly. I got three green letters and then lost, but the app didn't tell me what the winning word was.~tirrel/studio
: Took forever to install. It requires you make a "notebook" first, but it doesn't show where to do that. It also requires a clearnet domain to mirror to.~dister-nocsyx-lassul/sphinx
: It required me to install another app in order to have "friends". I added the star ID of the person I got the Urbit planet from and returned to Sphinx, but still nothing showed up. I left it alone and then returned to it about a week later, but still nothing had appeared in the feed.~dister-fabnev-hinmur/escape
: This is the titular chat app. A small handful of popups directed me to some rooms that, from the chat history, appeared to have a small handful of active users. Emphasis on small. I sent a few test messages, but nobody responded to me. Presumably most of the users had hidden themselves away in non-default groups, none of which I bothered joining because... I mean, if I wanted to talk to random techbros, I'd just boot up any old IRC client, no blockchain required.There is a static site app, but the files inside of it don't seem accessible from inside Urbit itself, instead using the user's "pier" (the Urbit storage) to serve on the clearnet. (That is what I could glean from the sparse documentation.) At least, that seems to be the intention, as the clearnet gateway timed out when I tried it. At that point, one could just install any web server instead and get better results.
> exit -find.exit dojo: hoon expression failed > quit -find.quit dojo: hoon expression failed > bye -find.bye dojo: hoon expression failed
Turns out "|exit" or Ctrl-D is the "get me the hell out of here" key combo.
I'm not interested in a convoluted chat app to talk with complete strangers, much less the kind of "techbros" that are attracted to web3 like moths to a lamp or flies to candy. I already have DecSync for decentralized calendars and an increasingly convoluted web of devices running Syncthing for my notebook. And I can just open the Firefox Klar shortcut on my phone's homescreen for the weather... or, you know, look outside my bedroom window. (I need to go outside more often. Stupid humidity, making me wilt at even the slightest bit of sweat... Ah, the joys of having sensory issues.)
I don't see the point of any "alternative Internet" project that doesn't allow me to share my writing in some form. Hell, even Secure Scuttlebutt allows for in-network website hosting, albeit broken last time I tried. The closest thing to Urbit's promise of a "personal server platform" with a "consistent digital identity" that actually functions without the paywall is ZeroNet, but just as Urbit is hamstrung by the utter insanity of the "Hoon" and "Nock" programming languages, ZeroNet is held back by its lack of documentation and spaghetti-tier Python code, both of which make it diffcult for programmers to contribute new applications to their respective platforms. Which is a shame. The idea of being able to host one's entire Internet presence, with private keys and being able to run on (nearly) any computer anywhere, is quite attractive to me.
While I admit Urbit holds a lot of promise, and a lot of effort has been made to smooth out the technological rough edges that often prevent non-technical users from using "alternative Internet" projects, the apps required to replace many of the functions of Urbit's self-proclaimed enemy "MEGACORP" in the eyes of "normies" simply aren't there yet. I see no shared file storage or long-form mailing system or website hosting or even just a Facebook/Twitter/Instagram/whatever-social-media clone. Unlike ZeroNet, Urbit doesn't seem resilient in the face of intermittent connections to the outside world or situations where one has access to other peers inside the LAN but not outside. In the face of the looming climate crisis and the computing challenges that will no doubt accompany it, Urbit seems needlessly fragile, too little too late.
More than three years ago, I wrote a post about female separatism, or the concept that only by women divesting themselves of the need, or even the presence, of men in their lives and by working to build female-only institutions and otherwise centering women in their lives can they truly achieve liberation from the male-built structures, most of which fall under the term patriarchy. Because many of the structures in today's society require interacting with males- to name a few, college professors, plumbers and other home maintenance professionals, businesses- with no viable alternative, it is considered the work of every female separatist to contribute in some way to providing female-owned equivalents. At the time, after considering the concept, I ultimately rejected it because I was still struggling to reconcile my individualist belief that no person should be held responsible for crimes they did not commit with the radical feminist truth that men as a class are responsible for almost all problems faced by women. I only wanted to see the world as a collection of unrelated and coincidental events that maybe sometimes had deleterious effects in my life instead of burdened by an unconscious machination working to keep every woman oppressed at all costs. I stated that, if I were to flee to a separatist land, a Second Realm, I would choose one ran by libertarians (despite their continued failures) rather than by women, radfem or not, because I believed that lip service to the concepts of freedom and bodily autonomy would be enough to keep me safe from said misogynist machinations that employ every man alive.
But after having spent time in online women-only spaces and of pouring effort into the friendships with the women in my life, I think I have changed my mind.
The Internet as it currently stands is no place for a woman, no matter her mental fortitude. I have gone through many a social media site throughout my time in this hellscape, from mainstream places like Twitter to the Fediverse to "Reddit runoff" link aggregators like Ramble to indie forums. Inevitably what happens is some male comes in, convinced that he knows better than me despite, from his words and the way he conducts himself, having clearly misinterpreted my argument, and starts "dick-swinging" until I get tired of attempting to put out the flames of his tantrum or arguing with a brick wall and decide to go do something more productive with my time, at which point he declares himself the "winner" of the "debate". As I have gotten older and less desperate for validation on the Internet, I have found myself opting for this "walk away" approach more and more. Every social media site that is not explicitly for females is rife with misogyny: Reddit's legion porn subreddits and male infestation of formerly female-centered places, "tradcaths" and "coomers" on Twitter and Tumblr, blatant calls to violence against women on literally every imageboard I've ever seen...
All space becomes male space unless females maintain a concerted effort to mark a space for themselves.
- Sheila Jeffreys
For a long long time I have wished for a female-only lowercase-I internet. Even just a darknet, an overlay network a la Yggdrasil, a place no man could ever traverse. (Of course, it would be difficult without some kind of centralization to verify that only females are accessing the network, but this post is not concerned with implementation details.) A place without the cruft and scum and constant fighting for recognition of my worth as a person that defines the male-dominated Internet. From what I have seen of the few spaces like this on the clearnet I have found, I can extrapolate what this new network would look like: far less (maybe even no) pornography being spammed everywhere, less needless software complexity in the name of "dick-swinging" to pad out one's programming portfolio or resume, less soulless corporatist minimalism, fewer threats of violence, less harassment (sexual or otherwise), less SEO spam and blog chum... kinder interactions, more vibrant personality on personal websites...
Less energy spent "proving" my worth as a (physically) human being.
As far as socializing with strangers online goes, I have within the past few months taken up refuge in Ovarit (and ThePinkPill when the former doesn't have an appropriate "circle" for what I want to post or when said thing has already been posted but the discussion is dead and archived). In the process, I have discovered that I don't hate social media, I'm just tired of interacting with men. I have literally never had an argument on Ovarit in my time there. Plenty of disagreements and differences in opinion, sure, but no actual fights in the same way I did on an obscure forum in June when some "moid" was insultingly dismissive of my anxiety over the fall of Roe v. Wade. All my interactions on Ovarit have been respectful, if not warm and friendly and supportive. The archetypal social media user who only logs on to stir up shit and be a contrarian has a hard time taking root, quickly banned as a troll uninterested in arguing in good faith or contributing to a productive conversation. The women there (and maybe outside, if I were brave enough to share some of my writing away from the keyboard) just seem to understand my writing in a way that men appear to be fundamentally incapable of: the latter maybe a few key concepts here and there, but rarely, if ever, in its complex totality.
It's funny the respect among users that naturally forms when you're surrounded by people who have already implicitly agreed on the value of your life and your words and your personhood.
Despite it being a public website, I feel safe there in a way I haven't felt online in a long time. It is the same overwhelming feeling of sudden safety oft documented by women entering womyn's festivals for the first time (I think specifically of The Disappearing L by Bonnie J. Morris) and every time thereafter. Being in an environment of all women when one has been living in the world of men all their lives, suddenly cognizant of the male voyeur implanted in their brains since birth demanding they stay "pretty" and "consumable" all the time and how utterly useless it is there. It fills me with sorrow and yet hope at the same time: hopeful because the safety and camaraderie and solidarity expressed in the journals and snippets within prove that female separatist micro-societies can in fact function without men, sorrowful because many of them were shuttered before I came out and ever knew of them, but hopeful again because what once was can be yet again - and is, now, today, in many places throughout the world.
What levels of freedom can I not even conceive of because of the weight of misogyny I've carried all my life? What does a truly liberated female who has never known male-caused violence, male-caused sexualization, male-caused dehumanization look like?
I may never know in my lifetime.
And it infuriates me.
I'm tired of this world of men. Of being caught in the tangle of their lives. And even if I am never able to leave the Golden Cage of the house of my parents, what with the climate crisis and the housing bubble and an unlivable wage and the simple fact of me being incompatible with this world, I wish to build this female Second Realm (which exists now, despite everything) in the ways that I can with the knowledge that I have. To build this world that does not question my basic worth, that does not ask me to live in servitude to any person, that wholeheartedly seeks my development and fruition as a whole and complete person in and of myself free from the bonsai-esque trimming male society imposes on every woman.
After all, in the end, I can only save myself. And this world of men offers no true salvation.
]]>Although I've been publishing things on the internet since I was about eleven, it took me until I was seventeen to get reliable access to a computer of my own and nineteen to set up my first Tor hidden service, back when v2 addresses were a thing and one had a hope of memorizing the URL to share to others. Meaning, up until then, I was sharecropping on someone else's server: Blogger at first, then WordPress once I realized how evil Google was, then Neocities until I was harrassed off one day.
If I knew back then what I do now, then obviously I would have never put anything on the clearnet to begin with. What creative ideas did I let wither inside me because I had to constantly toe the line of being grounded and electronics confiscated for something innocuous? (So my brothers can openly joke about porn and violence against women and my parents refuse to do anything, but I wrote one poem about my ex-girlfriend that I had when I was fourteen- and while it wasn't very good by my current standards, I certainly wasn't wishing violence against the teenager- and they took all my devices and isolated me from my friends for a week...?) I can only guess how much better at writing I would be today if I hadn't had to constantly bite my tongue.
But Tor hidden services require a server, being that Tor is a client-server model. And while I cannot remember whether or not Orbot had hosting support back in 2014 when I was using it to get past my middle school firewall, I can attest that not only does Orbot have hosting support nowadays, but there are also many more options for publishing content on the "dark web" with nothing more than a phone and a little technical expertise.
For this post, I attempted to do as much as possible with that same device I spent so many hours typing into the WordPress editor on: a Motorola Moto X, Verizon edition, Android codename "ghost". It has not seen system updates in about five years, forever stuck on Android 5.1, and I have neither the bandwidth nor the patience to attempt to compile an abandoned version of LineageOS just so I can have Android 6.0 instead. For apps that require a more recent version of Android or otherwise crashed on the Moto X, I instead used the phone I had after it, a Samsung Galaxy Note 3 with the latest nightly of LineageOS (meaning some minor point version of Android 11 at the time of writing). For client-server darknets, I used ServeIt, available on F-Droid, as the backend server; it only supports static hosting from a directory of files, meaning no dynamic applications, but that would have been all I needed back then.
Once upon a time, there was a "Tor Browser" app named Orweb which was little more than an Android WebView wrapped in a very poorly-made UI. That eventually got abandoned and replaced with Orfox, which was slightly better and also allowed for niceties like bookmarks and tabs. (I am going off my memory from about a decade ago, so don't bother emailing me if I got something wrong.) Nowadays we are a bit more spoiled with an official Tor Browser. However, it seems to crash a lot, so I prefer to browser Tor hidden services on Android using Privacy Browser instead.
Orbot is best in class as far as "Tor on Android" goes, and I know of no other (non-proprietary) solution that doesn't come coupled to a browser. In Orbot, you can set up a hidden service by going to the meatball (three dots) menu, pressing "Onion Services", then "Hosted Onion Services". Ensure that "User services" is selected and then press the plus button in the lower-right corner. "Local port" should be the port ServeIt is running on, and "Onion Port" should be 80 as that is the default HTTP port. (You can make it something else, but then you would need to share that as part of the URL.) Long-pressing the service URL once created will show an option to backup the keys or copy the URL to the clipboard.
There are two I2P apps on F-Droid that I know of and have used. The primary one is slow and buggy and features a built-in browser that is even worse than Orweb was back in the day. Therefore I recommend using i2pd instead. Any browser can be the "I2P browser" if set to use localhost port 4444 as HTTP proxy; the aforementioned "Privacy Browser" has a preset in the proxy menu to use I2P without messing with port numbers.
Unlike Orbot, i2pd stores all of its settings and keys in the filesystem instead of in the app settings. (This may or may not be a security risk depending on your threat model.) In your device's home directory will be a folder named "i2pd". Inside is the file tunnels.conf
. If your file manager has the option to manually open the file as text, use that and open it in your favorite text editor; otherwise temporarily rename the file to tunnels.txt
to edit it.
At the end of the file, add the following:
[server] type = http host = 127.0.0.1 port = 8888 keys = http.dat
Please note that port 8888 in this example is what ServeIt was running on. If yours is on a different port, then change the number in the above config accordingly.
If you renamed the file, change it back to tunnels.conf
. Go back to the i2pd app, press on the meatball menu and then "Reload tunnels", then "Open Web Console" and "I2P tunnels" to get the new URL of your eepsite.
There is a Yggdrasil app which I have successfully used to navigate Yggdrasil sites before on my main phone, but it continuously crashed on both my Moto X and Note 3. On my main phone (a Samsung Galaxy S9) it was hard to see the full IP address... and the request to ServeIt from a different device also running Yggdrasil on the same network (so autopeering would have occurred) timed out. As Yggdrasil runs on Linux by creating a new virtual network adapter so that it can coexist with an existing network stack (instead of using proxies for access like Tor) and none of my devices are rooted, it does not make sense to attempt to compile and run it in Termux or UserLAnd.
There exists a dump of Lokinet binaries, including APKs for Android, run by the developers... but I was immediately greeted with the following message:
Builds from this server may work, may fail, may wipe your hard drive without asking, and are entirely unsupported.
Being that Lokinet has a personal reputation of being clunky and inelegant at best and downright non-functional at usual, I did not go on with high expectations. My hopes were not bolstered by the fact that half of the Android binaries were named "anrdoid". Very classy. Truly the attention to detail I want to see in an anonymity network.
The Lokinet app white-screened and then crashed on the Moto X. It ran on the Note 3 (at least, it said it was running...?) but no pages loaded.
There is a version of Freenet mobile on F-Droid that I've found works wonderfully on my current phone. As it uses the same FProxy interface as the desktop version, everything works the same, from adding bookmarks to managing peered friends to browsing sites. Although the app ran on the Moto X, it hung at "Starting up". It also seemed to make Orbot in the background go berserk, constantly crashing and bringing itself back up again.
As for publishing, jSite, which I use to publish freesites on the desktop, is a no-go unless one wants to spend several hours setting up a Java runtime environment and an X server and a desktop environment in either Termux or AnLinux. While I could probably do this on my current phone with little issue using desktop mode and my wireless mouse and keyboard, for most of the Moto X's useful lifetime (the battery has been shot and nonfunctional for a few years now) I did not have even so much as a Bluetooth keyboard and was stuck to tapping on the screen.
The Freenet devs, however, have provided a simpler method of freesite publishing for those unable to access an X server. Run the following in Termux:
termux-setup-storage pkg install git python3 git clone https://github.com/freenet/pyFreenet cd pyFreenet
To upload a single file. run the following command: python ./fcpupload ~/storage/shared/path/to/file
(You can also just use the FProxy interface from a browser.)
To make an updatable freesite:
python ~/pyFreenet/freesitemgr add python ~/pyFreenet/freesitemgr listall python ~/pyFreenet/freesitemgr update NAME_OF_FREESITE
Please note that it may take a great while depending on the CPU speed of your phone, your internet speeds, and the size of the freesite.
There have been several ZeroNet apps for Android. The most feature-packed is ZeroNetX Mobile, which does not seem to be on F-Droid. Please keep in mind, however, that the latest public build as of writing is from December 2021. It hung on first start on my Moto X, but worked on the Note 3.
After the app downloads all assets, the UI should start in settings. Make sure to enable "Public DataFolder" and "Disable Battery Optimization".
After initialization and first start, go to ZeroHello and then open the left side menu. Wait for all zites to finish updating, then click the meatball menu by "Scribe" and then "Clone". If you're not good at HTML and want an in-browser editor and built-in comment support, you're done and can get to writing. If you want to drop your own HTML files into the zite, open your file manager and go to Android/Data/in.canews.zeronetmobile/files/ZITEHASHHERE
and edit/add/delete to your delight. (Just leave content.json
alone, as that contains some of your private keys.) Go back to your zite in whatever browser you're using and hit the "Sign & Publish new content" button. It may fail since the zite is new and has no seeders, but that can be fixed by sharing the zite URL with some others who may be interested in your content.
The official IPFS client requires Android 9.0 or newer, so it can't run on my Moto X. Termux to compile the CLI binary won't run on the Moto X either since it requires Android 7.0 or newer. I did not attempt to compile it in UserLAnd, and back in 2014 I wouldn't have known how to compile anything anyway. The IPFS app in my experience does not run well on any device and has issues with retrieving data, even from peers on the same network as it. (Plus the QR code scanner makes an annoying beep.)
To compile IPFS in Termux, run the following:
pkg install golang build-essential file git git clone https://github.com/ipfs/go-ipfs/ cd go-ipfs make build ./ipfs init --profile=lowpower
From there, all IPFS commands work as usual, but you must find a way to run the daemon in the background.
Gateway Browser, which attempted to be "Beaker Browser but for Android", was last updated a year ago, and the developer never provided any publically available binaries, testing or not. The repo was so large that I had issues downloading it from my home connection; I had to clone it on my VPS and then move the git tree elsewhere and download the other files through SFTP to reduce it from half a gigabyte to only a few megabytes.
The README's instructions to compile it were absolutely awful and vague. When I finally got npm
and Node.js working on my machine, I ran node ci
to install the dependencies for the app, and at the end I got:
76 vulnerabilities (2 low, 34 moderate, 24 high, 16 critical)
I love unmaintained software!!
The build failed. What did you expect from Node.js?
Hypercore, the protocol Beaker Browser started using once they abandoned Dat, apparently provides its own CLI... unsurprisingly also written in Node.js like so much other "next internet" garbage. This was slightly easier to install, although I don't see how my early-teenage self would have even known how to look for this.
UserLAnd failed every npm
command with "Illegal instruction". AnLinux in a Termux install got as far as running npm install -g @hyperspace/cli
before npm
crashed at the end with the message "Exit handler never called!"
Hosting on mobile comes with two obvious challenges:
Despite these challenges, the state of hosting one's content on darknets via Android is much more stable and accessible than it was several years ago. But many of these darknets still depend on being able to access the wider Internet to reach the servers responsible for controlling the darknet: Tor is heavily centralized in the sense that the network depends on the existence of a few consensus nodes, and the app used in the ZeroNet section of this post depends on Github to retrieve the Python 3 runtime and other dependencies, and Yggdrasil requires at least one public peer configured in order to talk to devices outside of the local network. As much as I dislike the state of ZeroNet's development, it would probably be the most functional in a situation where Internet access is limited and one only has an Android device and needs to share information, followed by Freenet.
As far as creating that information, whether webpages or books or other media? Well, that is a problem for a later post.
I have successfully managed to microwave my brain. Spending forty-plus hours squeezed into a single month on a project you wanted to make for several years and then getting into it and finding out it's just tedious data entry all the way down will do that to you. Doing not much of anything else, writing or making art or even going outside, has made me go animalistic and crazy to the tune of an oral fixation of gnawing on chunks of wood stolen from the organics waste bin at the side of the house. Not the greatest idea I've ever had. Hopefully "start working on a new book of poetry" will be a better one once the mental fog starts to lift. I hope this isn't what remote work will feel like once I do get a job.
Speaking of excessive technology use driving people batshit insane, I had a dream last night where a bunch of techbros had forced me to stand in front of a tribunal and explain why Let's Decentralize doesn't cover web3 projects. Neither my argument nor theirs made any sense, being a dream and all, but I remember "your shit is obtuse and doesn't make any sense to a layperson" not being taken for an answer. But since at least two people have emailed me asking if I could shill their crypto projects and the only response I've pulled out so far is "I don't do free labor", I decided that I would spend today (yesterday, if you're reading this on the day of publication) actually researching web3 so I can have an actual concrete argument when the tribunal does come.
Filecoin was the first web3 project that came to mind. I mean, it has the name "file" in it! So one would think that the whole point would be to host files online. And what is a website other than a pile of files?
Since I was already familiar with IPFS, which Filecoin is apparently built off of, I thought that setting up a Filecoin node would be as simple as compiling and installing the IPFS node is. Apparently not. The main website felt janky and broken with a "loading experience" spinner than just spun forever, and the homepage displayed little to no relevant information other than a glorified version of "we store files", which one could already guess from the name. Going to "Build" and then "View Filecoin storage tutorials" gave an IPFS resolving error. Digging on an external search engine turned up the GitHub for the Lotus daemon, which allows one to interact with the Filecoin blockchain, but the "getting started" documentation at the end of the page also 404ed with an IPFS error. Because what you truly want to see when researching if a new technology is trustworthy or not is to see it crashing and burning at every turn.
Strangely, a different link to the documentation was on the sidebar. "Surely we're getting somewhere," I wondered. "Not even figuring out IPNS took this long."
If the destination was "imagining myself slamming my fists into my keyboard", then sure, we got somewhere.
The Lotus daemon has absolutely ridiculous hardware requirements: it would cost more to acquire 128 GB of RAM and the energy to power that than I'd ever earn with Filecoin, assuming I was ever in it to earn anything and didn't just want another mirror for my website. Lite nodes are slightly better, but still way higher than anything I have: my VPS has only 8 GB, and my desktop has 16, and there's no way I'm running a bandwidth-intensive application like this from my home connection or paying more for a beefy VPS from Contabo when it would all just get sucked up by a single application. Besides, it wouldn't even work for long: the chain grows at approximately 38 GB every day. With the storage my current VPS has, I'd be out of disk space in four days!
What seems to be common for web3 projects is that, if one doesn't want to run a node or doesn't have the resources to do so, the only way to interact with the network is by interfacing with a third-party API, which kind of defeats the point of "decentralization" if my only method of access is forever mediated by someone else.
So Filecoin is out.
I did not go in with high hopes. My first introduction to Siacoin and its associated projects was a huge callout post warning about how shoddy and, as we zoomers say, "sus" the development team is. I strongly urge anyone considering going into web3 to read through that post, even if not going to Siacoin per se, since many of the arguments about monetization and faux-decentralization will carry over into anything web3-related.
Despite this, I was still willing to give Skynet a try. I mean, it bills itself as "a collection of cryptographic protocols for storing and retrieving data over the Internet." What is a website if not a collection of retrievable files over the Internet? Nothing in that definition explicitly excludes websites, even if web3 seems to be mainly comprised of a bunch of shoddy Node.js webapps.
This time, mainly due to the influence of the callout post, I went on a little tour of the community first before getting into the documentation. I wanted to test the waters, to see the typical userbase of Skynet, to judge the competence of those who I would be trusting with my data. After all, web3 has quite the reputation for scams and money laundering and general financial incompetence. Given that I am currently unemployed and dependent on the goodwill of my parents to have a roof over my head and food in my stomach, I don't exactly have the "disposable" income to be burning it for the purposes of playing with "magical Internet money".
I should have expected less than nothing.
One of the example apps is clearly written by competent developers I can trust with my private files. "Always make soure, you're logged in!" Yeah, I'll make "soure"... to stay away from cloud storage that's effectively a black box concerning where my sensitive data goes.
One of the top posts in the subreddit is a "meme" about a USB stick that uses Siacoin for umlimited storage. The "meme" (in quotes because the only humor value is in how half-baked the ideas within are) claims it would require "no installing" and "no need to understand crypto". Only about one or two commenters stopped sucking the OP off for long enough to realize that such a device would require a persistent Internet connection and enough crypto knowledge to get a Sia wallet set up to actually buy whatever storage space ends up getting used and also for drivers to be preinstalled on every operating system in existence in order to require no installation of additional software and to appear just like any other flash drive.
The rest of the subreddit is just the standard crypto whining about Binance/Coinbase trading and praising the main devs for the "new Internet" they have supposedly created.
So what if I want to actually access and host content on Skynet? You know, the reason we're here?
With IPFS, I just have a node on my computer running on localhost port 8082 (yours may differ) that exposes a web UI I can use to view and download content. My website is set up to use DNSLink, so you can just throw the regular domain into any IPFS portal, whether local or hosted by someone else. For people without domains, they can still use IPNS (which allows for updating content at the same hash), just by distributing the hash itself instead of linking it to a domain name. All of this can be done from a computer I already own that is powerful enough to run an IPFS node, which I've been able to successfully do from a toaster with 2 GB of RAM and a 100 GB hard drive shared among the whole operating system, far lower than the requirements for a Skynet portal.
Skynet also has portals, which allow for free viewing of content... but unlike IPFS, where I can just run ipfs add -r /path/to/content
and get a hash I can then throw into ipfs name publish MYEXTREMELYLONGHASHHERE
, the design of Siacoin mandates that one pays for the storage space one uses. Prices are set by each individual portal, but portals often offer an extremely restricted free tier, which just throws those without money back into the sharecropping paradigm. And if a portal goes down, both free and paid users lose control of all their data on said portal. One could run their own portal to avoid shutdowns, but that costs money beyond
the initial expense of the hardware and bandwidth and electricity to get a server in the first place.
Oopsies, looks like you need money to participate after all!
And also you apparently need a LastPass account. A centralized proprietary service to set up a decentralized Internet? (No, a CLI client does not count.) Sia is clearly run by clowns.
By this point I was ready for the post to be done. But still I persisted. Surely there must be something out there other than IPFS that won't demand access to my money?
Arweave seemed promising at first, but the second tab on their subreddit's header says "Get free tokens now", implying that tokens actually cost money. Under the tab next to it, "Technical", there is supposedly information about hosting content on the Arweave network, but it 404s.
After retrieving a saved copy of the deploy page from the Wayback Machine, I installed the NPM package used to deploy files... and failed, since the tool required a keyfile and, for whatever reason, that command wasn't listed first. After generating said keyfile, I tried again... and got an error about insufficient balance. As expected. But hey, at least I tried. And didn't have to buy a supercomputer to do so.
sudo npm uninstall -g arweave-deploy
, and into the trash bin it goes.
If the whole point of web3 is to decentralize everything, then I don't want to use third parties to host my website! I want to host my own stuff without needing a supercomputer or a persistent connection or static IP address!
As far as serverless hosting goes, we already have Freenet and the gazillion ZeroNet forks and whatever Beaker Browser is using nowadays and IPFS, the latter of which works just fine without the gazillion "blockchain domain" scams. In fact, since most of these web3 projects are built off IPFS anyway, why go through a middleman? Because these projects incentivize people to host your shit? If the content is popular enough, there doesn't need to be a profit motive for your content to stay alive and be well-propagated; it'll just happen naturally.
How are low-income and other disenfranchised people supposed to participate in web3 without just becoming sharecroppers all over again? With the profit motive, and since storage space is limited, nodes have an incentive to seed anything a wealthy person wants and give the leftover scraps of storage and bandwidth, if any are left, to the "free" users. If microtransactions are required to view anything, then how is a person with little to no "disposable" income supposed to discover new content they may like? (Of course, a counter-economy of non-commercial content sans paywalls may very well rise up in response.)
I say: let them. Let them lock down their works so tightly that they become utterly inaccessible. Let them miss out on the money they would have earned from now-disgruntled customers. Let the corporations destroy themselves in building a dam to maximize every dollar flowing to them only to find their river is drying up.
I wish that web3 evangelists would realize that the average layperson doesn't give a shit about decentralization in the computing sense. They don't care about making their files as accessible as possible, just to themselves. To them, Google Drive or OneDrive or whatever other cloud storage services are in vogue are plenty good enough for them. They would rather see ads and sharecrop on centralized social media platforms than open their wallets to pay for an inferior service. And of those with the technological expertise to operate one of these nodes if we really wanted to, well... I know that I wouldn't want to live in a world where every interaction with my fellow (physically) human beings is monetized. And I doubt that many others would either. If improving the Internet is the goal, especially on this increasingly fragile planet, replacing the current system with something functionally worse but multitudes more energy-intensive is not the solution.
It's almost midnight, and I've forgotten to take my melatonin and other medication and go to sleep in time to prevent the "sillies" from arriving and giving me the urge to make several ill-informed self-deprecative blog posts. I'm staring at my reflection in my ThinkPad's powered-off screen, lid tilted slightly downward otherwise so that I don't get distracted with my face while writing, obsessively pulling my hair clips out and then sliding them back in to try to keep my fringe in a vaguely straight line. I keep turning the fan on my desk on and off, rapidly oscillating between "I'm too warm to focus" and "the breeze is too much sensory stimulation to focus". My phone sits beside my computer, spamming requests to the DALL-E mini image generation tool as fast as my fingers can get past the incessant "too much traffic, try again later" errors. My half-wife glances at the screen every now and then from my bed, arms crossed, making sure I don't try to generate another silly prompt of her as, say, a catgirl. Because, as funny as it is to me, for some reason it bothers her immensely, and so I do my best to refrain.
"What if I," I wonder aloud, "checked in on a certain trashfire? Purely for something to do while I wait?"
I pull my phone closer and put the browser into split-screen mode so that I don't lose my generation progress from Android's trash collector closing my browser and open Tor Browser in the second half of the screen. I swipe to the side to see the logs as I always do. 11%, bootstrapping. 14%, bootstrapping.
Tor Browser crashes. And again, when I try to open it again. And again, and again, and again-
Jett places a hand on my shoulder. The other browser flashes, fullscreen now that its companion is gone. "Lysithea with a frying pan" is done cooking.
"I thought you said you weren't ever going to go back?"
I wince. "A cold war with a friend still feels like an open wound-"
"-and wounds generally don't heal if you keep picking at them, right?"
I eye the jagged rings around the base of her arms, imagine the soft faded curves under her nightshirt, the latter barely there anymore like a distant mostly-forgotten nightmare. "You're right. I'll find something else to distract myself."
So I pop "my bisexual half-wife" into DALL-E, ignoring Jett rolling her eyes in pretend aloofness, and open ZeroNet Preview in a different browser that doesn't crash so much in the bottom half of my phone screen. Unsurprisingly, neither the Dashboard page nor any of the zites are designed for such a tiny square, even when I attempt to force them to zoom out all the way. A teeny tiny jolt runs through me when I see the thread about my disappearance is back at the top of the list yet again.
"I don't know what you expected," Jett whispers. "Well, go on. Face the fire. I know the curiosity will kill you otherwise."
And so I trudge on.
I do not know if it is a running gag where this friend I will not name is seemingly unable to see my site despite it being accessible to (nearly) everyone else, but since you the reader have found your way here, likely you have seen the takedown notice on the front page of the clearnet version of this site. It clearly states that the other darknet addresses for this site are on Let's Decentralize. I know for a fact that the ones for the networks other than Tor are on there because I stumble over them every time I update the damn lists.
More importantly, someone was angry that I, upon realizing that not all of my deletion attempts for my zites had gone through, pulled out my old users.json
and site update script from the "purgatory" folder on my sneakernet drive and forcibly committed one more deletion to finish the job that I thought had happened a month or so ago. That it was a failing of a "censorship-resistant" network that I was able to erase my content so completely off of it by my own will.
"So," Jett interrupts, "what are you going to do?"
"The same response I have to every other problem in my life," I answer, the sillies taking over. "Do nothing and wait for it to get worse!"
She grabs the nearest pillow, wads it up, and screams into its fleshy mass.
(insert feminine urge meme here)
The favorite button on my keyboard is the delete button, backspace being a close runner-up. It's my domain, after all, my namesake river, forgetfulness. My inheritance as a small child, elementary school version of the Purity Spiral deleting as many of the shitty games made in online slideshows as I could in a single night, play-pretending that all the characters within were refugees moving somewhere safer or merely packing up and disappearing to a "time machine" without a trace. Later I would trawl through the preinstalled games on my grandmother's and my father's desktop computers, never touched for fear of embedded viruses despite being planted there by the manufacturer, and look at how the binary files displayed in Notepad before compulsively deleting as much as I could and watching the uninstallers choke afterwards.
With one press of a button, I can wash away a typo, a mistake made, a thing I regret saying. A hard drive is just a memory, after all, just a record. And a record can be changed. A record can be altered. A record can be forgotten.
Unless you're using a blockchain, that is, where every block is dependent on the existence and immutability of the blocks that came before. Or some other "censorship-resistant" network where content can only be written to a ledger, never edited or deleted.
One would think this an ideal solution for a social media site. If nothing can ever be deleted, nobody can really be censored, right? Nobody can be banned and memoryholed without a trace, here today, gone tomorrow? Nobody can be compelled to delete something offensive to a dominant group in society because deletions simply would not be possible. To remove the content would mean removing the whole network, a task simply not technologically feasible.
Back when I was on Twitter forever ago, I used to make fun of people who used third-party services to delete their old tweets after a set period of time. What was the point of following people not my friends if the short little posts I enjoyed enough to retweet would be gone eventually? What would be the point of making something enjoyable if it would inevitably disappear?
But now, over six years since Eternal Current Year, I know. I understand now.
TikTok social contagions. "Carrd"-style single-page websites meant to serve as a hub for one's other presences on the Internet when "link in bio" isn't enough, filled with long lists of any given minor's triggers and fears and enough personal information for any old predator to track them down or manipulate them. Twitter users telling lesbians to kill themselves for the crime of not being attracted to males, trans-identified or not. Off-color jokes socially acceptable years ago but abhorrent now. Confessions of sexuality or political affiliation safe now but illegal and worthy of incarceration or death under a repressive government in the future.
Typos.
Human beings change, and their opinions, their circumstances, their beliefs all change as well. What is safe today may be unsafe tomorrow, and not being able to delete something means forever having a target painted on one's back. What is funny today may be recognized as mean-spirited tomorrow, but without the ability to delete it, the wound remains forever open no matter how many apologies are issued.
I removed my zites from ZeroNet instead of just leaving them there when I decided to exit the network because I did not want to leave old data lying around. Since ZeroNet doesn't (currently) have document versions like Freenet does, I can be reasonably sure that my data has been removed from the nodes seeding my zites at the time that didn't have them "paused". Sure, it was all ever meant to be public anyway, and I can't do anything about people saving copies of my posts offline. But if I no longer believed in something and wanted it off public record, I didn't want an abandoned and out-of-date version of my site still declaring it for all perpetuity. (I also didn't want to leave future visitors hanging wondering why the zite seemed to be abandoned.)
Sure, if the Internet decides to remember something for all time, no amount of litigation in the world could remove it entirely. But the vast amount of "page not archived" errors I've ever gotten while searching for something in the Wayback Machine shows that "the internet never forgets" isn't necessarily true. Without the technological option of a delete button, embarrassing things like that old Twitter account of mine can't fade silently into the night, never to bother me again. Posts revealing intimate details of my life I no longer feel comfortable sharing would be available for any potential doxxer to exploit. They would stay around as long as the blockchain or website or whatever existed.
Maybe I, as an adult in a world where the delete key is still on my keyboard, can face the fire. But I watch the generations younger than me to whom "privacy" as a concept is nonexistent put their entire lives online with no filter or discretion, and I watch web3 and the blockchain-ization of everything demand a world where nothing can ever be taken back or rectified and all must be done in one's legal name, and I wonder if one day all that will be safe to do on the network is post recipes and pictures of flowers.
]]>