What is Hive reputation and how does it work?

in #steemit7 years ago (edited)

All you wanted to know about reputation

A lot of users found themselves confused about what reputation is, how it is computed, how it changes, and which effect it has on what, ...

I have compiled here all the information I found about reputation and tried to make it easier for everyone to understand how it works on Hive.

What is the reputation for?

The reputation has two roles:

  1. It is an indicator that shows how “trusted or appreciated by the community” you are.
  2. It is a tool that prevents users with a low reputation to harm other users.

How it works

Reputation points are calculated using the mathematical function Log base 10.
Here is a representation of this function. (note for the purists: I know the X-axis scale is not correct for reputation. I made it as is for simplicity)

As you can see, is it very easy to raise your reputation at the beginning, but the higher your reputation, the harder it is to increase it. In fact, each time you want to increase your reputation by 1 point, it is ten times harder!

The main effect is that a reputation of 60 is 10 times stronger than a reputation of 59.
It is the same for a negative reputation. A reputation of -8 is 10 times weaker than a reputation of -7.

People with a low reputation cannot harm the reputation of someone with a strong reputation.

This explains why creating a bot that systematically flags other posts is useless unless the bot has a high reputation, something that will be hard to achieve for a “flag bot”. In no time, the bot’s reputation will be ruined and it will become harmless.

There is no lower or upper limit to reputation.

About Reward Shares

Before continuing to see how reputation points are “computed”, you need to understand the concept of “Reward Shares“

When you vote for a post or comment, you tell the system to take some money (the reward) from the Global Reward Pool and give 50% of this reward to the author (the author reward) and to share the remaining 50% of the reward between the people that voted for the post (the curation reward).

The more votes for the post from people with high voting power, the higher both rewards will be.

But the curation reward is not distributed equally among all voters.
Depending on the timing of your vote, the voting power you have and how much you allocated to your vote (percentage gauge), you will get a tiny part of the pie or a bigger one.
The size of your part is called the reward share

Here is an example of the distribution of the reward share on a comment:

You see that despite all users casting a vote with full power (100%), they have different Reward Shares.

OK, now, let's go back to the reputation. All you have to do is to keep in mind this Reward Share value exists.

How reputation is “computed”

Each time someone votes for a post or a comment, the vote can have an impact on the author's reputation, depending on:

  • the reputation of the voter
  • the Reward Share of the voter

Let's have a look at the code that is executed each time you vote for something.
You can find it on Gitlab here

 const auto& cv_idx = db.get_index< comment_vote_index >().indices().get< by_comment_voter >();
 auto cv = cv_idx.find( boost::make_tuple( comment.id, db.get_account( op.voter ).id ) );

 const auto& rep_idx = db.get_index< reputation_index >().indices().get< by_account >();
 auto voter_rep = rep_idx.find( op.voter );
 auto author_rep = rep_idx.find( op.author );

 // Rules are a plugin, do not effect consensus, and are subject to change.
 // Rule #1: Must have non-negative reputation to effect another user's reputation
 if( voter_rep != rep_idx.end() && voter_rep->reputation < 0 ) return;

 if( author_rep == rep_idx.end() )
 {
 // Rule #2: If you are down voting another user, you must have more reputation than them to impact their reputation
 // User rep is 0, so requires voter having positive rep
 if( cv->rshares < 0 && !( voter_rep != rep_idx.end() && voter_rep->reputation > 0 )) return;

 db.create< reputation_object >( [&]( reputation_object& r )
 {
    r.account = op.author;
    r.reputation = ( cv->rshares >> 6 ); // Shift away precision from vests. It is noise
 });
 }
 else
 {
 // Rule #2: If you are down voting another user, you must have more reputation than them to impact their reputation
 if( cv->rshares < 0 && !( voter_rep != rep_idx.end() && voter_rep->reputation > author_rep->reputation ) ) return;

 db.modify( *author_rep, [&]( reputation_object& r )
 {
    r.reputation += ( cv->rshares >> 6 ); // Shift away precision from vests. It is noise
 });
}



Here you are. Everything you ever wanted to know is defined in those 33 lines of code.
Now that you have read them, isn’t it clear to you?

baby.computer.confused.png

If you feel like this, don’t worry. I will help you to translate it to a human-understandable language.

 auto cv = cv_idx.find( boost::make_tuple( comment.id, db.get_account( op.voter ).id ) );

Out of all votes, get the vote info of the voter (you)

auto voter_rep = rep_idx.find( op.voter );
auto author_rep = rep_idx.find( op.author );

