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

Как правильно вычислять текущую voting power

Как узнать какая прямо сейчас Voting Power у аккаунта? Казалось бы, самое очевидное - это сделать RPC call к ноде get_account() и взять оттуда значение voting_power:

% ./get_account.py vvk |grep power
 'voting_power': 8427,

Но нет! Это не текущее значение VP, а значение на момент крайнего апа.

Т.е. если вы не апали например неделю, фактическая VP будет 100 (10000), а в блокчейне всё ещё будет болтаться старое значение.

А где же тогда взять VP, спросите вы?

А надо всего лишь взять и посчитать VP по алгоритму, как это делает golosd. Оригинальный код для 0.16.4 - в libraries/chain/steem_evaluator.cpp.

Вкратце - надо взять last_vote_time и посчитать, сколько % VP успело регенерироваться, и прибавить это к тому значению voting_power, что отдаёт нода. На python:

STEEMIT_100_PERCENT = 10000
STEEMIT_VOTE_REGENERATION_SECONDS = 5*60*60*24 # 5 days

    elapsed_time = datetime.utcnow() - last_vote_time

    regenerated_power = STEEMIT_100_PERCENT * elapsed_time.total_seconds() / STEEMIT_VOTE_REGENERATION_SECONDS
    current_power = vp + regenerated_power/100

Полный код доступен в репозитории golos-scripts. Я сделал отдельный скрипт get_votnig_power.py

А именно:

Само собой, скрипт оценки апа будет использовать сию наиточнейшую VP.


Данный пост собирает финансирование по программе краудфандинга

Детали программы описаны в посте

Текущие открытые цели

  • 200 GOLOS на скрипт оценки профита апа

100% GBG за этот пост будут розданы кураторам согласно их вкладу. В стоп-листе только бустеры.
Апвоты со вкладом < 0.001 GBG игнорируются.
0
4.508 GOLOS
На Golos с December 2017
Комментарии (14)
Сортировать по:
Сначала старые