[Steemit] The Decentralized Blockchain Access Application vs USENET

in steemit •  7 years ago 

Looking through the feeds of content looking for good stuff to stick right into my brain, I fell into @jesta's mention of the latest release of Vessel, but as importantly @lavater opened discussion of a decentralized application for interacting with the blockchain as a proper forum.

Which led to me feeling as if I need to tell a little story which has a significant point. Of sorts.

Gather round, the fire is warm as is the food.

So I'll begin…

Once upon a time, way back in what is now considered the prehistory of the Internet (circa 1988 or so), I was still in high school. I know that's hard to imagine, that civilization had even developed public education at that point, but I assure you it was true. In the Internet circa 1988 had no real web as you know it. The web had not been made capable of distributing cat pictures or porn easily.

In fact, the graphical user interface was still pretty much in its infancy. At least for home computer users, two things ruled the roost: DOS and early Linux. I mean early Linux, old-school Slackware.

Even back then I was a complete geek. My parents had scrimped and saved to get me a computer in the days when a 10 MB hard drive was an impressive thing to have. I'm pretty sure that the thing had fallen off the back of some business's truck given that the first thing that I found when I started poking around having had it in my possession for all of 20 minutes was some Lotus 1-2-3 spreadsheets… But I digress.

The important thing is that I had this computer, and I had a 1200 baud modem – and that opened up the entirety of the world to me. That was the tool. It wasn't long until I was co-sysop on a couple of nationwide BBSs, spent time arguing on FidoNet, and it wasn't long before I discovered that there was an entire even bigger, even better world out there

It was called USENET.

Back in the day, you could connect to university computer systems via dial-up, and if you are clever and understood how things worked you didn't actually need a login to get the system to perform some basic activities for you, including giving you access to Lynx, which you can think of as a precursor to modern web browsers if the web was made up of 80 column wide non-proportional font lines.

Frankly, it was awesome.

Once you could get into Lynx, you could go anywhere on the Internet that had telnet access – and lots of things had telnet access.

One of the most important things that you could get access to was USENET, which in modern parlance might actually be thought of as a vast, federated, message board forum with tight knit communities, really effective search, content sorting, properly indented threaded presentation, the ability to track content that was likely to be of interest to you, topic-based communities built in from the ground up – essentially everything that the last 10 years of social networks have been trying to re-implement from the ground up while pretending that USENET never existed.

Key to USENET was UUCP, the UNIX-to-UNIX copy. What started as just a way to copy files from one system to another effectively became a program that could keep a hierarchical file system in sync across an arbitrary number of computers connected asynchronously one to another, this being the era of dial-up and systems not being continuously online. Servers would have users which used front ends to read and present these hierarchical filesystems as messages with references to one another, subject lines, authors, and allow those users to write content, write responses, and interact with one another. Once or twice a day, the server would call another server up or down the map of all those involved that the server would keep in sync. It was usually only two or three others, who would talk to two or three more, who would talk to two or three more each, and so on.

Inhabitants of Steemit would probably think of this synchronized, asynchronous file hierarchy as a primitive blockchain. People who were involved with USENET think of the blockchain as a primitive USENET.

Eventually, as computers became cheaper and network access became easier to get, people like myself who had been accessing USENET through university computers instead realized that we could run Linux on our own boxes, find someone who would provide us a feed, and rather than deal with the threats and dangers of someone else running a server that you depend on – run our own as well as the front and software that translated this hierarchy of flat text files into a multithreaded, multi-community text messaging system.

Which effectively means that given nearly 30 years and continuous increases in Moore's Law, Steemit is almost ready to be as usable as USENET was in 1990 when I graduated high school.

