Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
arcange
7 лет назад

Что такое репутация на Голосе и как она работает?

Всё, что вы хотели знать о репутации

Многие пользователи до конца не понимают, что такое репутация, как она рассчитывается, как она меняется, какой эффект и на что она оказывает и т.д. …

Здесь я собрал всю информацию о репутации, какую смог найти, и попытался в легкой для понимания форме объяснить как она работает на Голосе.

Для чего нужна репутация?

У репутации есть две функции:

  1. Она является индикатором, показывающим насколько вы “заслуживаете доверия и ценимы в сообществе”.
  2. Она - инструмент, предотвращающий причинение вреда пользователями с низкой репутацией всем остальным.

Как она работает

Пункты репутации рассчитываются с помощью математической функции 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

Голосуйте за меня в качестве делегата

Вы также можете проголосовать прямо с платформы Голос здесь. Для этого внизу страницы нужно проделать следующее. Каждый голос важен. Спасибо !


Если Вам понравился этот пост,
не забудьте проголосовать, подписаться на меня или поделиться

30
8996.433 GOLOS
Комментарии (39)
Сортировать по:
Сначала старые