안녕하세요 ayogom 입니다.
최근에 KRWP 보팅을 받기가 쉽지 않습니다. 그래서 KRWP 보팅을 신청하는 것을 만들어 보려고 합니다. 제일 먼저 필요한 부분이 현재 보팅 파워를 체크하는 일입니다. 보팅 파워에 대한 공식은 이전에 포스팅 했던 보팅 금액 계산해 보기 2부 내용을 참고하시면 도움이 될 것 입니다.
보팅 파워를 조회하기 위해서는 steem.api.getAccounts
를 사용합니다.
따라서 이전에 포스팅 했던 [NodeJS] API 사용 법 1편 스팀 라이브러리 설치 을 참고 하시면 됩니다.
코드로 갑니다.
var steem = require('steem');
steem.api.getAccounts(['sct.krwp'], function(err, result) {
var last_vote_time = result[0].last_vote_time;
var voting_power = result[0].voting_power;
console.log(last_vote_time, voting_power)
});
다행히 계정 정보에 보팅파워가 있습니다.
근데 조회된 보팅파워와 현재 사이트에서 보여지는 보팅파워가 다르네요
왜일까요
스팀 소스코드인 깃허브를 살펴보면
https://github.com/steemit/steem/blob/ff9b801615ba8c347a0c3f534ad06adc551b58e5/libraries/chain/steem_evaluator.cpp
int64_t current_power = std::min( int64_t(voter.voting_manabar.current_mana) + regenerated_power, int64_t(STEEM_100_PERCENT) );
voter.voting_manabar.current_mana) + regenerated_power 와 STEEM_100_PERCENT 중 작은 값을 사용한다고 되어 있습니다. 정리를 해보자면 보팅파워를 매번 모든 계정의 정보를 업데이트 할 수 없기 때문에 비 정기적으로 (정확한 주기는 알수 없음) 갱신을 하는데, 이때 기록된 보팅파워와 마지막 보팅했던 시간을 바탕으로 현재의 정확한 보팅값을 찾는 행위입니다.
조금 복잡한가요? 그냥 외웁시다... 계정에서 나오는 보팅정보는 확실하지 않다. 그 값과 마지막 보팅시간을 계산해서 현재의 정확한 값을 추정해야 한다.
그래서 다시 소스 코드로 가면,
var steem = require('steem');
steem.api.getAccounts(['sct.krwp'], function(err, result) {
var last_vote_time = result[0].last_vote_time;
var voting_power = result[0].voting_power;
var elapsed_seconds = (new Date() - new Date(last_vote_time + "Z")) / 1000;
var regenerated_power = 10000 / (60 * 60 * 24 * 5) * elapsed_seconds;
current_power = Math.round(Math.min(voting_power + regenerated_power, 10000));
console.log(current_power)
});
이렇게 하면 현재의 보팅파워를 확인할 수 있습니다.
elapsed_seconds 는 현재 시간에서 마지막 보팅한 시간을 빼는 것인데, 공식코드에서는 블럭의 시간을 가져와서 사용하지면 편의상 현재 시간으로 작성했습니다.
이 보팅 파워를 조회해서 무엇을 할 수 있을까요? 저는 KRWP가 60프로가 넘으면 보팅을 신청하게 만들었습니다.
내일 그 부분을 알려드려보겠습니다.
그럼 오늘도 이만~
- 스팀관련해서 궁금하신 내용이 있다면 언제든 문의 주세요
작성 예정인 글 List
- Nodejs 를 이용한 스팀 API 사용해보기 (계속)
누군가에게는 도움이 될 수 있는 글
스팀잇 기본 이야기
- 복잡한 키&패스워드는 그만 손쉬운 로그인 키체인의 사용법
- 계정 옆의 숫자 평판? "reputation" 이란
- 스팀잇 내부 거래 사이트, 마켓
- 오랜만에 스팀잇에 돌아왔더니 로그인이 안됩니다 (Logging in with non-posting key)
- 스팀잇에 기존 사용하던 트론 지갑을 연결하는 방법
- 스팀 체인의 패스워드 / 키의 역활
- Steemit의 태그 사용법과 커뮤니티스 사용법
- Steemit 프로필 변경 방법
- 스팀파워 임대가 안된다 왜?
- 스팀잇 계정 만들기
- 스팀잇 저장 보상의 종류와 뭐가 좋을지
- 스팀잇 속닥속닥 비밀 메모 사용하기!
- 스팀/스달 입금, 출금 그리고 업비트 이용방법
- 갑자기 steemit 사이트가 접속이 안된다면?
- 스팀잇 내에 붉은 글씨 사용법
- 스팀잇 지갑에 접속이 되지 않을 때
- 스팀잇 글 작성 문법 [마크다운편]
- 스팀잇 글 작성 문법 [HTML]
- 스팀잇 가독성 및 작성을 편하게 해주는 "Steemit.com Enhancer" 툴
- 스팀 키 권한을 해제 해 보자
니트로스 (SCT, ZZAN 등 ) 이야기
- Steem체인의 또하나의 커뮤니티 "zzan"
- Steem체인의 또하나의 커뮤니티 "sct"
- [요청] 스팀엔진 Explorer 가 접속이 되지 않아요
- [요청] 스팀엔진 사용방법
- SCT 포스팅피 납부 확인 및 납부 방법
- 니트로스(SCT, ZZAN, AAA) 에 대한 설정 확인해보기
스팀잇 심화 이야기
- 스팀의 인플레이션에 대해서
- 하루에 스팀 리워드 풀에 포함되는 스팀은 얼마나 될까?
- 하루에 도대체 어느정도의 스팀은 생성될까요?
- 내가 보팅 했더니 보상이 떨어졌다? 왜?
- 스팀달러가 1달러를 유지하는 방법
- 글이 써지지 않아요 왜? Resource Credits!? Your transaction failed to process
- 스팀잇 에서의 $ 는 USD(미국달러) 인가요?
- 스팀은 DPOS 기반의 블록체인입니다. 그럼 DPOS가 뭔가요?
- 증인에 역활은 무엇일까
- 스팀 증인 노드 세팅하기 1탄
- 스팀 증인 노드 세팅하기 2탄
- Steem Node 정리 (Full node 1편)
- Steem Node 정리 (Full node 2편) -설치
- 최신 Full node 설치 1편
- 최신 Full node 설치 2편 Jussi 설정
- 최신 Full node 설치 3편 Jussi 설정 (Hivemind 연결) 결론 실패
- 증인 노드 feed price 업데이트 방법
스팀잇 보상과 연결되는 이야기
해킹과 관련된 이야기
개발과 관련된 이야기
- Nodejs 가 무엇인지 그리고 어떻게 설치 하는지?
- [NodeJS] API 사용 법 1편 스팀 라이브러리 설치
- [NodeJS] API 사용 법 2편 보팅을 해볼까?
- [NodeJS] API 사용 법 3편 포스팅을 해볼테다!
- [NodeJS] API 사용 법 4편 예약 포스팅 해보기
- [NodeJS] API 사용 법 5편 예약 포스팅 해보기 -2편 (포스팅 수정)
- [NodeJS] API 사용 법 6편 예약 포스팅 해보기 -3편 (매일매일 글쓰기)
- [NodeJS] API 사용 법 7편 스팀 블럭 모니터링 하기
- [NodeJS] API 사용 법 8편 스팀 블럭 모니터링 하기 2편
- [NodeJS] API 사용 법 9편 Nodejs가 가지는 불편함 (콜백지옥)
- [NodeJS] API 사용 법 10편 간단한 보팅 봇 만들기
- [NodeJS] API 사용 법 11편 Steem enjin API 사용해보기 (설치편)
- [NodeJS] API 사용 법 12편 Steem enjin API 사용해보기 (자동 파워업!)
- [NodeJS] API 사용 법 13편 송금 해보기
- [NodeJS] API 사용 법 14편 송금 확인해보기
- [NodeJS] API 사용 법 15편 송금 확인해보기 2탄
- [NodeJS] API 사용 법 16편 간단한 비드봇을 만들어보자
start success go! go! go!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@banguri님이 당신을 멘션하였습니다.
https://www.steemit.com/@banguri/6-22
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@ayogom transfered 4 KRWP to @krwp.burn. voting percent : 10.06%, voting power : 50.28%, steem power : 1793262.98, STU KRW : 1200.
@ayogom staking status : 940 KRWP
@ayogom limit for KRWP voting service : 0.94 KRWP (rate : 0.001)
What you sent : 4 KRWP
Refund balance : 3.06 KRWP [54844812 - 1e5677b4ac8d72e55191c49b31ea0804a52a0676]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit