Hive is the Minecraft of Blockchains

image.png

What does that even mean?

So, those of you not familiar with Minecraft, but are familiar with me, what is the correlation?

I like Ruby.

Minecraft has Redstone.

Redstone is Ruby.

Ok?


So, what's the deal with Redstone? In Minecraft, Redstone is a logic circuit for arbitrary applications. You can make anything with Redstone. One of the things that got me interested in Minecraft was that you could make anything with Redstone.

At first, I thought this was true but it wasn't true. There were certain limitations on Redstone. It turns out, what I thought was Minecraft Redstone was actually mods.

Mods are like forks of Minecraft with additional rules. They're fun. But not as interesting, to me. They call Mindcraft without mods Vanilla Minecraft.

But eventually, Vanilla Minecraft could accommodate these new things that would extend its ability. Eventually, with enough time and effort, you really could create anything in Vanilla Minecraft.


But Minecraft isn't Hive. Yeah, but it's like Hive. Minecraft wasn't even the first of its kind. Before Minecraft, there was Infiniminer:

Infiniminer is an open-source multi-player block-based sandbox building and digging game, inspired by the games Infinifrag, Team Fortress 2, and Motherload, in which the player plays as a miner searching for minerals by carving tunnels through procedurally generated block-based maps and building structures.

What's funny is that when Minecraft started to get popular, it already had Redstone. And Redstone was already Turing Complete, which means it could be used to create anything. But it was really hard to use. Only certain people could use it for anything. And the people who used it for that were real nerds.


But what makes Minecraft like Hive?

Well, there's custom_json in Hive. I guess it's like Redstone, in a way. With custom_json, you can archive any arbitrary data you want, up to a certain limit. Once it's included in the blockchain, you can access the data without having to worry about it being suppressed by a third party.

Getting access to the data isn't particularly user-friendly (requires nerds). You have to remember the transaction id and/or the block number. So it's not like a database where all you have to do is issue a SELECT statement.

In fact, if you don't keep track of the index, you will have a hard time finding the data later on. This is another reason why it's like Minecraft. The innovation comes with a cost.

"I stored something in Block No. 33890433. Great. All I need to do is remember that block."

Not particularly useful for arbitrary applications. But it is possible to rebuild your application state if you know how to.

So how do you re-built your application state? Well, you could request each and every block, and then look for your data in those blocks. For millions of blocks. Possible. Not really user-friendly.

Do you have to request each block? Well, no. You could request the account history of the account that produced the data. Using account history allows you to skip the blocks that have nothing to do with your application.

The problem with requesting account history is that now you are relying upon someone to index the data for you (a third party). Or you have to index it yourself. Not only that, but you also have to know about all of the accounts that are involved in your application. This might work out for you, depending on your application needs. If you are in control of all of those accounts, there's no problem. But if you are not in control of all those accounts, then you have to find the accounts.

That's where things get more tricky, as you go. It just mushrooms from there, if your application is popular (and scalable). You may as well just read all of the blocks and look for your data, regardless of which account broadcasted it.

Whatever your method is, you also have to also contend with error management. If someone broadcasts data to the blockchain, but that data is incorrect, what do you do with the error?

Do you report the error to the blockchain or somewhere else? Like a side-chain?


It's really not all that complicated. That's why people have built second-layer solutions like Hive Engine and whatever @blocktrades team is working on to solve these issues.

These are not trivial problems. But they are not complicated either. They are problems that can be solved without having to rely upon complicated smart contracts like Ethereum.

And that's the point. Hive already supports the task of storing arbitrary data, with limitations.

If you can deal with these limitations, you can write applications that are censorship-resistant. Enjoy.

Start here, nerd: https://developers.hive.io/

H2
H3
H4
3 columns
2 columns
1 column
11 Comments
Ecency