New to Busy?

Introducing a public Hivemind node

43 comments

emrebeyler
73
7 months agoBusy3 min read

Hivemind:

Hive is a "consensus interpretation" layer for the Steem blockchain, maintaining the state of social features such as post feeds, follows, and communities. Written in Python, it synchronizes an SQL database with chain state, providing developers with a more flexible/extensible alternative to the raw steemd API. source

It also defines a specification to handle community actions with custom_json operations. However, the communities part is not there, yet.

Since api.steemit.com migrates some of the endpoints to a Hivemind node, I wanted to learn more about the project, and it's capabilities. Moreover, as a witness, I wanted to test it.

That being said, after a one-week sync process, my hivemind instance is up to date and ready to use. It's accessible at hivemind.emrebeyler.me.

condenser_api endpoints

The following endpoints belongs to condenser_api endpoints.

condenser_api.get_followers
condenser_api.get_following
condenser_api.get_follow_count

condenser_api.get_content
condenser_api.get_content_replies

condenser_api.get_state

condenser_api.get_trending_tags

condenser_api.get_discussions_by_trending
condenser_api.get_discussions_by_hot
condenser_api.get_discussions_by_promoted
condenser_api.get_discussions_by_created

condenser_api.get_discussions_by_blog
condenser_api.get_discussions_by_feed
condenser_api.get_discussions_by_comments
condenser_api.get_replies_by_last_update

Every method has its own signature. It's always best to see the source code to find out which kind of arguments you need to pass.

All of these endpoints are basically replaces the steemd's follow and tag plugin queries. Instead of directly querying the blockchain, hivemind queries its internal database.

hive endpoints

In addition to condenser_api namespace, there are a couple of extra endpoints can be used. (These are subject to change in the future considering the project is alpha.)

hive.db_head_state
hive.payouts_total
hive.payouts_last_24h
hive.get_accounts
hive.get_accounts_ac

Note: hive.payouts_total and hive.payouts_last_24h endpoints are disabled on my node. These SQL queries takes a long time to complete and since the current database driver of Hivemind is blocking, it makes the server process unresponsive. Therefore, they're disabled.

Disclaimer

This node is in public use for the hobbyist developers. Hivemind itself is on the alpha state and may not be production ready.

However, if you're a developer and want to try Hivemind, or if you want to hack a Hivemind client in your programming language of choice, you can use hivemind.emrebeyler.me for testing purposes.

Example calls

Get followers of 'emrebeyler'

curl -s --data '{"jsonrpc":"2.0", "method":"condenser_api.get_followers", "params":["emrebeyler", null, "blog", 10], "id":1}' https://hivemind.emrebeyler.me

Get the head state of the db

 curl -s --data '{"jsonrpc":"2.0", "method":"hive.db_head_state", "params":[], "id":1}' https://hivemind.emrebeyler.me

Health Page

Vote for me as a witness

I do my best to support the blockchain with my skills. If you like what I do, consider casting a vote on via Steemconnect or on steemit.com.

Comments

Sort byBest