krwp 보상 자동화 개발 진척사항

in #sct5 years ago (edited)

안녕하세요 @realmankwon입니다.

지난주 금요일부터 시작된 krwp 보상 자동화 개발이 한창 진행 중에 있습니다.
다들 아시다시피 베네피셔리 설정 기능과 관련하여 펜딩된 보상이 사라지는 오류로 인하여 2일 정도를 거기에 모든 에너지를 쏟아 부었습니다.
오늘 정신을 가다듬고 다시 작업을 진행하였습니다.

일단 베네피셔리 설정과 관련하여 현재 scot 의 설정 정보는 custom json에 입력되고 있지 않습니다.
해당 정보는 포스팅 시에 스팀 블록의 operations에 comment, comment_options 로 저자, 포스팅, 베네설정 계정, 비율 등을 남기고 있습니다.
또한 스팀이 페이아웃되는 7일 뒤에 저자, 포스팅, 베네설정 계정, 스팀 페이아웃, 스달 페이아웃, 스파 페이아웃 정보가 스팀 블록에 저장이 됩니다.
하지만 scot 이 페이아웃되는 시점에는 아무런 정보가 남지 않아서 포스팅시 저장되는 정보를 가지고 계산을 하여야 할 것 같습니다.

이것을 모니터링하기 위해 몽고디비에 데이터를 저장하는 로직을 변경하느라 2일 정도가 걸렸습니다.
기존에는 custom json만 정보를 남겼었지만 이제는 스팀의 정보를 함께 남겨야 하기 때문입니다.
모든 스팀 정보를 남기지는 않고 comment, comment_options, comment_benefactor_rewards 명령과 sct.krwp 로 보내진 정보만 데이터를 쌓도록 하였습니다.
이를 위해 api도 변경을 하였습니다.
steem 이 아닌 dsteem 을 사용하였습니다.
그 이유는 comment_benefactor_rewards의 경우는 블록 정보 중 irreversible 정보라고 하여 steemd에서 virtual로 표시되는 정보인데 steem 으로는 irreversible 정보를 받아 올 수가 없었습니다.
그래서 그것을 제공하는 dsteem 을 사용하여 getBlock 함수와 getOperations 함수를 사용하여 블럭 정보를 쌓도록 금일 저녁 작업을 완료하였습니다.

이제는 자동 분배 로직만 개발을 하면 될 듯 합니다.
scot 보상, steem 보상을 krwp 로 환전하여 자동 보상이 되도록 할 예정입니다.
api 서버는 거의 개발이 완료가 되었고 실제 데이터를 집어 넣고 계산하는 로직만 추가가 되면 될 듯 합니다.

그 사이 베네피셔리의 보상에 대한 버그를 스팀엔진 측에서 인정하였고 현재 일부 수정이 되었다고 들었습니다.
몇 시간 뒤에 페이아웃될 제 글의 보상이 잘 전해지는지 기존에 있던 펜딩 금액은 잘 보존되는지 몸빵 테스트를 진행할려고 합니다.
이 부분이 깔끔하게 정리가 되어야 현재 제가 작업하는 것도 의미가 있기 때문입니다.
아무쪼록 잘 정리가 되어서 krwp 보상이 현실화 될 수 있길 바랍니다.

Sort:  

기대가 많이 됩니다. 수고 많으십니다.

Congratulations @realmankwon! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You distributed more than 4000 upvotes. Your next target is to reach 5000 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.30
TRX 0.11
JST 0.033
BTC 64243.42
ETH 3152.93
USDT 1.00
SBD 4.28