Get the reputation of the voter (you)
Get the reputation of the author of the post or comment

 // Rule #1: Must have non-negative reputation to effect another user's reputation
 if( voter_rep != rep_idx.end() && voter_rep->reputation < 0 ) return;

Self-documented, if you have a negative reputation, the process stops.
You have no influence on others’ reputations.

if( author_rep == rep_idx.end() )

The process checks the existing reputation of the author

  • Case 1: the author has no reputation yet
    // Rule #2: If you are down voting another user, you must have more reputation than them to impact their reputation
    // User rep is 0, so requires voter having positive rep
    if( cv->rshares < 0 && !( voter_rep != rep_idx.end() && voter_rep->reputation > 0 )) return;

Self-documented, if your vote is negative and your reputation is not positive, the process stop.

    db.create< reputation_object >( [&]( reputation_object& r )

The reputation of the author is initialized, then ...

    r.reputation = ( cv->rshares >> 6 ); // Shift away precision from vests. It is noise

Your Reward Share becomes the new author's reputation.

  • Case 2: the author has some reputation, and the process is pretty similar ...
    // Rule #2: If you are down voting another user, you must have more reputation than them to impact their reputation
    if( cv->rshares < 0 && !( voter_rep != rep_idx.end() && voter_rep->reputation > author_rep->reputation ) ) return;

Self-documented, if your vote is negative and your reputation is not greater than the author’s reputation, the process stop.

    db.modify( *author_rep, [&]( reputation_object& r )

The process will modify the existing author's reputation

    r.reputation += ( cv->rshares >> 6 ); // Shift away precision from vests. It is noise

Your Reward Share is added to the author’s reputation.

That’s it. Easy and simple.

Finally, the reputation is simply a VERY BIG number that contains the sum of all the Reward Shares of every vote associated with your posts and comments.
If someone unvotes your post, his Reward Shares get deduced and your reputation is lowered.
If your post or comment gets flagged, the Reward Share is deduced and your reputation is diminished.

To display it as a human readable number , you can use the following formula:

max(log10(abs(reputation))-9,0)*((reputation>= 0)?1:-1)*9+25

How to raise your reputation

The best way to increase your reputation is to get votes from people with a positive reputation and, even better, with a lot of voting power.

To achieve this goal:

  • publish quality posts. Forget quantity, it's about quality!
  • take part in the discussions (you can get extra rewards and reputation points for your comments)
  • vote carefully (do not vote for crap posts, vote for appropriate content and authors)
  • increase the number of followers and build your following list

Conclusion

I hope you now better understand how reputation works and how to build it.

Remember, reputation is a key factor that reflects how you behave and how the members of the community evaluate your work.

As in real life, having a high level of reputation is hard work and the long run.
And as in real life, ruining it can be very fast. Then it will be even harder to rebuild.

If you aim at a top reputation, focus on quality and on a constructive attitude.

Thanks for reading!


Check out my apps and services


Vote for me as a witness

Sort:  
There are 2 pages
Pages

hey nice! he does deserve that tip 😅😂

Wow that's very kind of you @tipu!

He deserves more than though 😉 this boy helps out build moral to all steemit users. I have been following him since my 2ndweek on steemit. I wish I am rich and I can probably build a community for him so people help him with his work.

@arcange just hang on and keep tight. You will shine in the near future.

🇵🇭 purepinay

Finally a simlplifed code reader! I like the way you explianed thanks! 👍💪

👍👏

Super helpful! I've been curious about reputation and what it mean/how it worked since I returned from my many months long hiatus and found that I suddenly had a one! LOL! Thanks for putting this out there !

Thank you for putting it in Layman terms for us @arcange! I'm still not entirely convinced I deserve to have the reputation I do at this point, but computers always compute things correctly right?

This was a terrific run down, I was looking for something like it just last night, so very timely for me! Thank You!!

:-) I was sitting yesterday with a friend of mine who has same reputation as you with less than 20 posts but a few got some serious whale upvotes, i guess that speeds things up seriously :-)
Did you maybe had a few posts like that?

I had a story curated by @curie that went to trending and paid out at $140, that was a lot of it. I have a meme paying out at $115 tomorrow, so yeah, couple of one offs.

I'm not saying I'm not happy to have the Steem coming in, very appreciative of that, but I feel like I am still too new to this game to be over 50.

I would love to know how much these big payouts bumped your rep. I'm more on the hunt for sp, but rep and sp are tied together so I guess I want both :)

