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

гольян

48
rusovds

гольян

Краткая информация
Рейтинг: 48
На Golos с 12/2017

Комментарии

0.000 GOLOS
0
0.000 GOLOS
0
0.000 GOLOS
0
0.000 GOLOS
0
0.000 GOLOS
0
0.000 GOLOS
0
0.000 GOLOS
0
0.000 GOLOS
0
0.000 GOLOS
0

Тогда совершенно вас не понимаю. С одной стороны вы говорите о смысле добавления в вики, с другой стороны о том, что это очень муторно и не достойно вашего времени(при этом у вас якобы есть даже наработки), но видимо достойно времени других людей. Не понимаю вашего противоречащего призыва.

Могу лишь гарантировать, что технические посты будут транслироваться в блог oneplace, это даст долю надежды на сохранения информации на виду. Это то что мы можем предложить на текущий момент. Да и более того, со временем, если oneplace будет поддержан сообществом в достаточной мере (нам же нужно что-то есть, платить за сервера - о да мы держим свои ноды с не самым дешевыми конфигом - steem (256GB), golos (64GB), платить по счетам за аренду жилья и бла бла бла), мы создадим свое wiki, а не будем копаться в чужом протухшем дерьме тексте.

0.000 GOLOS
0

Команда golos.io не ответила на мои комментарии о кривизны их расчетов в андройд приложении. Это основная причина почему ни о каких пулл-реквестах в вики, которые обрабатывает это команда, речи быть не может. Сотрудничество начинается с диалога, а не с игр в молчанки, это смешно и просто нелепо. Я тратил свое лично время на анализ, они не написали даже и ваших 95 символов... Так что в каком то смысле вы сделали больше, хотя и не сделали ничего(я таки надеюсь, что материал попадет в wiki вашими стараниями и буду очень рад такому повороту)

0.000 GOLOS
0

Если есть желание - систематизируйте, раздаю полное право на использование этого текста, мне абсолютно не важно авторство и т.д. Можете ссылаться на этот коммент.

Было бы больше смысла в прямых действиях, а не в комментариях о "было бы больше смысла". Посты на эту тему я прочитал все, что смог найти, частично там есть инфа, но по большей части это либо куски, либо не технические заметки, либо и вовсе ошибочные формулы.

Конструктивно: подтвердите пруфами, что есть посты достойно и технически описывающие расчеты.
Осмыслено: воспользуйтесь моим(или более лучшем) материалом и добавьте это в wiki и отпишитесь об этом.
Типично: реагируйте агрессивно и продолжайте думать, что эта была критика.

На текущий момент я расцениваю ваш коммент так: 95 символов, которые навеки осядут как мусор в блокчейне. Буду только рад изменить свое мнение, с мобильностью у меня все хорошо))

0.000 GOLOS
0
0.000 GOLOS
0

После определенного опыта в программировании понимаешь, что шарить в конкретном языке это не так важно для анализа, это скорее для написания кода важно))

А вот по сабжу, тут даже программистом не нужно быть, находим на гитхабе следующую строчку. Я просто использую поиск на самом гитхабе, там вхождений этих подстрок по пальцам можно пересчитать(определение метода, использование в тестах, применение метода)

val payouts = RSharesConverter.convertRSharesToGbg2(it.gbgAmount, it.activeVotes.map { it.rshares }, it.votesRshares)

Тоже не джавист и в глубине души я очень хочу увидеть разоблачающий всю это теорию пост, так как по сути сейчас занимаюсь тем же самым, но видимо ценности разрабов оф. клиента отличаются от моих. На текущий момент я на 99% нашел решение этого вопроса и представлю в виде отдельного поста после оформления кода и апробации результатов)) И кстати 1% попахивает сбоями в работе БЧ, есть пользователь с битыми данными по выплатам. Точнее транзакции есть, но выплаты авторские пустые + иногда его посты показывают undefined в дропдауне около каждого поста. Этот пункт остается пока загадкой.

0.000 GOLOS
0

