Hive is the Minecraft of Blockchains

in #hive3 years ago

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/

Sort:  

Before reading this beautiful article of yours I would never have juxtaposed Hive with Minecraft.
By the way I'm not very technically proficient and I really appreciated the way you explained technical mechanisms in a very understandable and explanatory way.
Hive Engine was a great second tier solution but in your opinion does Hive need SMT? Will we see them implemented?
!BEER
!PIZZA

I don't think we need SMTs. Yes, the code is finished. Although I have some confidence in the original implementation, I am not a C++ expert, so my confidence isn't based on direct code review. It's based on the original team who worked on it.

The blockchain itself has evolved a little since SMT was first designed. The evolution of the chain has probably not been drastic enough to fully invalidate the SMT code, but I would be hesitant to just implement it, at this point.

In fact, I can believe that SMT is dead unless there's someone with enthusiasm and expertise to shepherd it, now. It can happen only if there's someone like that to take the reigns.

If not, I would like to see the SMT code fully excised from the master branch.

The SMT code wasn't finished. I agree, we were told it was (or at least, almost all of us misunderstood what we were told), but the reality is that substantial portions still needed to be written and more importantly, tested. If you reach out privately to one of the Steem devs, I suspect they will tell you the same thing.

Thanks for your answer and yes I agree with your consideration:

I can believe that SMT is dead unless there's someone with enthusiasm and expertise to shepherd it, now. It can happen only if there's someone like that to take the reigns.

!BEER

Sorry, out of BEER, please retry later...

Connect

Trade


@inertia! I sent you a slice of $PIZZA on behalf of @libertycrypto27.

Learn more about $PIZZA Token at hive.pizza (1/10)

Sorry, out of BEER, please retry later...

Sorry, out of BEER, please retry later...

Minecraft like Hive the best 👌. You writed it very simple the language thet ivent I understand . And the things you show what is the same in them was very good one's. I like your article very much. It was very nice time to rided. Good 👍 work. Keep it up.

The most creative thing I built invoking Redstones was a lighthouse that pulsed at night.

Congratulations @inertia! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :

You received more than 35000 HP as payout for your posts and comments.
Your next payout target is 36000 HP.
The unit is Hive Power equivalent because your rewards can be split into HP and HBD

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

Feedback from the July 1st Hive Power Up Day - ATH Volume record!