Добрый вечер дамы и господа.
Я задался вопросом, насколько сильно упал рост силы голоса после хардфорка, который прошел на днях.
А данный пост пишу для того, чтобы наконец выяснить, по какому алгоритму просчитываются награды держателям СГ. С удовольствием выслушаю разработчиков и всех кто "в теме".
Для анализа я написал небольшой скрипт, который собирает статистику по выбранному аккаунту. Для связки с API голоса отлично подходит библиотека от steemit
Мой работающий пример находится здесь.
Для просмотра статистики достаточно ввести свой ник. После этого посмотреть на табличку "Приблизительный рост силы голоса".
Видно, что прирост по сравнению с тем, что было ранее - минимальный.
Давайте опишу вкратце по какому алгоритму я рассчитывал, полагаю где-то в нем есть ошибка, ибо заметил, что СГ растет немного быстрее чем по расчетам.
Итак исходные данные из нового ХФ, которые нас интересуют:
- Инфляционная ставка 9.5% APR стремящаяся к 0.95% APR по 0.01%
- 15% инфляции получают держатели Силы Голоса
Для наглядности приведу лог глобальных свойств от Голоса:
Считаем общий годовой прирост токенов голоса с учетом инфляции:
// текущая капитализация голоса
var current_supply = golosData.current_supply.split(' ')[0];
// инфляция за год (получаем из поля inflation, на этот год 9,5%)
var inflation_rate = $('#inflation').val().replace('%', '')*1;
// вычисляем прирост токенов с учетом инфляции за год
var total_year_delta = current_supply*inflation_rate/100;
Получаем долю отложенных голосов пользователя в системе по отношению ко всем токенам голоса.
Я полагаю, что здесь надо брать только сумму отложенных голосов, которые находятся в СГ у других пользователей. Но возможности получить это значение я не нашел, поэтому в расчетах беру current_supply
// доля отложенных голосов пользователя в системе
var account_power_share = getGolosPower()/current_supply;
// получить силу голоса для аккаунта
function getGolosPower(){
if(golosData !== null){
movementGlobal = golosData.total_vesting_shares.split(' ')[0];
powerGlobal = golosData.total_vesting_fund_steem.split(' ')[0];
return (powerGlobal * (accountGests / movementGlobal)).toFixed(3);
}else{
return 0;
}
}
Получить годовую награду для всех держателей СГ в системе:
// годовая награда всем держателям силы голоса
var golos_holder_year_rewards = total_year_delta*$('#holder_reward').val()/100;
Умножив общую годовую награду на долю пользователя в системе, получаем награду за год для выбранного пользователя
var current_user_reward = golos_holder_year_rewards*account_power_share;
// далее считаем за месяц, неделю, день итд
....
UPD: сила голоса считается правильно. Баг был в начальных данных, а не в алгоритме расчета. Процент годовой инфляции у GOLOS составляет 15%, а не 9
Всегда рад Вашему вниманию, голосуйте и комментируйте.
Подписывайтесь, дальше здесь будет очень интересно.
подписался на вас
до ХФ было удобно смотреть во вкладке кураторские награды: 24 часа, среднесуточные, за неделю.
А щас тока за неделю, ваще не пойми чо происходит. Я за то, чтобы вернули.
Тупо скопировали ХФ стимита, без каких либо улучшений и нововведений, огорчен немного, в этом ХФ больше недостатков, чем достоинств.
я в основном по стим гайдам ищу описание функционала, но там ни слова про то, как точно расчитывать начисления по СГ
Есть еще более подробная статистика http://golos.steemstats.com/#/ можно глянуть рост СГ по пути: Accounts -> Steem power. Но там тоже не всегда правильно считает, иногда прыгает свыше 100% за год, а бывает по 0 показывает
Я понимаю, что можно смотреть "где-то ещё", но в клиенте-то удобней) Надоедает тыкаться по закладкам) И процент силы голоса можно былоб сюда же прикрутить, для задротов)