안녕하세요. 굳헬로 @goodhello 입니다.
요즘 python을 이용하여 steem과 steem engine에 대해 간간히 공부하고 있는데요.
제가 공부하고 있는것을 일기로 남겨보려고 합니다. (굳헬로의 종합일기 사이 사이)
이미 많은 다른 능력자 분들이 유용한 기능들을 구현해 주시고, 간간히 소스 오픈도 해주시고 계신데요.
그런것들을 보고 있자니, 저도 공부해서 뭔가 만들어 보고 싶더라구요.
그리고 코딩을 잘 모르지만, 하나씩 하나씩 배워나가는게 너무 재미있고, 또 그것들을 기록해 보고자 굳헬로의 스팀 프로그램 일기를 시작하게 되었습니다.
능력자 분들이 보기에 시시해 보일지도 모르지만, 코딩을 모르는 분들이 따라서 해볼 수 있도록 기초부터 차근차근 해나가 볼 생각입니다.
이론적인 내용이 들어가면 지루하고, 오히려 코딩이 더 어렵게 느껴질 수 있기에...
그냥 따라해볼 수 있는 예제들을 하나씩 실행해 보면서 steem과 steem engine을 다루어 보려고 합니다.
일단 우선적인 저의 계획은 python 프로그램 설치 부터 시작하여...
먼저 요즘 관심사인 steem engine api를 이용하여
스팀 엔진에 등록되어 있는 다양한 토큰들의 정보를 열람하는 것입니다.
이 후 토큰 클레임과 스테이킹, 전송 등을 살펴보고 나아가 토큰 매수와 매도까지 실행해 보도록 하겠습니다.
이를 이해하고 나면, 이후에는 이를 이용하여 자동으로 토큰을 클레임하고, 전송하는 봇을 만드는게 1차적인 목표입니다.
다음으로는 steem api를 이용하여, 스팀잇에 올라오는 포스팅들을 살펴보고...
자동 보팅과 자동 포스팅, 그리고 필요한 정보를 텔레그램으로 받을수 있도록 텔레그램 봇까지 다루어 볼 예정입니다.
갈길이 멀어 보이지만, 하나씩 하나씩 진행하다 보면 무리없이 해결해 나갈수 있다고 생각하며...
오늘은 그 첫걸음으로 이 모든것을 진행해 나가기 위한 기본적인 프로그램 설치부터 시작해 보겠습니다.
현재 스팀잇 개발자 분들은 python 아니면 node.js 를 많이 사용하고 계시더라구요. 이 둘중 제 생각에 초보자 분들이 조금 더 쉽게 접근할 수 있는게 python 바로 파이썬이라 생각했기에 저는 python으로 스팀을 다루어 보겠습니다.
그리고 저는 현재 윈도우7 환경에서 작업을 진행중인데 윈도우 10 환경에서와 간혹 조금씩 다른부분이 있더라구요.
그래도 기본적인 틀은 같은데.. 제가 놓칠 수 있는 부분이 있으니 그럴땐 댓글을 통해 질문 부탁드립니다. ( 될수 있으면 윈도우 10에서도 테스트를 해보겠습니다.)
#1. Python 프로그램 설치
앞으로는 그냥 파이썬이라 명칭하겠습니다.
파이썬 프로그래밍을 하기 위해서는 파이썬 프로그램을 설치해야 합니다.
파이썬 프로그램은
에서 다운받을 수 있습니다.
대부분 윈도우 환경을 사용하실거라 생각하기에 앞으로 저는 윈도우 환경 기반으로 실습을 해나갈 예정입니다.
위의 파이썬 링크로 들어가셔서 Downloads -> Download for Windows Python 3.7.4 버튼을 눌러 파이썬 프로그램 설치 파일을 다운 받으시면 됩니다.
그리고 다운받은 파일을 실행하여 설치를 하실 때
Add Python 3.7 to PATH 이것을 꼭 체크하시고 설치를 진행해 주시기 바랍니다.
PATA를 설정해둬야만 어디에서든 파이썬 프로그램을 실행할 수 있기에 꼭 체크를 눌러주세요.
설치가 끝난 후 윈도우 버튼을 누르고 cmd 를 치시면 cmd.exe 커맨트 창을 실행하는 파일이 나오는데 실행 하시고
커맨드창에서 python 엔터를 치시고 위와 같은 결과가 나오면 성공적으로 파이썬 프로그램 설치 완료가 된 것입니다.
이 상태에서 파이썬 명령어를 입력하여 파이썬 프로그램을 동작 시킬 수 있지만 일단 이것은 넘어가기로 하고....
혹시
이런 메시지를 보셨다면... 위에서 제가 강조했던 파이썬 프로그램 설치시에 Add Python 3.7 to PATH 부분을 체크 안하셨거나, 파이썬 프로그램이 정상적으로 설치가 안되었으니, 다시 한번 시도해 주시기 바랍니다.
#2. steemengine 파이썬 api 설치
그럼이제 스팀엔진을 파이썬으로 주무르기 위한 steemengine api를 설치해 보겠습니다.
https://github.com/holgern/steemengine
위 링크는 holgern의 steemengine 파이썬 api가 저장되어 있는 곳입니다.
예전 같으면 코드를 다운 받아 직접 설치를 해야 했지만... 이제는 자동으로 다 할수 있답니다.
먼저 이 상태에서 콘트롤(Ctrl) + z 키를 누르셔서 (윈도우10 환경이라면 콘트롤(Ctrl) + z 누르시고 엔터를 치시면 됩니다.)
파이썬 프로그램에서 빠져 나오시고
이제 pip install steemengine 엔터를 하시면
자동으로 steemengine 파이썬 api가 설치되게 됩니다.
전 이미 설치한 상태에서 다시 설치를 시킨거라 이렇게 나왔지만, 여러분들의 화면에서 빨간색 글자가 나오지 않았다면 아마도 정상적으로 설치가 됐을거라 생각합니다.
혹시나 빨간색 화면을 보신분은 커맨드창을 캡쳐해서 댓글 부탁드립니다. 제가 도와드릴수 있는데까지 도움드리겠습니다.
#3. 간단한 steemengine 예제
파이썬 프로그램과 steemengine 파이썬 api가 설치되었으니 이제 간단한 예제를 실행해 보겠습니다.
위에서 언급했던 holgern의 steemengine api
https://github.com/holgern/steemengine
링크에 접속하시면 간단한 예제들이 나옵니다.
먼저
from steemengine.api import Api
api = Api()
print(api.get_latest_block_info())
이 코드를 작성해서 실행해 보겠습니다.
steemengine.api 를 이용하여 최근 블럭들을 출력해주는 예제로 보이네요.
먼저 작업을 위해 적당한 곳에 작업 공간을 만들어 주시고 (저는 로컬 디스크 C: 에 steem 이라는 폴더를 생성하였습니다.)
그리고 메모장을 여시고
위의 코드를 복사해서 붙여놓기를 해줍니다.
그리고 다른 이름으로 저장
파일 형식은 모든 파일 ( * . * )
파일이름은 get_latest_block_info.py
으로 저장을 합니다.
그리고 커맨드 창에서 작업 공간으로 이동을 해줍니다.
저는 로컬 디스크 C: 에 steem이라는 작업공간을 만들어 두었기에
cd c:\steem
엔터를 쳐서
작업공간으로 이동하였습니다.
그리고
python get_latest_block_info.py
엔터
방금 작성한 코드를 실행하시면
뭔가 알수없는(?) 문자들이 줄줄 출력됩니다.
바로 이 문자열이 steemengine.api의 get_latest_block_info() 이라는 명령을 통해 최신의 블록 정보를 가져와서 출력된 것이랍니다.
화면을 살짝 올려보니 blockNumber : 726403 이라고 보이네요.
현재 최근 만들어진 블록이 726403이로군요.
그럼 다음의 코드도 작성하여 실행해 보겠습니다.
이번에는 특정 블록의 정보를 가져오는 예제입니다.
마찬가지로 메모장을 열어
from steemengine.api import Api
api = Api()
print(api.get_block_info(1910))
위의 코드를 복사해서 붙여 넣기 해주시고
다른 이름으로 저장
get_block_info.py 으로 저장을 해줍니다.
그리고 python get_block_info.py
엔터 해주시면
1910번 블록의 정보를 가져와서 출력을 해주는군요.
파이썬으로 steemengine의 api를 이용하여 이렇게 블록 정보를 가져와서 이것을 어떻게 가공하면 원하는 정보들을 쏙쏙 꺼내서 사용할 수 있겠죠.
이제 막 공부를 시작한 분들은 쉽지 않겠지만...
앞으로는 이 정보들을 능숙하게 다룰 수 있도록 함께 실력을 키워나가도록 해봅시다.
마지막으로 예제를 하나만 더 실행하고 오늘의 일기를 마치도록 하겠습니다.
이번에 실행할 예제는 특정 트랜젝션의 정보를 가져오는 예제입니다.
특정 트랜젝션의 정보는 트랜잭션 id를 통해서 가지고 올수 있답니다.
from steemengine.api import Api
api = Api()
print(api.get_transaction_info("e6c7f351b3743d1ed3d66eb9c6f2c102020aaa5d"))
역시 메모장에 붙여 넣기를 해주시고
다른 이름으로 저장
get_transaction_info.py 으로 저장을 해줍니다.
그리고 python get_transaction_info.py
엔터 해주시면
e6c7f351b3743d1ed3d66eb9c6f2c102020aaa5d 블록의 정보가 출력이 됩니다.
이렇게 해서 오늘 파이썬을 설치하고 이를 이용하여 steemengine api도 설치하고 블록 정보를 가져오는 예제까지 실행을 해보았네요.
아직 별로 재미가 없지요??
이제 막 발을 담궜기에 너무 겉만 핥아서 그런가 봅니다.
다음 시간에는 스팀엔진의 토큰들을 정보를 살펴보고, 특정 토큰의 거래 내역이라던지..
그리고 나아가 스팀잇의 파이썬 능력자이신 @tradingideas 님이 올려주시는 코드도 살펴보록 하겠습니다. 이게 바로 핵심!!!
그리고 메모장으로 파이썬 코드를 작성하고 실행하는건 조금 불편하기 때문에 파이썬 코드 작성을 위한 프로그램 설치도 해보도록 하겠습니다.
아마도 본격적인 재미는 다음 시간부터 생길테니... 다음 일기도 기대해 주시기 바랍니다.
그럼 오늘 하루도 수고하셨구요.
시간나시면 저보다 빠른 예습 해보시는 것도 좋을 것 같습니다.
감사합니다.
fur2002ks님의 미국의 하원의원, ‘비트코인을 죽일 수는 없다”...뻘짓 진행사항
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
우와!!! 굳헬로님~ 상당히 전문가적인 느낌이 납니다!!! 저도 다른분들 코딩볼 때마다 어떻게 하는건가 궁금궁금했었거든요~~ 앞으로 완전기대하겠습니다~^^
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
하하... 초보자 입니다~ ㅎㅎ
열심히 해보겠습니다~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
어제 트아님 예제를 한 번 따라해봤는데 아주 유용하더라구요.
굿헬로님 포스팅 놓치지 않고 보겠습니다.
스몬이랑 파이썬도 따라하면 중간은 간다!~~~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
네~ 트아님 소스만 활용하면 뭐든지 다 가능할것 같아요~ ㅎㅎㅎ
앞으로 차근차근 진도나가보겠습니다~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
굿굿. 기대 만빵입니다.
Posted using Partiko Android
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
아직 어렵네요.. ㅜㅜ
그치만 하나씩 하다보면 헬로님 발꿈치는 따라가나요?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
코딩을 안해본 사람이라면 어려울수도 있겠지만...
하나씩 하나씩 차근차근 배워가다 보면 감이 좀 올거에요~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
대박대박!! 한창 배우고 있어서 엄청나게 도움됩니다~~~ 감사합니다!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
별거 아닌데 도움이 된다고 하니 저도 감사합니다~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
와~~~ 대박!!! 저도 따라해볼까요? 윈도우10인데 가능할까요?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
윈도우 10도 거의 환경이 같아서 잘 될거에요.
저도 둘다 해보고 있는데.. 아직까진 거의 똑같네요~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
엄지 척^^
이젠 술을 줄이시고 열공 모드로~
아무거나 열열히 환영,응원합니다
엄지 다시 척
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
감사합니다~
술과함께하는 공부도 재미있을것 같은데... ㅎㅎㅎ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
헬로님!!
저는 따라 하지는 못 하지만 화이팅입니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
감사합니다~
열심히 해보겠습니다~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
이제 프로그램까지 ㄷㄷㄷ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
함께 공부하시죠~ ㅎㅎㅎ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you for your continued support towards JJM. For each 1000 JJM you are holding, you can get an additional 1% of upvote. 10,000JJM would give you a 11% daily voting from the 700K SP virus707 account.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi @goodhello!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 3.935 which ranks you at #4288 across all Steem accounts.
Your rank has dropped 7 places in the last three days (old rank 4281).
In our last Algorithmic Curation Round, consisting of 173 contributions, your post is ranked at #65.
Evaluation of your UA score:
Feel free to join our @steem-ua Discord server
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
정주행 하겠습니다. ~!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
감사합니다~
열심히 해보겠습니다~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
tradingideas님의 [암호화폐] 그것이 알고 싶다!! 하루에 얼마나 채굴되고 있을까? 속편
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
이제야 보고 있습니다. 열심히 보도록 하겠습니다.
감사합니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit