Hive Communities: An Interview w/Steemit's Senior Product Engineer
Hello Steemians, we’ve been doing a lot of video interviews recently (you can see the last one here), but today we wanted to try something different with our Senior Product Engineer, @roadscape. What follows is a text-based interview between @roadscape and our Head of Communications, @andrarchy.
@andrarchy: You’ve been working on Hive Communities for a long time. Why do you think they’re important for Steem?
@roadscape: Content discovery and the ability for users to organize go hand-in-hand. Without the ability to organize, groups are working against the grain. Without content discovery, curation is more difficult than it needs to be. This leads to automation but the data is still noisy. Hive Communities will allow us to completely reimagine how we use the platform, and give everyone a voice.
@andrarchy: Do you think that the impact of Communities on Steem will reach beyond the walls of the Steem ecosystem and impact the broader world?
@roadscape: Yes, but first things first. Hive Communities is progress towards revealing the power of the Steem blockchain, which is still mostly unrealized. Nobody has seen yet what that looks like. I’m cautiously optimistic, but this project has been something I’ve felt was deeply important and I’m excited to finally bring the concept to fruition.
@andrarchy: Our mission is to onboard the masses to blockchain, how do you think Hive Communities will help us achieve that mission?
@roadscape: Without a reasonable user experience, onboarding the masses is futile. Hive communities eliminate many of the pain points that have made our existing communities difficult to scale. The current challenges in organizing communities on Steem include:
- tags have no quality standards, nor consensus on how to enforce them
- community leaders have little recourse against spam or low-value posts
- communities have no recognizable leadership structure (at least in any sort of standardized way)
- communities have no way to brand themselves, e.g. by featuring posts, or highlighting specific users
- votes control post visibility (as opposed to just payout), so discussions are susceptible to drive-by flag wars
It's easy to solve this using private implementations of communities as people have been doing, but this leads to the fragmentation of what should be a common/open framework of organization. (Assuming most everyone's needs are met.) Hive Communities is an open protocol that will address these issues.
@andrarchy: Steemit.com hasn’t changed much since it was launched, how will Hive Communities impact the user experience and the user interface on steemit.com?
@roadscape: The initial rollout won't appear to be a drastic change; there is a minor restructuring of the UI, as well as a new notifications page. However, the expectation is that Community-led change will begin to take root and create an experience that is driven by all Steemians. This is a platform that developers can use for new projects, and that non-developers can use to simply have a more focused and navigable experience. Not to mention, it will be easier to identify and deal with spammers and bots. The initial roll out will be a rough proof of concept, but I’m confident users will quickly see how powerfully it could improve our user experience.
@andrarchy: The reason why we’re referring to it as “Hive Communities” is because we are talking about a feature set that is built using a piece of software you developed called “Hivemind.” Could you explain why it was necessary to build Hivemind before building Communities?
@roadscape: In layman’s terms, Hivemind provides a framework which is easier to develop and faster to iterate on; it bridges the gap between frontend and backend. Hivemind basically just stores posts in a traditional database, is written in Python, and allows you to process arbitrary events. Although Communities (or the hivemind daemon itself) could have been written as a
steemd plugin (in C++), leveraging standard web technologies makes development more flexible and accessible.
@andrarchy: Hivemind isn’t just limited to Communities-related features. From the sound of it, Hivemind can support a seemingly infinite number of feature sets. It almost turns Steem into a smart contracts platform, except without a lot of the downsides. Is that right?
@roadscape: Yes, Hivemind can do an infinite number of things. However, it’s important to keep in mind that Hivemind is geared toward social applications. Certain trade-offs were made that are important for developers to understand. For instance, hivemind trades consistency for speed and simplicity. To be as consistent as the blockchain itself would essentially require you to re-implement steemd in Python. Currently it is not equipped to robustly handle forks, thus, it is not ideal for wallets or financial transactions. For instance, to avoid inconsistencies due to forks, you could follow the last irreversible block, but then the data would all be a minute old. Alternatively, you could implement an undo database, though this would decrease capacity and make the system more complex.
I am excited to share specific ideas that harness the potential I see for Hive Communities with Steemians at Steemfest in November. I don’t like to talk things up before they are delivered, but I have faith that once this rolls out, it will speak for itself.
End of Interview
We hope this interview helped provide a better understanding of both Hivemind, and Hive Communities. If there is something else you’d like to know about Communities or Hivemind, please let us know in the comment section below.
MVPs of The Week: @quochuy & @eonwarped
Speaking of Communities, we wanted to highlight two community developers who have been generously volunteering their time to help bring Hive Communities to life: @quochuy and @eonwarped. As a special "thank you" we decided to use the beneficiaries features recently added to steemit.com to make them the beneficiaries of this post. Both will be receiving 50% of all the STEEM paid out to this post, totaling 100% of the rewards. We also want to thank @jarvie who suggested we leverage this feature in his comment on our last post.
The Steemit Team