We have a problem - 6 October 2020 - 14:00 UTC

in #hivevote2 months ago (edited)

hivevote-problem.jpg

The Problem

New hard fork 24 is a bit breaking for https://hive.vote. We use hive RPC nodes for hive.vote to get the accounts, votes, and posts with the minimum latency. In v1.24.2 (new version of hived) all the votes and posts moved to the hivemind. Since we need the votes and posts, the only available option is to set up our private hivemind. But hivemind is a big database of ~600GB data which takes a few days to fully sync on a fast storage machine.

Available Options

We can set up our hivemind instance and get the data we need. But we at https://hive.vote, don't need all of that data from hivemind. Actually, we only need the posts and votes from the past 7 days. So, the only option I can think of is, building our own database structure which is optimized for fast writes and reads and takes way less time to fully sync (I'd guess less than 30 minutes).

The Best Option

So, I will start building this new database structure and will share it with the community. I believe there are already a few projects like this but I'm sure those will require modifications and that requires reviewing all the code which takes time. And we are short on the time.

So let's build our own structure which will open up the opportunity to add more features to the website.

Of course, if you think you have the solution to our problem or can help us in any way, please comment below.

Maintenance

As I said, hf24 will break https://hive.vote. So we have to turn off all the services on 6 October until the new back-end product is ready.

I'm not sure how long it will take, but I will do my best to bring it back as soon as possible.

It seems an easy job but "don't judge a book by its cover". I'm sure it will beat me up.

On a side note: The time for hf24 may change again (unlikely but possible), so the maintenance time may change based on that.


Donations

Any amount of donations are much appreciated. https://hive.vote is free because of your kind supports.

Don't hesitate to leave your suggestions/feedback in the comments.

Thanks for your kindness ❤,
@mahdiyari

Sort:  

It’s too bad that the hardfork will break hive.vote. You seem to have a good plan to fix it so that is a good thing.

Hello,

Trying to create a downvote trail u fails with the message, "Bad Request"

What can I have done wrong, there is only input for the description

image.png

That error message should be improved. For creating a downvote trail you need at least 1k HP in your account.

Oh, it must be your own HP. Or a delegation is enough.

And what happens if HP falls again afterwards. We then switched off the tail

Total HP (own or delegation, doesn't matter)
It's just a one-time check on the trail creation.

In v1.24.2 (new version of hived) all the votes and posts moved to the hivemind.

What is the hivemind? Will the hive RPC nodes stop accepting broadcasts?

hivemind is a database for the social aspect of the hive. It basically keeps post content, vote data, etc. It is a database that is easier to maintain and work with data.
RPC nodes accept the broadcast and will accept it after hf24 too. Now you can't get post content with API call from the hived node. Public RPC nodes like anyx.io run hived+hivemind behind jussi to redirect all the api calls to the correct place.

e.g. condenser_api.get_content requires hivemind.

you lost me at hivemind LOL

tenor.gif

Thank you very much for the explanation.

Just to understand how it all works, couldn't you run hive.vote on the anyx node without having your own?

Just to understand how it all works, couldn't you run hive.vote on the anyx node without having your own?

Hi,
The load on hive.vote is too much to use a public node. It crashed some public nodes in the past (3 years ago). Sometimes we need to get +1000 API calls in less than a second. The local node + database is our best option.

I believe every major app should have it's own RPC node and don't depend on the public nodes.

Dear @mahdiyari, thank you for the simple and effective explanation! 🙏


!tip !BEER and a huge hug! 🤗
👍 !ENGAGE 30


Hey @mahdiyari, here is a little bit of BEER from @amico for you. Enjoy it!

Learn how to earn FREE BEER each day by staking your BEER.

Thank you for your engagement on this post, you have recieved ENGAGE tokens.


Hey @mahdiyari, here is a little bit of BEER from @amico for you. Enjoy it!

Learn how to earn FREE BEER each day by staking your BEER.


Hey @mahdiyari, here is a little bit of BEER from @amico for you. Enjoy it!

Learn how to earn FREE BEER each day by staking your BEER.

Dear @mahdiyari, thank you for the simple and effective explanation! 🙏


!tip !BEER and a huge hug! 🤗
👍 !ENGAGE 30


Hey @mahdiyari, here is a little bit of BEER from @amico for you. Enjoy it!

Learn how to earn FREE BEER each day by staking your BEER.

Thanks for the answer.

I believe every major app should have it's own RPC node and don't depend on the public nodes.

Definitely agree with this.

Good luck on the decision to build hive.vote's own database structure. I'm sure it will do good things for you going forward.

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

Your post has been really appreciated and was the most upvoted of the day

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

Do not miss the last post from @hivebuzz:

Feedback from the October 1st Hive Power Up Day
Hive Power Up Day - Introducing the Power Up Helper!

Good luck brother

This data base structure sounds a little like a server is needed. Using a server sounds like defeating the purpose of blockchain. Please correct me if I'm wrong and explain to me so I better understand.

A server that can be built by anyone. There is no centralization.

Well,

I looked this up...

RPC
Stands for "Remote Procedure Call." Most computer programs run procedures, or sets of instructions, using the computer's CPU. In other words, the instructions are processed locally on the same computer that the software is running from. Remote procedure calls, however, run procedures on other machines or devices connected to a network


Source


But then I'd have to keep looking more definitions up, and probably get confused and have to start all over.

OR I can trust your opinion and ability; looking at what you've done so far... transparency of the Blockchain etc... Appreciate your time taken to explain things my friend.

We trust that you will find the best way to resolve the issue and fix Hive soon.