Hive Communities: An Interview w/Steemit's Senior Product Engineer

in #hive5 years ago (edited)

hive communities road thumb.jpg

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:

  1. tags have no quality standards, nor consensus on how to enforce them
  2. community leaders have little recourse against spam or low-value posts
  3. communities have no recognizable leadership structure (at least in any sort of standardized way)
  4. communities have no way to brand themselves, e.g. by featuring posts, or highlighting specific users
  5. 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

Sort:  

woot roadscape is alive

when?

Next month

The test net at least. Official release is supposedly coming in tge next Hard Fork in late Q1 to early Q2.

Posted using Partiko Android

Incorrect, you must be thinking of Smart Media Tokens. Communities are a second layer solution and therefore do not require either a testnet or a Hardfork. Communities features should begin rolling out as early as next month. Because they do not require a hardfork we will be rolling them out as they are ready, so once you begin seeing those features that only means that the process of releasing Communities has begun, not that it is over.

Oh, I didn't realize that! Can't wait for content discovery getting easier! Thanks for correcting me.

I'm looking forwards to seeing Communities released. This should give some new energy to Steem.

I was wondering if Hivemind could give us the ability to enable some kind of anonymous or non-steem social commenting. Whenever someone share their Steem blog posts to other social platforms, the audience from those platform might want to interact with the author and leave a comment but they currently can't unless they sign up but they might not want to or it takes too long to on board and by the time it's successful they might forget about why they signed up. With Google/FB/Twitter authentication and allowing those to leave comments we might be able to attract some external users.

One of the nice-to-haves for hivemind is comments via custom_json -- these would not be threaded, nor would they collect payouts. They would use far less RC than normal comments, so it makes them useful for smaller accounts, but they could also be leveraged by UIs to allow for 'guest' comments. The UI would still need to reasonably limit spam, but there would be less at stake in terms of resource abuse.

Why is it hard to make them threaded? Seems pretty easy to let them specify a parent, no?

The only hard part about threading 'lite' comments is a stable parent reference, but we could use the first 8-10 bits of the tx hash for this purpose. The main reason I suggested non-threaded was for simplicity. It may or may not make sense to bundle these with votes (i.e. a comment with a up/down vote) or reactions, and nesting them makes less sense in that case.

Couldn't the commenter include their own unique permlink-like tag in the json, pretty much the same as a regular consensus comment? The only real difference is tracking it in hivemind rather than steemd. You can't enforce that people put in properly-formatted json, but if they don't you can ignore it.

Yes, the only concern is that with this approach hivemind would have to track uniqueness of permlink/id's, and create/track a valid/invalid state on each. This opens up more edge cases and would make it harder to reimplement the protocol. Trx hashes are already unique, indexed, and part of core consensus, which makes them attractive to leverage.

I don't believe you need to actually store or track invalid state, just check that each custom_json is valid when processed. If the custom_json creates an invalid state (for example, presents a non-unique tag), the custom_json is invalid and is ignored. This is the usual method for doing any sort of embedded consensus, which is effectively what this is.

In fact, now that I think about it, non-unique might be considered as valid, since referencing an existing id could be an edit, if the rules mirror those for comment ops. In that case, there would be no invalid (non-unique) ids.

That's what I thought of, but as you said the spam contents would be more and thus the account which will be guest posting can face the consequences.

What I think is that you can make a db over steen where you can keep the user info and comments. Now it will help you to do the spam filtering as well as a normal account can post it on the user's behalf.

should make it more accessible but just like SMT's were possible from the very start using condenser in whatever way you want to translate that back-end , so were communities , heh ... not that it's not a good thing that it becomes accessible to les tek-leveled heads but it has always been there, #musing #steemstem ... to name but two, they didnt have to wait , they just built one :D
more options = mo' better though, always ... if you can just get rid of downvoting and inflation completely it might yet stick around to see me grow old :p

Excelente entrevista, sería un gran beneficio para millones de personas llegar a comprender claramente este concepto . Estoy de acuerdo creo que steemit llegará a influenciar a la comunidad mundial mucho más aún.

@steem.marketing,
Interesting, let's see how things align with current updates of Steemit Inc.
$trdo

Cheers~

Sorry, @theguruasia you’ve reach daily limit of 10 successful TRDO calls!
Please try again tomorrow!

"Call TRDO, Your Comment Worth Something!"

To view or trade TRDO go to steem-engine.com
Join TRDO Discord Channel or Join TRDO Web Site

Great News, we are all very excited to see what the new community feature will bring for the future.
Also great move that you are sharing your post rewards with users who contributed to this project. Overall, I see much more improvement in your communication with the Steem Userbase which is awesome.
Keep up the great work!

Posted using Partiko Android

I’m so looking forward to communities and having the opportunity to chat with Roadscape on his visions of what Steem is, and what it can be.. I think it’s going to be a game changer.

Great interview, keep them coming.

If youre into art and music and stuff I got you covered!*

-@IsThatArt

👍👍👍
~Smartsteem Curation Team

Kya baat hai sir,marketing ho to aise.

Coin Marketplace

STEEM 0.19
TRX 0.19
JST 0.033
BTC 89422.61
ETH 3034.11
USDT 1.00
SBD 2.80