"Замечательные новости!" - хотелось вскрикнуть! Но нет, заглянул таки под капот... Я занимаюсь изучнием проекта чуть больше месяца и снова и снова наблюдаю как мои коллеги-программисты проявляют свою русскую натуру и вместо предоставления TRUE информации, кормят юзеров каким-то огрызками от этого TRUE, ведь вряд ли здесь куча людей обладают желанием или возможностью оценить столь "прекрасную" математику.

Разберем функционал подсчета "вклада" голосов:

  1. Есть такой показатель rshares, это переменная ни что иное как вклад юзера в голосовании... Rshares расчитывается из силы голоса аккаунта, опустим детали, в грубой форме это "Сила голоса аккаунта" / ("Текущая мощь аккаунта" * "Вес голоса") (ну вы же не можете голосовать бесконечно в рамках короткого промежутка времени). Например это может быть число 2341234124 (Хомяки: ЧТО? ЭТО МНОГО? СКОЛЬКО ПРОФИТА?)

  2. Из таких вот rshares складывается целый массив голосов, из которых идет расчет того заветного GBG. НО! В расчетах учавствуют переменный состояния системы, соотношения всех выплат и rshares всей сети. Что наводит на мысль... Да! GBG до выплаты динамичен, то есть если вы возьмете любой пост и тупо будет обновлять страницу, то ожидаемые выплаты будут скакать как попкорн в микроволной печи. На больших выплатах это особенно заметно.

  3. После завершения 1 периода выплат - фиксируется GBG исходя из текущего состояния всей системы. Соответсвенно этот массив голосов с rshares навсегда становиться историей и не может далее учавствовать в расчетах будущих выплат, но в уме мы создаем еще один массив голосов из которого будет сформированна вторая выплата. Видимо на этой стадии большинство разработчиков запикпают, ведь CRUD операции это то, чем они хотели зарабатывать всю жизнь, но мать всея расчетов шепчет некоторым: "Продолжай копать."

  4. Теперь берем второй массив и получаем на лицо факт - переменные состояния меняются, массив голосов уже другой, а там же еще и квадрат суммы этих rshares... То есть (1 rhsares из первого массива) != (2 rhsares из первого массива) при расчете GBG. И более того, чтобы расчитать сколько реально rshares конкретного голоса дало GBG, необходимо еще вытащить те показания системы, которые были на момент формирования выплаты.

  5. Это не все тонкости, но думаю любой читатель сможет оценить картину если вдумается хотя бы 5 минут. А вот теперь смотрим на код, который открыт в репозитории Golos-android

fun convertRSharesToGbg2(postPayoutInGbg: Double, rshares: List, totalRshares: Long): List {
    val total = totalRshares.toDouble()
    return rshares.map { long ->
        val percent = long / total
        postPayoutInGbg * percent
    }
}

Я не джавист, но мне совершенно не понятно почему публичные методы которые не используются в коде попадают в сборку, а единственный метод под очень обнадеживающим названием convertRSharesToGbg2 (все верно, convertRSharesToGbg и convertRSharesToGbg1 - это тоже есть в коде) - считает, как видите сами, тупо процент доли от всех rshares.

К сожалению, рассматривать остальной код нет свободного времени, возможно в следующий раз))

Какие выводы:

  1. Не нужно гнаться за релизом, разве качество данных - это не наша цель и не цель проекта как такового
  2. Нанимая разрабов, убедитесь, что это люди готовы копать код лопатой, но найдут истину.
  3. Стремитесь к чистому коду, не нужно в мастер ветках устраивать тарабарщину из кучу методов с постфиксами 1,2,3 и заккоментированных неудачных попытках расчетов
  4. Будьте честны перед собой, ваша аудитория это не стада баранов, относитесь к ней ровно так же как к себе. Аппроксимация - последнее что мы должны делать, и только давая пояснения почему без нее невозможно обойтись.

P.S.: Благодарю за внимание, буду чрезвычайно рад критике в свой адрес и если кто-то сможет опровергнуть или поправить выше сказанное. Ведь только глупец вместо истины ищет удобный для него результат. Команда OnePlace готовит аналогичный функционал (поэтому я так и осведомлен о расчетах), это будет максимально честный подсчет как для Steem так и для Golos. Так же я обязуюсь создать пост, расписывающий наш подход в расчетах, с подробным описание формул и переменных в них.

0.000 GOLOS
0