스팀코인판 기본보팅 동작 방식

문제는 이렇습니다.

https://www.steemcoinpan.com/sct/@sct.jcob/sct-0-1

기존에는 한번에 보팅할 리스트를 뽑은후, 순차적으로 보팅했습니다.
이렇게 하면, 후순위에 있는 홀더님은 같은 퍼센트로 보팅받아도 보상이 적습니다.
이를 방지하기 위해서, 한번에 보팅하는게 아니라 조금 쉬면서 보팅파워를 채워가면서 보팅하는 방식으로 바꾸고자합니다.

해결해야할 문제는 이렇습니다.

하루에 n명에게 같은 퍼센트로 똑같이 보팅하고싶습니다. 그러면서 보팅봇이 100%로 쉬고있지 않도록 하고싶습니다
어떻게 해야할까요?


먼저 스콧봇의 파라미터를 살펴봅시다.

vote_regeneration_seconds and vote_power_consumption

1
2
3
4
5
6
These two parameter defines how often it is possible to vote. These parameters are integer in the steem percentage notation 100 means 1 %.

vote_power_consumption defines how the vote power is reduced with a 100% vote. When it is set to 200 (2%), the vote power is reduced to 98% when voting at full vote power and a weight of 100%.

vote_regeneration_seconds defines in which time duration an empty vote power is regenerating to 100%.
- https://steempeak.com/steem-engine/@holger80/scotbot-parameter-manual


스팀코인판의 설정은 이렇습니다.

vote_regeneration_seconds = 216000
vote_power_consumption= 400

100% 보팅하면 4% (400)가 소비됩니다. 즉, 1% 보팅하면 4가 소비됩니다.

0%에서 100% 회복되는게 216000초입니다. 216000초는 2.5일입니다.
그러면 1% 회복하려면 2160초, 36분입니다.

  • 하루는 24시간, 60* 24 = 1440분입니다.
  • 스팀코인판 sct의 1% 회복시간은 36분입니다.

예시

n이 10명이라고 해봅시다. 하루에 1000% 보팅한다고 하면, 1명당 100%씩 보팅합니다.
100% 보팅하면 4%가 소모되고, 소모된 보팅파워가 회복되려면 4%는 36 4 = 144분, 2시간 24분이 필요합니다.
2시간 24분마다 1명씩 보팅합니다. 그러면 10명 모두에게 100%보팅을 해줄 수 있습니다.
그리고 144
10이 1440분을 초과하면 안됩니다. 왜냐하면 1440분이 24시간이고, 24시간 내에 10명에게 모두 보팅을 하고 싶기 때문입니다.


n명이라면?

n명이고, 하루 1000% 보팅이면, 1명당 1000/n 씩 보팅합니다.
1명당 1000/n 퍼센트 보팅을 하면, 40/n퍼센트가 소비됩니다.
보팅파워 40/n이 회복되려면 얼마의 시간이 필요할까요?

40/n% : ? = 1% : 36분
? = 4036 /n 분의 시간이 걸립니다.
즉, n명에게 같은 파워로 순차적으로 보팅할때 다음과 같은 식이 나옵니다.
n명에게 1000/n % 파워로, 40
36/n 분 간격으로 보팅을 하면 공평하게 보팅할 수 있습니다.
n에 10, 15, 20을 넣어봤습니다.

1) 10명이면 100% 보팅파워로 144분마다 보팅
2) 15명이면 66% 보팅파워로 96분마다 보팅
3) 20명이면 50% 보팅파워로 72분마다 보팅


실제 적용

실제 적용을 해보려고 했는데.. 하나 걱정되는게 있습니다.
이대로 한다면, 24시간이 딱 맞게됩니다. 하지만 보팅을 순차적으로 한다면.. 조금씩 늦어지지않을까?
아 순차적으로 하지말고, 그냥 그 시간되면 보팅하게 하면되겠구나..
여러 생각을 하다가 코드를 많이 안바꾸고할 방법을 생각해냈습니다.

1440/n 이 아니라, 1440/(n+1) 간격으로 보팅하면 보팅파워를 90퍼이상 유지하면서 모두에게 같은 퍼센트지로 보팅할 수 있겠다!! 그래서 이방법으로 진행했습니다.

n명에게 1000/n % 파워로, 40*36/(n+1) 분 간격으로 보팅하기

끝!

감사합니다.


This page is synchronized from the post: ‘스팀코인판 기본보팅 동작 방식’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×