Hive - Is It The Best We Can Get?
A couple of weeks ago I wrote about what I think the perfect crypto platform would be. I mentioned a few projects I like that come close in some aspects. Then a few days ago I wrote about Nimiq to give more detail. Then I talked about Xaya. Next I mostly ranted about Nano. Then came my clueless evaluation of EOS. IOTA was next. Then I talked a bit about a custom platform idea yesterday. And to round out this series and have one final thought purge, today I'm going to talk Hive!
If you are here already you probably know a bit about Hive. Maybe more than I do. It started out as Steem. Some drama happened (it is kind of taboo to talk about around here for some!) We ended up getting a better version of Steem off the fork called Hive! Even though the two platforms both still exist, it seems all (or at least almost all) the dev power moved over to Hive. Almost exclusively (I think some still work on things for both.) If you want more detail on the feud and falling out it is not too difficult to find and I was not around for it so I'm not going to talk much more about that. I will say when I started, I was doing both. At this point Steem is practically a dead platform. There was next to no interaction. The apps/interfaces are miles behind. There are more downvote bots than anything as far as I could tell. I have no clue how it has stayed ahead of Hive in ranking and price this long. Though it looks like Hive has caught up finally (one spot behind and about 3 cents less. Almost there!) Hive seems to have a future, Steem not so much.
For those following along you'd know I put Hive as the front runner (around 70%) for any apps/games I plan to develop. But I also mentioned it is not perfect. I also already wrote a review of the platform as a whole a few months ago so I'll probably reiterate some of those points but mostly try to talk about more dev centric things.
The first thing that puts Hive above the others is ability to earn. It is the most unique feature I've seen. The fact that Hive is built up as a social network means anyone can jump in and start earning the currencies on the platform. I haven't looked close enough to really see how this works or if it will last forever but there is something to be said for a platform that a new person can contribute and earn on without having to know how to use an exchange. Granted, this does nothing directly for my own apps/games but as a feature of the blockchain it gives new users a chance to earn, not buy.
Being feeless is also a big plus. I have talked about how I think future platforms must be feeless and most of the platforms on my list are feeless. Admittedly I don't know where Hive's feeless protections stand against the others. Nano suffered a huge spam attack and has recovered, I think their tech is the furthest along in that area. Iota has used a central server temporarily to stop this kind (and other kids) of attacks. I'm not real sure what Hive has in place for this. Though I feel like I can trust the team behind it to be paying attention and be ready for this kind of stuff. So even though I don't personally know where it stands for some reason I'm willing to put faith in the team.
There is also already a second layer, Hive Engine and Tribaldex seem to make it super easy to create tokens and NFTs. This being already developed and in production in many ways is pretty huge. I suspect a big reason a lot of existing dapps chose Ethereum or Tron or other older solutions was mostly because they existed, production ready. Only a couple of the others on my list have this kind of functionality and I think only one has it functional. So Hive has a pretty big advantage here with a functioning layer 2 smart contract system in place.
Another interesting thing is public APIs exist. You'd be surprised how many platforms basically require you to run a node of your own to build apps. Granted, if you want to grow a large user base you may want to run a node (or more than one.) But for developers just getting started, having public nodes is pretty awesome.
I'm sure I haven't even mentioned everything that is cool about Hive development. Probably because I don't know enough yet but also maybe because I forget things! 😅
It all sounds pretty good right? So what's not perfect about it?
Honestly, I have to get a little nit-picky to really make it not perfect. One of the first things is the consensus I believe is DPoS. Which is probably the best option overall but IMO it kind of sacrifices decentralization. I don't know what the better answer will be but I think eventually it will surface.
Some of the things I've mentioned as positives also have some drawbacks. I love the ability to earn on posts. And for the most part it works well. I don't much like the lopsided voting power. I get the system, HP translates to more voting power. And that makes sense. I've just seen quite a few drama-backed downvoting or bot based downvoting that has wiped out people's earnings. Often with no reason. And it doesn't take much. A post could have hundreds of likes and a single botted downvote drop the earnings to 0. This could and probably will get worse the more popular Hive gets.
So the first thing I plan to do when I finally get to the point of implementing Hive into one of my projects is create a Haxe or Nim client library. If unfamiliar, both of these languages are able to compile down to C libraries. Haxe is a lot like Java, which I'm very familiar with, and is the language of the Heaps game engine. Nim is a lot like Python, also pretty familiar with it. I do know some C as well but I often get lost in pointer-hell, though I am not completely ruling it out either. Using Haxe would give me the advantage of high level languages with the ability to compile to C but if I have a hard time making it portable, I'd be willing to go back to pure C. Having a C client would then open up things like Unreal Engine plugins or native Android/iOS apps. It can even be used in web through Web Assembly. Most languages have some sort of capability to wrap C libraries, so it could also be used as a basis for other languages, Java, C#, etc...
If I ever get to that point, I'll definitely be sharing progress and have a public repo.
I've mentioned my game. But I also have other app ideas I'd like to pursue eventually too. So having a common client library and being familiar with the calls in whatever I build will eventually be super helpful I think.
I don't really want to talk about all my app ideas just yet. I'm not one of those people that are afraid of getting them stolen if I mention them, but I'd rather at least have a fully coherent idea of what I'm doing with them before I start talking about it. But you'll see me posting about them more eventually!
Until then. I need to get back to the game. I've really been neglecting it lately. 😅