yeah I am not sure how it all works. it has something to do with the rep of the people who upvote you too. The higher their rep the more it bumps you or something.

I just post what I post. Some gets traction, some wallows. I'll just keep on keeping on. haha

Oh! I had not heard about the rep of your upvoter as an aspect of this before.

I'm an accountant and researcher, so I can't stand it when I don't understand things. Steemit pushes my buttons all day long :)

Very interesting article some made sense but some was a little hard to understand, cheers mike

Excellent post, arcange! I've been meaning to dive into the code at some point to better understand how reputation scores change over time, and you've done the work for me. :) Resteeming.

tip! 5 link

Thank you for your comment. Really appreciatef from a fellow dev and witness =)

Thank you for explaining all that stuff in details. I have a better understanding of how the reputation works now!

Resteemed and voted.

Thank you @techybear! Make a good post and raise that rep ;)

Just an idea:

On the Steemit Board, lets say once someone hits a reputation of 50 then maybe you could unlock the "personal" section, so that it can be filled in by the user.

What do you think?

I always come back to this post to try and understand how reputation works, i still don't get it though....

This is an eye opener, this explains why @cheetah does not flag.

This explains why creating a bot that systematically flags other posts is useless, unless the bot has a high reputation, something that will be hard to achieve for a “flag bot”. In no time, the bot’s reputation will be ruined and it will become harmless.

