STEEM POWER retention ratio of top 50 witnesses

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/steem-power-retention-ratio-of-top-50-witnesses Hello, this is @joviansummer(witness: @jswit). Some time ago there was a bit of discussion on discord witness chanel about witnesses' power-down/cashing-out. So out of curiosity I just checked current ratio of witnesses' own STEEM POWER(VESTS) and all-time producer reward(VESTS). The ratio is calculated by the following simple formula: ratio(%) = account's own SP(MV) / all-time producer reward SP(MV) * 100% Ratio value less than 100% indicates power-down. If witness does additional power-up or gets other types of reward(e.g., curation reward), the ratio may exceed 100%. This does not take witness' other accounts into consideration. All-time producer reward data is from @steemchiller's SDS API. Here is the result: rank account own_sp prod_sp ratio 1 justyy 2188.411MV 1284.2MV 170.41% 2 steemchiller 982.134MV 124...

파이썬 beem과 SDS로 특정 계정이 임대 받은 스팀파워 내역 조회하기

by joviansummer
original STEEMIT post: https://steemit.com/blog/@joviansummer/beem-sds


특정 계정이 어느 계정에 스팀파워를 임대했는지, 즉 나가는 임대(outgoing delegation) 내역은 파이썬 beem에서 간편하게 확인할 수 있습니다. 아래의 링크입니다.

파이썬 beem에서 특정 계정의 스팀파워 임대 정보 조회하기

반면에 특정 계정이 어느 계정으로부터 얼마의 스팀파워를 임대 받았는지, 즉 들어오는 임대(incoming delegation) 내역은 beem에서 확인하기가 어렵습니다. 가능하긴 하지만 계정 이력(account history)을 조회해서 일일이 확인을 해야 합니다.

SDS API를 이용하면 들어오는 임대 내역을 간편하게 조회할 수 있습니다. 우선 SDS API의 기본 동작에 대한 내용은 이전 포스트를 참고하시기 바랍니다. 아래의 링크입니다.

파이썬과 SDS를 이용한 스팀 정보 조회

들어오는 임대 내역을 조회하기 위한 url 항목은 /delegations_api/getIncomingDelegations/입니다. 예를 들어 @jsup 계정이 임대 받은 내역을 확인하려면 아래와 같이 할 수 있습니다.

import requests

sds_url = 'https://sds1.steemworld.org/delegations_api/getIncomingDelegations/' + steem_id

response = requests.get(sds_url)

print(response.text)

{"code":0,"result":{"cols":{"time":0,"from":1,"to":2,"vests":3},"rows":[[1644649578,"kr-templar","jsup",641540.008757],[1645865067,"ladysong","jsup",1739196.428124],...,[1665399027,"hdc","jsup",1796491.495542]]}}

json 형식으로 받은 응답을 보면 "result" 키(key)에 딕셔너리가 할당되어 있고 "cols"와 "rows"가 있는 것을 볼 수 있습니다. "cols"는 "rows"에 속한 원소들이 어떤 항목들인지를 보여줍니다. "cols"에 속한 딕셔너리의 키를 보면 "time", "from", "to", "vests" 순서로 되어 있음을 볼 수 있습니다. "rows"에 속한 원소는 이에 대응하여 시간, 임대한 계정, 임대 받은 계정, 임대한 스팀파워(단위: vests) 순서로 실제 임대 받은 내역이 리스트(list) 형식으로 포함되어 있음을 볼 수 있습니다.

이제 응답 문자열을 딕셔너리로 바꿔서 내역을 보기 좋게 출력할 수 있습니다. json 모듈을 활용해서 문자열을 딕셔너리로 변환합니다.

import json
from beem import Steem

node_list = ["https://api.steemit.com"]
steem = Steem(node=node_list)

res_dict = json.loads(response.text)

for item in res_dict['result']['rows']:
  delegator = item[1]
  deleg_vests = item[3]
  deleg_sp = steem.vests_to_sp(deleg_vests)
  print("임대 계정:", delegator, "- 스팀파워:", str(round(deleg_sp,3)) + "sp")

임대 계정: kr-templar - 스팀파워: 357.338sp
임대 계정: ladysong - 스팀파워: 968.733sp
...
임대 계정: hdc - 스팀파워: 1000.647sp

VESTS값을 스팀파워로 전환하기 위해 beem 모듈의 Steem 객체에서 제공하는 vests_to_sp() 함수를 이용했습니다.


@joviansummer의 스팀 프로젝트

스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다.
(https://steemitwallet.com/~witnesses)

jswit 증인 노드 프로젝트를 시작합니다.

jsup 업보팅(upvoting) 서비스 소개

jsup 수혜자 지정 기능 추가

jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다.

jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기

STEEM.NFT - 디지털 아트 보존 프로젝트

Posted through the AVLE Dapp (https://avle.io)

Comments

Popular posts from this blog

스티미언의 영향력 지수 계산

jsup/avle code update - you don't have to write post everyday

jsup/avle 보팅 코드 갱신 - 1일1포스팅 강박에서 벗어나기