One of the good things about the Steemit interface (and I'll bet you never expected to hear those words come out in that order) is that it presents comments in a properly threaded, indented way. How this is a thing that was lost from web communication for so long, I'll simply never know – but it is vital for actually being able to carry on a conversation with people rather than just a series of comments. It's one of the things that Steemit gets mostly right.

Another thing that @lavater says is absolutely unquestionably true runs so:

Steem really needs a decentralized application from which to post, comment , vote etc.
Even if text only that would be extremely useful.
Websites are centralized entities and can't be relied on.

These are all true points. To achieve what the developers of Steemit claim to want, there absolutely has to be a decentralized way to access the content of the blockchain, both for reading and writing. It's not really enough for the witnesses to essentially be decentralized storage nodes for the database because a devoted attacker only needs to disable a few front ends, as things currently stand, and the blockchain itself won't matter a bit. Right now you could drop a DDoS on three websites and nobody will be doing anything meaningful with the steem blockchain.

It doesn't matter how redundant your backend is if your front and doesn't work.

When USENET started moving from heavy, seriously multiuser computers as the core nodes from which people could communicate, to a more decentralized, more individualized access pattern, things became surprisingly much more robust for us independent users. We had already largely been synchronizing with the big servers and only occasionally horizontally because this was back in the day when most of the maps had to be designed by hand (and pathalias was eventually a godsend), but as it became easier to manage larger maps, they became deeper and had many more cross connections. When a machine two hops up the hierarchy went down and you couldn't connect to it, it didn't matter that much. You were already talking to other machines that were routing around that damage.

Not only were more people really able to access all the communities available, but they became more commonly and frequently available.

That's not to say that there was no lag between the time when a message was posted and the time you might receive it. Depending on where you were in the hierarchy, and how often the links you talked to pulled content, that could be anywhere from hours to days – but it would get there. And your response would get back.

(Unsurprisingly, the email system that you are quite familiar with the day was built on the same technology, with the same kind of routing. Except back then before DNS, you might have to address an email with what was known as a "bang path," where you specified all the nodes that the email would need to pass through and then the user on the last note where it was to be received. When guy@address became the norm because there were roadmaps being automatically generated from pathalias and DNS servers, we were all quite relieved.)

I would love to see a rebirth of many of the ideas which were pioneered by USENET back in the day on Steemit.

Communities were easy. We had "newsgroups." Essentially, there were two major hierarchies, the Big 8 which were centrally determined by some of the core servers, and the alt group – which pretty much anybody could create a newsgroup within and get conversation going inside, but would only be distributed as far as they could convince any of their neighbors to carry it.

These days there's no reason not to have as many Communities as anybody wants to have; we're not limited by worrying about the limitations of the file hierarchy (because every newsgroup was a literal file directory).

I really miss GNUS, which was my USENET reader of choice and ran inside of Emacs. Sure, it was an ancient 80 column character cell largely black and white interface – but because it was individualized to me, running under my account in Emacs, I could configure it to display the content within USENET in ways that were particular to my desires.

The key technology was the fact that the system had score files, which were basically just a series of regex, a straight up text matching engine which allowed you to give things that matched "the rule" a weight, positive or negative. (I simplify significantly here in terms of syntax, but the ideas are solid.)

Because all the metadata about a particular message was just as much simple text as the rest of the message, matching on metadata was pretty trivial.

Interested in a particular user's posts and would like things that they're involved in to float to the top?

"From: [email protected]" +100

Tired of reading about BattleTech and prefer to read other things first?

"Subject:.*BattleTech.*" -10

Want to read everything in a particular thread involving a post, absolutely first? Luckily for you, every single post had a unique hash identifier and one of the metadata fields was literally a list of all the IDs that were previously up a reply chain.

"ReplyIDs:.* abcde5775abde565 .*" +1000

Tired of that one jerk who never has anything good to say, and in fact you'd prefer never to see anything that he writes? Set a minimum score to view, say -5000, and plonk that guy good and hard in the head.

"From: [email protected]" -10000

Extra hard, just to be sure.

Because GNUS did good sorting, making good use of default orders (reverse chronological, by reply/threaded, etc.), the top layer could always be "additionally, sort by score" and everything just worked. And because scores were applied cumulatively (every rule was applied independently, both positively and negatively), in short order you built up a series of useful rules which made the presentation customized to your personal wants and desires.

All of that without any particular help from the underlying architecture of USENET. It could all be implemented on top of that decentralized, asynchronous text-based database.

It's possible that with the advent of decentralized standalone applications which can speak directly to the blockchain, we could see the flexibility of this kind of tool come into being and perhaps even work around some of the limitations that have been holding back Steemit from being a better social media network and set it up to better compete with the big players in the field by offering individualization and customization that they can't.

If @jesta hasn't been exposed to the ancient wonder that was USENET and the great tools we had to use in concert with it, I'd earnestly encourage it. There's a lot to learn from systems and interfaces that have worked.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Initially I was going to point out that it's mind numbingly easy to set up a condenser and then point your browser at it on your local machine to get to steem that way, but it doesn't incorporate any sort of fallback list of peers should the api it's pointing to by default not be available... and it would just be a stupid browser interface without any cool features like you mentioned.

I guess it's time I finally go see what Utopian has to see if anyone is already suggesting new clients like this.

I feel like @jesta is already halfway to implementing the core of a standalone blockchain client with Vessel, and some of the discussion around the tool has been making it a fullbore posting/voting tool, which is part of why it's interesting.

I'm sure that somebody on @Utopian-io is already talking about this kind of thing – or if they aren't, they've failed us as a people and as a group of developers. I can't think of any forum in history that didn't have someone agitating for a new interface within 15 minutes of any interface being accessible to human beings. That Steemit is such a crapshoot when it comes to social media interfaces suggests that a new interface that gave more power to individuals to access the content of the blockchain would be a very, very loud and very, very early suggestion to any developers who were talking about developing on the blockchain.

ChainBB at least brings the interface up to the visual standards of the mid-2000s. That's a pretty impressive start. We just need to go further.

The good ol' days 😉 Thanks for the trip down memory lane.

My pleasure.

I think I can count on the tentacles of one side the number of social media networks which have gotten threading "right." Just finding a system which actually present proper indentation and allows you to actually read a conversation either depth first or breadth first, drilling down to follow a single conversation or shifting across to another one which is attached to the same initial seed? Disappeared.

That's just one of the ancient technologies of the Internet which needs to be resurrected, dusted off, and put back out to work.

(At some point I'm going to have to see if the entirety of RFC 1036 can be implemented on top of an open ledger replacing a hierarchical file system. It should theoretically be doable since everything is relatively plain text and all the presentation is done on the front-end side. Which would be hilarious since with just a small application running as a connector you could run all of those late 80s newsreaders to interact with the blockchain.)

Apparently, I am perhaps 15-20 years older than you. I remember when Lotus 1-2-3 came out! And I definitely remember USENET and UUCP and all that good old stuff! And it is interesting how things come around again, in a bit of a reincarnated form, indeed! Thanks for sharing your thoughtful insight! 😊

I remember when Lotus 1-2-3 came out – but I certainly wasn't interested in it at that point. Little did I know that it was going to turn into a terrifying, all-consuming monster which every single person entering the technical and clerical job force needed to know. Intimately.

For about 10 years.

I wish things really were coming around again, but if I have to express some trepidation, it's that things aren't coming around again. That we shall never see it's like once more. I'd really like to. I miss that type of contextualized interaction.

(I can get the context on Google+ but I can't get the decent interface and focus on establishing and maintaining conversations, which I consider a bit of a fail.)

If we're very lucky someone will be inspired by stories of bygone eras, look at the technology that was available, boggle at the advanced ideas which are hidden inside, and leverage them into building an all-new even better system for us to enjoy. Let's hope for luck.

I shall keep my fingers crossed, for sure! 😊

Nice post

wow Very interesting Really beautiful work, ThankS you for sharing