최근에 스팀잇에 관심을 가지고 스터디하고 있는 뉴비입니다.
하나 하나 차근 차근 공부하면서 블로그에 정리할 계획입니다.
보팅파워과 재생시간
보팅파워Voting Power와 재생시간이 어떤 공식으로 계산 되는지 궁금하여 분석하여 보았습니다.
https://steemd.com/@아이디
에 접속하면 자신의 보팅파워를 쉽게 확인 할 수 있습니다.
하지만 우리는 계산 공식을 구해서 직접 계산해보도록 하겠습니다.
계산하기 전에 우리는 사용자 프로필 정보에서 마지막 보팅 시간last vote time 과 보팅파워voting power를 조회해야 합니다.
사용자 프로필 정보 조회하기
Steemit.com은 데이터를 조회할 수 있는 몇 가지 endpoint를 제공하고 있습니다. 사용자 프로필 JSON 데이터는 요청URL 끝에 .json
만 붙여서 호출하면 됩니다.
사용자 프로필 JSON 조회 URL https://steemit.com/@anpigon.json
를 브라우저에서 조회하면, 아래와 같은 User Object
JSON 데이터를 얻을 수 있습니다.
1 | { |
데이터가 너무 많아서 중간 중간 생략하였습니다.
현재 보팅파워 계산하기
보팅할때마다 일정 비율로 보팅파워가 줄어들며 하루에 20%(5일 동안 100%)의 비율로 재생됩니다.
따라서 **현재 보팅파워current voting power**를 계산하는 공식은 아래와 같습니다.
계산 공식
1 | 마지막 보팅 후 경과된 시간 = 현재 시간 - 마지막 보팅 시간 |
시간은 모두 초 단위로 계산됩니다.
**5일Days**는 60(초) * 60(분) * 24(시간) * 5(일)
로 초단위 값을 구할 수 있습니다.
**“마지막 보팅 후 경과 시간”**은 **“현재 시간”**에서 last_vote_time
[1]값을 빼면 알수 있습니다.
**“마지막 보팅파워”**는 voting_power
[2] 값을 사용합니다.
마지막으로 **“현재 보팅파워”**는 100%를 넘을 수 없습니다.
자바스크립트javascript 코드로 나타내면 아래와 같습니다. 백분율은 계산하기 쉽게 10000로 표현하였습니다.
JS Code
1 | // 마지막 보팅 시각 |
코드를 돌려보면 current_power
는 9659가 나옵니다. 이것을 백분율로 환산하면 현재 보팅파워는 **96.59%**가 됩니다.
보팅파워 재생시간 계산
위의 계산 공식을 역으로 계산하면 보팅파워의 재생시간을 알아 낼 수 있습니다.
계산 공식
1 | 재생시간 = (100% - 현재 보팅파워%) * 5일 / (1시간 * 100%) |
자바스크립트javascript 코드로 나타내면 아래와 같습니다. 백분율은 계산하기 쉽게 10000로 표현하였습니다.
JS Code
1 | // 현재 보팅파워 |
remain_hours
는 3.6이 나옵니다. 현재 보팅파워가 97%라면 재생시간은 3.6시간이 됩니다.
보팅파워에 따른 회복 시간을 표로 나타내면 아래와 같습니다.
보팅 파워 | 회복 시간 | 비고 |
---|---|---|
99% | 1.2시간 | |
98% | 2.4시간 | |
95% | 6시간 | |
80% | 24시간 | 1일 |
70% | 36시간 | 1일 12시간 |
60% | 48시간 | 2일 |
50% | 60시간 | 2일 12시간 |
40% | 72시간 | 3일 |
30% | 84시간 | 3일 12시간 |
20% | 96시간 | 4일 |
10% | 108시간 | 4일 12시간 |
0% | 120시간 | 5일 |
여기까지 읽어주셔서 감사합니다. 꾸벅 -_-