I am trying to learn about Hive Engine and Hive apps, but it is not intuitive

in HiveDevs3 years ago

I know hive works by, basically, storing JSON objects, and even front ends are just fancy apps that interpret those JSON objects. Hive itself is a JSON interpreter that interprets, for exemple, HBD and Hive transactions.

I also know Hive Engine is trying to build a logic/application layer on top of Hive, that means, another way to interpret the JSON objects that are posted.

I am a JavaScript/Solidity developer, but with experience at higher level dapps (that means I am a dumb developer that only knows how to drive on a paved road). As someone that came from Ethereum, it is a bit uncomfortable to work with Hive. Ethereum has a plethora of tools for developers, but on Hive not so much (yet, I am studying and working here exactly beacause THERE IS POTENTIAL).

Because Hive stores sequential JSON objects it is very common to have "dapps" over here that are actually not decentralized. Anyone can spin up a server and put it to interpret the JSON objects coming from the Hive blockchain, and then, apply the logic themselves on their side of the server, and from that, post new JSON objects on the blockchain that only their server is supposed to interpret. If your server goes down, your application stops, it just stops as you had the only server running it, you could share and get other people to run the code with you, but then you would come into the byzantine fault (while EOS, Tron, ETH, Matic, BSC, etc... have everyone running the same thing at all times and solved the byzantine issue)

Hive Engine, is going on a good path and I believe in it's future, but I must admit I am a bit disappointed that you can only run custom code by contacting the devs and them allowing your code, that is, nothing can be arbitrarily built and ran.

However, as it is stated on their FAQ, they do plan to allow arbitrary code to be executed eventually. As an app developer, I do hope this eventually come sooner than later.

If I were to change something, I would change VM2 (JavaScript virtual environment) to the EVM (Ethereum Virtual Machine) or a Tendermint core, but I am not a protocol/consensus developer (I did apply for a scholarship Ethereum was giving, but many other devs were running, no response so far....)

I will try to get more acquainted with the platform on the following weeks.

Hive has potential, it was one of the first PoS networks, even EOS was built by the same people copying our PoS, but we must stay competitive somehow.

Steem is slowly integrating with Tron, and Tron allows arbitrary code execution. I am not a core dev, but as an app dev and a user, I worry that we have to play catchup with them.

Does anyone reading this have good content explaining Hive-Engine and Hive smart contracts? Yes, I did read their Github and their FAQ, but still, I will take some time of testing and some money spent on "hello world" contracts to learn.

hope.cleaned.jpg

For now, if you want to help with descentralization, you can:

  • Run your own IPFS nodes to host your conent from DTube and 3Speak
  • Run your own Hive-Engine nodes, and run your witness node
  • Run your full Hive witness
    (ordered form easiest to hardest, running a witness take A LOT of patience... I just broke my block log accidentally and I am replaying it again... it is very annoying...)

PS: Once I finish replaying the blockchain on my witness node I will put my block logs file for download, so me and other people can save time syncing our blockchains in the future.

Talking about replaying, huge shoutout and thank you for @someguy123 and his Hive in a box, make sit easy to spin up a witness node.

Click here and vote me for witness on HiveSigner

Or use your preferred signing tool to vote me:


https://vote.hive.uno/@igormuba

Sort:  

Parabéns pela iniciativa! Talvez seja o primeiro e único brasileiro a se aventurar em programar aqui no Hive blockchain. Não sou desenvolvedor mas se precisar de qq ajuda em design, comunicação e redes sociais é só avisar. Saúde, sucesso e boa sorte mais uma vez!

Olá, não sei se ajuda mas tenho anotado alguns links sobre o Hive Engine que guardei para um eventual verbete no Hive.wiki. Seguem alguns exemplos:

Se precisar, a lista completa está em: https://www.hive.wiki/index.php?title=Talk:Hive_Engine
ATenho uma lista de links anotada no wiki Steem.center antes do hardfork tb: https://www.steem.center/index.php?title=Talk:Steem_Engine

Espero que ajude. Qq comentário, dúvida, crítica ou sugestão continuo a disposição.
Saúde, sucesso e boa sorte mais uma vez!

Muito bom, salvarei e lerei, qualquer coisa de informação já ajuda no meu novo projeto, muito obrigado!

it's great do you try to learn something about hive engine and hive apps.

You mentioned unknown points. Thank you for writing such informative articles.

i'm also learning about it but it's hard for me to fully understand

I read your post. Thanks for that little bit of info. I also clicked on the vote but not sure if anything happened. If my vote did not go through please let me know and what to do

@gerber & @rishi556 may be better to ask then my answer here.. but I'd start with looking at

https://github.com/harpagon210/hivesmartcontracts
And the old docs https://github.com/harpagon210/steemsmartcontracts

Have you looked at https://github.com/hive-engine/nitrous? It is the source code for proofofbrain.io and it interacts with Hive-Engine. You could learn somethings about Hive-Engine interfaces with token contracts there. You could also learn from the source code of proofofbrain.org in the POB-vision branch. https://github.com/steemfiles/ecency-vision/tree/POB-vision. Because the later is typescript the structures that Hive-Engine are coded in by me instead of having to guess from usage like you do with Nitrous. Nitrous is much more complete in terms of Hive-Engine interaction though.

Unfortunately, they did not copy the RPC interface of Hive in custom JSONs in Hive-Engine. That just seemed like such an obvious best way to go for developer friendliness, I was surprised to find it was otherwise.