@cheetah has actually a reputation of 70, which is quite high.
As most plagiarists have a low reputation (it's quite rare a high rep user doing plagiarism), it could flag them. And the effect would be real.

It doesn't, except when a user is banned, because its creator bet on education rather than punishment.

What a helpful post. Thank you. I have been apprehensive to flag a post for fear of retaliation. This explanation has helped ease some of those fears.
I would never flag someone for what I call trivial things like, opposing views or something one might deem offensive, none of that is any concern of mine. I'm more of a live and let live or a whatever floats your boat kinda person.
What I will flag, is someone out right stealing another's work and trying to pass it off as their own. I've run across this twice so far. I commented and asked for clarification first. It still amazes me that in this digital age folks think they won't get caught.

Thank you for this helpful information. I blew out my steem for voting, but I did vote for you are a witness. Good luck in getting it - the little I know tells me it is a lot of work.

I found this post on twitter today - steemit is blowing up those tweeps!

Thank you so much for your support. Really appreciated!

Nicely explained! I have been trying to get my head around this for a while now. So the amount of Steem Power you have has nothing to do with your reputation??

So the amount of Steem Power you have has nothing to do with your reputation??

Exact, you can be a whale with tons of SP you bought on the market, but have a reputation of 25 if you never posted, and therefore didn't get any upvote.

3 good examples are the @steemit, @freedom and @steem accounts. These are the topmost SP holders and their reputation is respectively 35, 25 and 25.

Thanks for this break down, it was an eye opener. My votes might not be worth much but I'm giving you my hundred percent upvote and a resteem.

Thanks for your support!

Thanks for making this extremely interesting post (: I was always wondering why some people "shoot up" reputation-wise, even from the introduce yourself post! Very interesting that it gets exponentially harder to proceed.

I have a somewhat unrelated question though...
How do you make such an awesome Banner for at the bottom of your posts? I get that the icons are from steemitboard, but how do you integrate them in a line like that, and also clickable?

Where is the "down vote"? And how do you know when you are getting down voted? I only see the Up vote.

Good explanation @arcange... I had guessed a similar thing (without reading the code)... there should be a way for judging the “content” also for reputation, otherwise you would see the gap widening between quality and reputation,
Thanks

Great post, very informative! Upvoted and resteemed. This is great for noobs or people that still don't know the finer workings of steemit like me. Thanks for this.

Thank you! I frequently check my steemitboard. I've been at reputation score 47 for awhile and definitely want to achieve a higher score. Thanks again!

This was awesome!! It's really interesting each point is 10x higher or lower then the other one...

Be cool... It's all about bringing a good attitude! Peace

May I translate your post for RU community?

Unfortunately, no. I already made the translation and will post it later.
Anyway, thanks for asking before. Really appreciated.

For sure, I cannot translate any post/article without a permission

This post was super helpful. I just started today and I think I have a grasp on how this system works now. Thank you.

Thanks it's been a while I was wondering how the reputation works. I am not into coding but how you explain it is nicely done.

Now I understand after reading some part of your posting. That is so infornative, this is what I have been looking for. Many thanks @arcange

As you can see, is it very easy to raise your reputation at the beginning, but the higher your reputation, the harder it is to increase it. In fact, each time you want to increase your reputation of 1 point, it is ten times harder!

The main effect is that a reputation of 60 is 10 times stronger than the reputation of 59.
It is the same for a negative reputation. A reputation of -8 is 10 times weaker than the reputation of -7.

People with a low reputation cannot harm the reputation of someone with a strong reputation.

This explains why creating a bot that systematically flags other posts is useless, unless the bot has a high reputation, something that will be hard to achieve for a “flag bot”. In no time, the bot’s reputation will be ruined and it will become harmless.

There is no lower or upper limit to reputation.

Thanks for this excelente explanation - helps a lot :-)

very helpful thank you

Excellent post @arcange! I've been missing this exact information, thanks so much for sharing! I'm sure this post is very helpful for all newbies on steemit, upvoted and resteemed.

I'm sure this post is very helpful for all newbies

I guess some Steemit's oldies will also learn a bit ;)

Thanks for your support!

Yea, Im sure they do, good point. Cheers! Have a great weekend!

Thanks for the explanation, is clear a little bit more on subject!

Thanks @arcange for reputable educational advice. I shall try to follow your articles.

Thanks for the graphical representation of the calculation.
As you said it becomes harder as your reputation grows.

As you can see, is it very easy to raise your reputation at the beginning, but the higher your reputation, the harder it is to increase it. In fact, each time you want to increase your reputation of 1 point, it is ten times harder!

I was wondering why my reputation has stuck at 48 for almost a week!
It is good you have given a great explanation here.

Aaaaah finaly some clarity! Thanks for the post.

Aaaaah finaly some clarity

And God said, “Let there be light,” and there was light (genesis 1:3)

Nice post

Our main destination should be always oriented in quality development. This post make me understand this important point. So thanks a lot to grow our reputation in this field. Expecting more advice later also..have a nice time ahead.

Thanks! I've seen people's reputations go up 5 points from a single person's upvote. They were in their 20-30's though, not higher of course. I need to be more careful what I upvote. It is not always easy to maintain your power and use it wisely.

Yep, one vote from a whale with full power can be a tremendous booster!

Thanks @arcange, that was some really cool information. You elaborated first on the curation rewards, would love to see the code behind that 1 day, especially how the timing factor influences the reward share. It is still not clear to me whether it makes sense to vote after 30 minutes. Thanks!

I will try to make your wish happens ...

I understood each and everything except for the coding stuff. Learning the web development nowadays and soon I will be able to write it as well. Thanks for the share.

Very detailed and wonderful read. Keep sharing useful content like this. UPVOTED!! It would be great, if you can follow me.

I think I understood it??? but I'll read it again.

Excellent post.. Thanks for the break down. I learned something new today. Thanks!! Keep On Steemin On!!

This is really well done .. resteeming for others to see.

Thank you

Hello!!!
Welcome to steemit.com I am @palmidrummer . Steemit community has the power to change our life if we simply upvote and follow each other. I joined steemit for a cause of helping my students.
Please follow and upvote me ( @palmidrummer )and I will do the same for you.
Thankyou, and please chek me previous post......

Hello, I am following you @doloresreyes

Oh Dear arcange now I know there are Bots creeping around voting, what use are my little votes with comments? One must live down the disappointment (that it's all fair game) and just carry on as usual. I'll say it again, long term gain, good comments and good posts! JV

Great post, but I'm not that sure about rule 2. Seems if someone with rep 60 downvotes someone with rep 70 it shouldn't just be ignored.

I know people have to get a lot of upvotes to get to 70, but do they then become untouchable?

I would like upvote your post, but my vote power is to low :( But I FOLLOW you and RESTEEM! Thank you very much for very informative post. And thank you for explanation.

Thanks for your support

I thought that it was SP that controlled how much influence a vote has, not reputation. Isn't reputation just an indicator of what others think of you? I didn't think it affected anything apart from your posts becoming hidden when it is really low. I have suggested that reputation should affect how much you can post and vote. That would limit the spam people could post.

I actually never took the time to investigate what is behind the reputation system and you basically did it for me here. Thanks! :)

Je suis ravi d'avoir pu satisfaire votre curiosité à ce sujet.

Le vouvoiement fait mal... aie! ;)

Wonderfully Explained

Thank You :)

That 59 going to 60 Reputation example was bang on for me :D

Very informative and made it better to understand. Thank you.

There are 2 pages
Pages