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:  
There are 2 pages
Pages

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.

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.

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.

Okay, thanks.

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

-@IsThatArt

👍👍👍
~Smartsteem Curation Team

Kya baat hai sir,marketing ho to aise.

It's the lesser talked about but to me probably most exciting upcoming change :-) Can't wait to see more social features and changes in the way we can explore/find content <3 Thanks for working on this and sharing this interview with us!

awesome
just loved this

worth reading (Y)

Generoso es de su parte, e interesante propuesta ya que incentiva a otros a sumergirse en el mundo de los desarrolladores de programas, felicidades a los compañeros: @quochuy y @eonwarped .

I think this interview helped provide a better understanding of both Hivemind, and Hive Communities.

Will the subreddit style landing page be implemented the day of roll-out?

Excellent post and good job @quochuy & @eonwarped.

I'm glad you two are developing for the Steem Blockchain 😀

Excellent post!!!

Posted using Partiko iOS

Wow! That was really awesome

This is amazing news. I'm so waiting for this

We also want to thank @jarvie who suggested we leverage this feature in his comment on our last post.

Interesting and entertaining interview. And glad to hear that "The Steemit Team" also pay attention (every) now and then, to what members of this community suggest & propose thru comments once in a while on their posts. }:)

Es bueno que se este haciendo cosas nuevas para mejora Steemr. Sigan así. Saludos

Great thought. Looking for somothing more about hivemind project.
Thanks for sharing.

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.
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....( i liked your pust)

I'm very excited about this feature but I hope SMT comes to us soon also

Yes, hivemind enables many new possibilities. Great interview!

I've been requesting a subreddit-like feature since mid-2016. I've grown old waiting for it, but it's still my most anticipated feature on Steem. Hope to use it out soon-ish.

More communicate bring more people 🤙🏽

Posted using Partiko iOS

So will the Steem Engine tribes morph into communities? Otherwise I don't see how this is going to bring people together and not splinter them apart. Nice interview and I'm glad to see so much gong on behind the scenes.

Hive Communities is an open protocol built on an open-source framework, which makes it easier to leverage from many UIs. We already have some splintering but this design will promote unification if it's successful.

great I understand very .. great work .. thank you upvote just

Yeah

Posted using Partiko iOS

I am new here and this article was very interesting. I am excited to explore and figure out how to fit myself in here and contribute to the community. I will start using this platform to document the creation of a video game in relation to digital twins.

I am open to advise and suggestions from anyone.

Thank you for such a great post @andrarchy and @roadscape

Congratulations @steem.marketing! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

Your post got the highest payout on one day

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

SteemitBoard supports the SteemFest⁴ Travel Reimbursement Fund.
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

This is very exciting and it's great to see that it has been approached in the right way by building a solid foundation that developers can build upon.

I am looking forward to using this to integration our independent music platform into the Steem chain.

Excellent

Posted using Partiko Android

Upvoted and resteemed. 👍

So, am I understanding this correctly? Hivemind will provide a framework to build communities? Are these communities similar to how Reddit is structured?

Will these be built within steemit.com? Or are these individual communities to be built on their own domains with their own servers?

I'm a bit confused on how this will function. And also, this is all written in Python and thus Python can be used to build these communities? If so, I'm in! I love Python haha.

The communities engine is build on Hivemind, and yes they are similar to reddit. They will live on steemit.com.

Verry nice and like this is steem. Me go hold to all my steem. Good friends

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?

The MVP of Communities uses numerical identifiers which means that no one will be able to claim the "HOUSING" community. You receive a string of numbers which you can call whatever you want. All you own is a unique ID. What you own is the Steem account that receives the unique ID.

Okay. So similar to having several accounts that might have the same display name even though they have different @accountnames

"Without a reasonable user experience, onboarding the masses is futile. "

100%

It was so cool!!!

Quick question: https://beta.steemit.com is prompting for login, but not taking my private posting key as password.

Is this intentional? Or should I be able to access the beta site right now?

@roadscape
I've been reading the github about communities in Steem, but I just didn't like the way they will work.
The biggest problem I see is that only posts will be able to appear in the community if users post from there or tag.
This affects both the community and the user:
1- Community:
a) any publication will appear (if the community is free to publish) and the community cannot easily filter the content
b) you cannot "grab" posts to your community that are not made from it
2- Users
It limits the possible gains of the user, since he has to decide to which community he wants to "bet", that is very risky, another community may be interested in his publication but in that he is rejected.

My idea is the following:
In steemit there would be the option of "grabbing the publication" would be like a re-steem style, and add it to the community.
At that time the community would be granting the right to profit from its token and the user would obtain "surprise" tokens.

This solves the 2 above mentioned problems, you give the community complete freedom that it wants to appear in it and you give unlimited possibilities to users who make good content.

I know that several projects are interested in the options you give, but I think it would be good to add this option when making the community

Hi @loreennaa, communities can filter posts easily by "muting" them. With regards to "cross-posting" into multiple communities, this is something that will be possible with a future version. The goal for the initial protocol was to keep it as simple as possible. This is to prevent launch delays as well as to give us time to collect feedback without being locked into a sub-optimal approach.

Hi, In that future version will the user have to choose the different communities where he wants his post, or can the communities attract the user's post to his community?

Anyone could 'cross-post' into a community, similar to reblogging.

Very much looking forward to communities and agree that they will play a crucial role in content discovery and platform engagement.

Quoc and Eon definitely deserve recognition for their contributions.

There are 2 pages
Pages