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.

Lol, I remember those.

hello @mattclarke nice post this ......my name is @darshil

Source
Spamming comments is frowned upon by the community. Continued comment spamming may result in action from the cheetah bot.

More Information:
The Art of Commenting
Comment Classifications

Steem really needs communities if we want large groups of like-minded people to use it. They want to gather around an interest and not necessarily a single account. As you say tags are easily abused. I won't be at Steemfest, but I'll tune in for the presentations.

Totally agree Steve. Feels like we might finally have something to allow Steem to start realising its fuull potential at last!

Whoot, yes and I love to run a community for a well known liquid you can drink.

Or better - extend the already existing community

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?

My guess is the hard part is validating the parent in combination with corner cases where the parent has been deleted and/or reversible.

Also, there’s complexity around allowing the two types to intermix. Normal comments replying to custom_json?

I don't think it would be possible for normal comments to reply to custom_json, at least without something quite convoluted, but that seems okay. If you want to make a normal comment you can go back to top level (or some higher level) to do it.

I think there might also be something for just deprecating normal comments altogether (if you want to contend for rewards, make a top level comment aka post). They have a high cost in terms of RCs/blockchain which seems perhaps just not worth it for the small number that get paid out and total payouts. Getting rid of all the comments would make posts significantly cheaper I think.

I wouldn’t want to see “full” comments deprecated. I think that would be negative toward multiple use cases, such as the increased engagement and reward mechanisms SteemPress is enabling on personal websites, or how it would cripple Quora style interfaces where answers and replies should be rewarded more than the top level question post.

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.

communities have no recognizable leadership structure

I’ve wondered about the overlap between Communities and SMT’s. For instance housing. How would it be determined who had the rights to issue a HOUSING token or have leadership of the HOUSING community? First come, first served? Stake-based proposal voting? Something else?

At MVP, both SMTs and communities rely on numerical identifiers.

But when it goes live and specific community names like FOOTBALL or SEX would be potentially lucrative real estate, who would get to claim them? Some random lucky first-come, first-served person? A dev who’d written a bot to claim them one second after Communities went live? Stake-based voting? Something else?

That they are numerical identifiers means that no one will be able to claim FOOTBALL or SEX or anything else. You receive a string of numbers which you can call whatever you want. They are not real estate in that you do not own the name space. All you own is a unique ID. What you own is the account that receives the unique ID.