Всё, что вы хотели знать о репутации
Многие пользователи до конца не понимают, что такое репутация, как она рассчитывается, как она меняется, какой эффект и на что она оказывает и т.д. …
Здесь я собрал всю информацию о репутации, какую смог найти, и попытался в легкой для понимания форме объяснить как она работает на Голосе.
Для чего нужна репутация?
У репутации есть две функции:
- Она является индикатором, показывающим насколько вы “заслуживаете доверия и ценимы в сообществе”.
- Она - инструмент, предотвращающий причинение вреда пользователями с низкой репутацией всем остальным.
Как она работает
Пункты репутации рассчитываются с помощью математической функции Log по основанию 10.
Вот пример такой функции. (Придирчивым на заметку: я знаю, что масштаб по оси Х для репутации неправильный. Я сделал его таким для упрощения.)
Как видите, поднять уровень вашей репутации поначалу легко, но чем выше он становится, тем сложнее становится его повысить. Фактически, каждый раз, когда вы хотите повысить свою репутацию на один пункт, сделать это в десять раз сложнее !
Эффективно это проявляется в том, что репутация в 60 пунктов в 10 раз сильнее репутации в 59 пунктов.
То же самое актуально и для отрицательной репутации. Репутация в -8 пунктов в 10 раз слабее репутации в -7.
Люди с низкой репутацией не способны причинить вреда людям с высокой репутацией.
Это объясняет, почему создавать бота, который бы систематически флаговал чужие посты, бесполезно, если только бот не обладает высокой репутацией, что вобщем-то труднодостижимо для “флаг бота”. Репутация бота будет очень быстро испорчена, и он станет безвреден.
Нижний предел репутации -8.
Верхнего же предела не существует.
О Reward Shares (Долях Вознаграждения)
Прежде чем продолжить читать о том, как “вычисляются” пункты репутации, вам нужно понять концепт “Reward Shares” (Долей Вознаграждения).
Когда вы голосуете за пост или комментарий, вы говорите системе, что нужно взять деньги (вознаграждение) из Общего Пула Вознаграждений и выдать 75% этого вознаграждения автору (авторское вознаграждение), а оставшиеся 25% распределить между людьми, которые проголосовали за этот пост (кураторское вознаграждение).
Чем больше голосов от людей с большой силой голоса получил пост, тем выше будут оба вида вознаграждения.
Но кураторское вознаграждение распределяется между всеми проголосовавшими не поровну.
В зависимости от того, когда именно вы проголосовали, какой силой голоса вы обладаете и сколько процентов ее вы вложили в этот голос (процентная шкала), вы получите большую или меньшую часть пирога.
Размер вашей части и называется доля вознаграждения .
Вот пример распределения долей вознаграждения за комментарий:
Вы можете видеть, что несмотря на то, что все пользователи проголосовали с полной силой (100%), они получили различные Reward Shares (Доли Вознаграждения).
Окей, теперь вернемся к репутации. Все, что вам нужно иметь в виду, это существование тех самых Долей Вознаграждения.
Как “вычисляется” репутация
Каждый раз, когда пост или комментарий получает голос, этот голос влияет на репутацию автора, в зависимости от:
- репутации голосовавшего
- Reward Share (Доли вознаграждения) голосовавшего
Давайте посмотрим на код, который выполняется каждый раз, когда вы за что-то голосуете.
Вы можете найти его на github здесь
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
});
}
Вот и оно. Всё, что вы хотели знать, размещается в этих 33 строках кода. Теперь, когда вы его прочитали, всё стало понятнее, не так ли?
Если вы испытываете схожие чувства, не переживайте. Я помогу вам и переведу всё это на понятный человеческий язык.
auto cv = cv_idx.find( boost::make_tuple( comment.id, db.get_account( op.voter ).id ) );
Из всех голосов получить информацию о голосовавшем (о вас)
auto voter_rep = rep_idx.find( op.voter );
auto author_rep = rep_idx.find( op.author );
Узнать репутацию голосовавшего (вас)
Узнать репутацию автора поста или комментария
// 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() )
Процесс проверки текущей репутации автора
- Случай 1: у автора еще нет никакой репутации
// 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.reputation = ( cv->rshares >> 6 ); // Shift away precision from vests. It is noise
Ваша Reward Share (Доля Вознаграждения) становится новой репутацией автора.
- Случай 2: у автора имеется некая репутация, процесс почти такой же ...
// 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
Ваша Reward Share (Доля Вознаграждения) добавлена к репутации автора.
Вот и всё. Легко и просто.
И наконец, репутация - это просто ОЧЕНЬ БОЛЬШОЕ число, которое содержит в себе сумму всех Reward Share (Долей Вознаграждения) за каждый голос, полученный вашими постами и комментариями.
Если кто-то отменил своё голосование за ваш пост, то его Доля Вознаграждения будет вычтена и ваша репутация снизится.
Если ваш пост или комментарий получил флаг, Доля Вознаграждения будет вычтена и ваша репутация ухудшится.
Вот пример с моей репутации. вы можете проверить его здесь. Посмотрите в конце первого блока слева
Чтобы увидеть это в форме удобоваримого числа, можете воспользоваться формулой:
max(log10(abs(reputation))-9,0) * ((reputation>= 0)?1:-1) * 9 +25
Как повысить свою репутацию
Лучший способ повышения репутации - получать голоса от людей с положительной репутацией и, даже лучше, с большой силой голоса.
Чтобы этого достичь:
- Публикуйте качественные посты. Забудьте о количестве, важно качество!
- Принимайте участие в дискуссиях (вы сможете получить дополнительные вознаграждения и пункты репутации за свои комментарии)
- Голосуйте разумно (не голосуйте за дурацкие посты, голосуйте за приличный контент и авторов)
- Увеличивайте число фолловеров и создайте свой список авторов
Заключение
Надеюсь, теперь вы лучше понимаете, как работает репутация и как ее заработать.
Помните, репутация - ключевой фактор, отображающий ваше поведение и то, как члены сообщества оценивают вашу работу.
Как и в реальной жизни, иметь высокую репутацию - это упорная и долгая работа.
И как и в реальной жизни, потерять ее очень легко. Тогда ее будет еще тяжелее восстановить.
Если вы нацелены на безупречную репутацию, фокусируйтесь на качестве и конструктивной позиции.
Спасибо за внимание!
Картинка: Pixabay - Переведено командой @rusteemitblog
Голосуйте за меня в качестве делегата
Вы также можете проголосовать прямо с платформы Голос здесь. Для этого внизу страницы нужно проделать следующее. Каждый голос важен. Спасибо !
Если Вам понравился этот пост,
не забудьте проголосовать, подписаться на меня или поделиться
А может ли вычитаемая при флаговании Доля Вознаграждения оказаться больше чем вся репутация "потерпевшего"? Вы же сказали, что репутация - это просто очень большое число, от которого берется десятичный логарифм с небольшими поправками. Но из отрицательных чисел логарифм брать не принято.
UPD: Сам себе отвечаю: логарифм согласно формуле
...берется от модуля репутации (за этот отвечает оператор 'abs(reputation)'). Но тогда возникает другой вопрос. Получается, что если отрицательная репутация становится все более отрицательной (к примеру бедолагу-юзера постоянно флагуют киты), то отражаемая на сайте репутация начнет расти. Ведь в формуле она берется по модулю.
UPD2: Построив график в Excel, убедился что самой минимальной отображаемой репутации -8 будет соответствовать положительная реальная репутация ~215444. Отображаемой репутации 0 соответствует положительная реальная репутация ~1668100.
Чем объясняется данный выбор?;)
И все-таки, может ли реальная репутация принимать отрицательные значения?
Картинка в нормальном разрешении
Прости, формулу я первоначально опубликован был неверным.
Я копировать/вставить из неправильного места:(
Я обновил пост с исправленной формуле.
Спасибо за уведомление!
А где найти эту формулу на GitHub? Можете дать ссылку на код?
Это формула, которую я написал для @jesta для отображения репутации на steemdb.com/golosdb.com.
Вы можете найти его здесь
Благодарю, отличный пост! Даже на Стиме не видел ничего настолько подробного.
Спасибо! Ваш комментарий будет очень ценна! =)
Очень полезный пост!!!
Здесь собрались разные люди и разными взглядами на жизнь... каждый высказывается, каждый имеет право на своё мнение. Конечно нецензурная лексика и призывы к "террору", а так же разжигание межрелигиозных и межнациональных конфликтов недопустимо! Но что делать, если люди разошлись во мнение? Уже не раз наблюдаю расхождение во мнении приводит к флагованию одного из участников (когда-то сама от этого пострадала, причем на пустом месте...). Получается ситуация "ты мне не нравишься, я с тобой не согласен - получи флаг".
Интересно репутация того, кто поставил флаг, как то изменяется?
Я рад, что вы найдете этот пост полезным. Спасибо!
Разность мнений-это хорошо и должно поощряться. Лет назад Галилей имел другое мнение о месте Земли в привязке к месту солнца. Он всегда был человек с иным мышлением, чем другие (часто большинство), который помогает развиваться. Мы должны уважать эту разницу.
Поставить флаг, потому что вам не нравится другое мнение не уместно.
Флаг должен использоваться только для принятия мер против плохого поведения как оскорбления, угрозы, домогательства, ...
Репутация кого-то, кто поставит флаг не меняется. Но, если он поставил флаг, когда это не уместно, он должен быть готов к мести. Тогда его репутация может пострадать.
Спасибо за качественную и познавательную статью!
Спасибо за ваш положительный комментарий!
...уффф...этот пост скорее всего окончательно закроет вопрос о репутации!!!..спасибо!..)))
А вот и нет). По позже сформулирую оставшиеся вопросы.
А как можно узнать историю своей репутации? А то я конечно не особо активный пользователь, но репутация у меня съехала даже по сравнению с вновь прибывшими.
Не существует простого решения для просмотра истории репутации кого-то.
Нет чуда. Чтобы построить свою репутацию, он должен быть активным. Это не потому, что вы находитесь долгое время на платформе, что ваша репутация растет.
Новый пришел, кто публикует статьи, интересно, неизбежно будет иметь лучшую репутацию.
Ну было б неплохо иметь такую информацию, а то я может делаю ошибки и не знаю какие. А как рассчитывается стартовая репутация? Не знаете часом, я из статьи не понял. В коде не силен. :)
Ваша репутация начинается в 25 лет. Он одинаков для всех.
@arcange
Как это в 25 лет? Откуда система узнает мой возраст, если я ей не называл ни возраст, ни дату моего рождения? ГОЛОС превзошёл ожидания СОЗДАТЕЛЕЙ и стал ясновидящим? Восстание машин началось? 😲
@arcange Спасибо за статью! Полезный пост!
@arcange Большое спасибо за пост! Очень полезная информация
@arcange очень полезно, спасибо)
Большое спасибо! Разумный текст, репа ясна
в принципе все довольно понятно, но нету как бы конкретизации. код людям для объяснения не сильно подходит. лучше побольше точных примеров как повысить/понизить, но все равно автору спасибу!
@arcange,
идёт скриншот.
Можете дать расшифровку этих сокрщений:
?
_2. Можно где-то посмотреть изменение репутации за свои посты? или посмотреть на сколько изменилась репутация при голосовании кого-нибудь за твой пост/комментарий ?
Спасибо.
Просто и понятно = отлично! )
Спасибо =)
Спасибо огромное!
@arcange, подскажите, есть ли подобный пост на англйиском языке на Steemit.com? Я бы почитал.
https://steemit.com/steemit/@arcange/what-is-steemit-reputation-and-how-does-it-works
@arcange, ты молодец! Отлично разложил по полкам!!!
Спасибо!
И всё же @arcange репутация того, кто поставил кому-нибудь флаг, как то изменяется?
Ваша репутация не изменится, когда вы голосовать или поставить флаг.
Но, если вы поставите флаг, когда это не уместно, будьте готовы к мести. Тогда ваша репутация пострадает.
@arcange я миролюбивый участник.
Спасибо, за подробный ответ на вопрос, который многих мучал. Добавьте, пожалуйста, сюда:
" Случай 2: у автора имеется некая репутация, процесс почти такой же ...
Самодокументированный, если ваш голос отрицателен и ваша репутация не выше репутации автора, процесс останавливается."
что это касается только голосования ПРОТИВ. Если вы голосуете ЗА, то ваша репутация не важна - всё равно идет в плюс автору.
Не нужно ничего добавлять. То, что Вы описали-это логическое продолжение процесса.
Просто следуя тому, что написано буквально, получается что если у вас репутация ниже автора, то не влияете на его репутацию, а это не так.
Это! Если ваш голос является отрицательным, то значение cv->rshares отрицательное.
При добавлении отрицательного значения, это эквивалентно вычитая его. А потом Репутация понижается.
Всё я понял - туплю. Там условие - И. И голос отрицательный, И репутация ниже.