[AD]MCO VISA 암호화폐로 결제하자

굳헬로의 스팀 프로그램 일기!! 서른여섯번째 #36 스팀엔진 블록 검사 놓치는 블록이 없도록 해보자!! 파일 입출력 기능 활용!!

in sct •  7 months ago 

steem.jpg

비가 내리는 목요일 잘 보내고 계신가요??

비 내렸던 어제 저녁엔 부추전에 막걸리 마시며 즐거운 시간을 보냈는데, 오늘도 계속 비가 내리니 또 막걸리 생각이 간절하네요.

그래도 우선 프로그램 일기부터 남겨보겠습니다.


원피스 조합과 유니온 조합에서 그동안 제가 만든 자동 클레임과 자동 분배 프로그램을 잘 사용하고 있었는데요.

오늘 아침 확인해보니 임대 내역 반영이 하나가 덜 되어 그 상태로 분배가 되었더라구요.

제가 우려 했던 부분이기도 한데 현재 스팀엔진 블록을 실시간으로 검사하여 임대 내역을 데이터베이스에 저장 해두고 있습니다.

그런데 가끔 블록에 이상이 있을때 블록 검사에 놓치는 블록이 있는지 임대내역이 누락되는경우가 있더라구요.

제가 보통 아침마다 확인하는지라, 누락된 정보는 스팀엔진 익스플로러부터 받아와서 추가를 시키고 있었습니다.

이런일이 생기지 않도록 블록을 검사할때 누락되는 부분이 없도록 코드를 짜면 되는데, 알고는 있었는데 그동안 작업을 미루고 있던 사이에 이런일이 발생하였네요.

    latest_block = api.get_latest_block_info()
    latest_block_num = latest_block['blockNumber']
    #print("latest_block_num : ", latest_block_num )
    start_block_num = latest_block_num - 100

기존에는 프로그램이 새로 시작될때 적당히 최신 블록에서 100개정도 더 빠른 블록부터 검사하면 되겠다 싶어 시작블록을 최신 블록 넘버 - 100 부터 작업을 시켰는데, 스팀엔진 블록에 오류 시간이 길어져 100개 보다 더 많은 블록이 생성되버려 누락이 있었던 것 같습니다.

블록을 검사할때 검사한 블록 넘버를 따로 저장해두고 블로검사에 오류가 생겨 프로그램이 다시 시작할때면 검사한 블록 넘버를 가지고 와서 다음 블록부터 검사하면 누락되는 경우가 없을텐데 말입니다.

그래서 블록검사가 완료된 블록 넘버를 데이터베이스나 파일에 저장해서 프로그램에 오류가 생겼을때 검사가 끝난 다음 블록부터 검사가 시작되도록 코드를 수정하였습니다.

그런데 블록 넘버를 데이터베이스에 저장해두고 쓰려다 이번에는 새로운것을 사용해 보기 위해 파일에 기록해 보기로 했습니다.

block_num_json = {"block_num": block_num}
with open("block_num.json",'w',encoding="utf-8") as save_block_num: 
    json.dump(block_num_json, save_block_num, ensure_ascii=False, indent="\t") 

블로검사가 끝날때마다 block_num.json 파일에 블록넘버를 기록합니다.

with open("block_num.json",'r',encoding="utf-8") as load_block_num: 
    start_block_num = json.load(load_block_num)['block_num'] 

block_num.json에 저장된 블록넘버를 가지고 와서 start_block_num에 넣습니다.

for block_num in range(start_block_num , latest_block_num + 1):
    print(block_num)

이제 start_block_num 부터 최신 블록넘버 latest_block_num 까지 for 반복문을 이용하여 블록들을 검사합니다.

프로그램이 시작되면 파일에 기록된 블록넘버부터 최신 블록넘버까지 검사가 진행되며

block_num.json 파일에 위와같이 블록넘버가 저장됩니다.

그렇게 파일에 검사 완료한 블록넘버를 갱신해가며 계속 검사가 진행됩니다.

아마도 이제 놓치는 블록이 없을것 같은데, 앞으로 진행상황을 계속 모니터링 해봐야 겠습니다.

그리고 유니온 조합과 원피스 조합의 분배 프로그램도 조금 손을 보았습니다.

분배가 시작될때 스팀엔진으로부터 임대 내역을 가져온것과 데이터베이스로부터 계산된 임대내역을 비교하여

임대 내역이 같지 않다면 분배를 보류하고, 다시 데이터베이스의 임대 내역을 갱신하여 분배를 다시 진행하도록 만들었습니다.

그런데 여기에서도 스팀엔진 블록 익스플로러가 먹통일때가 종종 있다보니 대안을 생각해 봐야 할 것 같습니다.

그보다도 스팀엔진 블록검사가 완벽하게 이루어진다면 임대 내역을 놓치는 일은 없을거라 생각합니다.

이제 스팀엔진 블록뿐만이 아니라 스팀 블록도 검사를 해서 원하는 정보를 데이터베이스에 넣으려고 합니다.

그런데 스팀 블록은 스팀엔진 블록보다 훨씬 데이터가 많다보니 험난한 길이 될 것 같네요.

지금 텔레그램 보팅 알람 서비스가 작동을 안하고 있는것 같은데, 우선적으로 보팅 알람을 받아 보는 프로그램을 만들어 보고 싶네요.

그럼 다음 시간에는 열심히 공부해서 보팅 알람 한번 도전해 보겠습니다.

행복한 하루 보내시구요~

오늘 하루도 파이팅입니다~


굳헬로의 스팀 프로그램 일기!! 시리즈

#1 굳헬로의 스팀 프로그램 일기!! 대망의 시작 #1 Python 프로그램 설치 && steemengine 파이썬 api 설치 && 간단한 steemengine 예제

#2 굳헬로의 스팀 프로그램 일기!! 그 두번째 #2 비주얼 스튜디오 코드 프로그램 설치 && 비주얼 스튜디오 코드를 사용하여 파이썬 다루기 && 간단한 steemengine 예제

#3 굳헬로의 스팀 프로그램 일기!! 세번째 #3 스팀엔진 토큰의 정보를 가져오는 findOne() && 누군가의 토큰 사용 내역을 가져오는 get_history() && JSON 데이터 출력

#4 굳헬로의 스팀 프로그램 일기!! 네번째 #4 steemengine Token 클래스 && Token.get_holder() && Token.get_market_info() && Token.get_buy_book() && Token.get_sell_book()

#5 굳헬로의 스팀 프로그램 일기!! 다섯번째 #5 스팀엔진 블록을 뒤져서 원하는 정보를 찾아보자!! 스팀엔진 마켓 거래 내역을 뽑아내는 예제

#6 굳헬로의 스팀 프로그램 일기!! 여섯번째 #6 파이썬으로 스팀엔진 토큰들을 클레임 해보자.

#7 굳헬로의 스팀 프로그램 일기!! 일곱번째 #7 프로그램 일기도 어느덧 1주일!! 드디어 첫 실전!! 무한 반복 작업 수행하기!! 이제 직접 클레임 하는 손맛은 잊자. 무한 반복 자동 클레임!!

#8 굳헬로의 스팀 프로그램 일기!! 여덟번째 #8 텔레그램 봇을 이용해 알림을 받아보자!! && 무한 반복 자동 클레임의 정보를 텔레그램으로 받아보기!!

#9 굳헬로의 스팀 프로그램 일기!! 아홉번째 #9 무한 반복 자동 클레임 업그레이드!! && 토큰 잔고 확인 && 토큰 전송과 토큰 전송 내역을 텔레그램으로 받아보기!!

#10 굳헬로의 스팀 프로그램 일기!! 열번째 #10 토큰 전송내역을 검사하고, 토큰을 전송 받으면 텔레그램으로 알림을 받아보기!!

#11 굳헬로의 스팀 프로그램 일기!! 열한번째 #11 스팀엔진 토큰 임대내역 추적. 쉽지 않았던 머나먼 여정 (1/2)

#12 굳헬로의 스팀 프로그램 일기!! 열두번째 #12 스팀엔진 토큰 임대내역 추적. 쉽지 않았던 머나먼 여정 (2/2) 스팀엔진 토큰 임대내역 추적 완료!!

#13 굳헬로의 스팀 프로그램 일기!! 열세번째 #13 웹 프로그래밍의 시작!! 파이썬을 이용하여 정보를 MySQL 데이터 베이스에 저장해보기!!

#14 굳헬로의 스팀 프로그램 일기!! 열네번째 #14 파이썬을 이용하여 데이터베이스로부터 정보를 가져오기 && 스팀코인판 3대풀 임대내역 데이터베이스 작업 완료!!

#15 굳헬로의 스팀 프로그램 일기!! 열다섯번째 #15 웹 프로그래밍을 이용하여 스팀코인판 3대조합의 임대 내역을 웹으로 확인해보자 !!

#16 굳헬로의 스팀 프로그램 일기!! 열여섯번째 #16 스팀엔진 최신 블록을 검사하여 필요한 정보를 데이터베이스에 저장하기!! 3대 조합의 임대내역을 최신으로 저장하기!!

#17 굳헬로의 스팀 프로그램 일기!! 열일곱번째 #17 조합들이 필요한 기능 드디어 완성!! 자동 클레임과 자동 분배 기능!!

#18 굳헬로의 스팀 프로그램 일기!! 열여덟번째 #18 스팀코인판 3대 조합의 임대내역과 실시간 예상 분배 금액을 웹으로 확인해보자!!

#19 굳헬로의 스팀 프로그램 일기!! 열아홉번째 #19 어제 만든 프로그램 업그레이드!! 개별 상세내역보기 기능 추가!!

#20 굳헬로의 스팀 프로그램 일기!! 어느덧 스물번째 #20 시행착오... 그리고 시련... 하지만 원사마님 덕분으로 엄청난 레벨업!! 감사합니다. 더욱 발전하겠습니다.

#21 굳헬로의 스팀 프로그램 일기!! 스물한번째 #21 레벨업을 했지만 또 다시 찾아온 시련!! 프로그램 결과와 블록체인에 기록된 결과가 다르다!! 어떻게 해야 할까...

#22 굳헬로의 스팀 프로그램 일기!! 스물두번째 #22 오늘부터 새로운 도전!! 자동 보팅 만들기!! 그 첫번째 스팀코인판의 소각글에 자동보팅을 해보자!! 첫번째 시간 (1/N)

#23 굳헬로의 스팀 프로그램 일기!! 스물세번째 #23 스팀코인판의 소각글의 정보를 가지고 와서 자동보팅을 해보자!! 그 두번째 시간 (2/N)

#24 굳헬로의 스팀 프로그램 일기!! 스물네번째 #24 스팀코인판 3대조합의 임대내역을 웹으로 확인해보자!! 업그레이드!!

#25 굳헬로의 스팀 프로그램 일기!! 스물다섯번째 #25 스팀코인판 3대조합의 임대내역을 웹으로 확인해보자!! 업그레이드 2!! 그리고 개발 예정 사항 공개!!

#26 굳헬로의 스팀 프로그램 일기!! 스물여섯번째 #26 드디어 첫 실전 가동 준비중... 스팀코인판 유니온 조합의 수익 자동분배 작업 완료중...

#27 굳헬로의 스팀 프로그램 일기!! 스물일곱번째 #27 스팀코인판 유니온 조합 첫 자동 분배 결과!! 그리고 보완!!

#28 굳헬로의 스팀 프로그램 일기!! 스물여덟번째 #28 스팀코인판 유니온 조합 자동 분배 프로그램의 결과를 웹으로 확인해 보자!!

#29 굳헬로의 스팀 프로그램 일기!! 스물아홉번째 #29 스팀코인판 유니온 조합 자동 분배 상황을 텔레그램으로 확인!! 임내 확인 페이지 정렬 기능 추가!!

#30 굳헬로의 스팀 프로그램 일기!! 서른번째 #30 스팀코인판 조합의 임대량 페이지 정렬 기능 업그레이드!! 그리고 임대량 파이 차트 완성!!

#31 굳헬로의 스팀 프로그램 일기!! 서른한번째 #31 스팀코인판 조합의 하루하루 임대량 변화를 차트로 확인해보자!!

#32 굳헬로의 스팀 프로그램 일기!! 서른두번째 #32 트리플A를 이용하면서 그동안 번거로웠던 클레임 스테이킹 전송 작업 이젠 안녕!! 자동으로 AAA를 전송하고 클레임하고 스테이킹을 해보자!!

#33 굳헬로의 스팀 프로그램 일기!! 서른세번째 #33 굳헬로가 만든 스팀코인판 조합 자동 클레임과 자동 분배 프로그램 원피스 조합에도 사용 개시!!

#34 굳헬로의 스팀 프로그램 일기!! 서른네번째 #34 스팀코인판 조합 원피스 자동 클레임과 자동 분배 프로그램 업그레이드!! 텔레그램 봇으로 그룹 메시지를 받아보자!!

#35 굳헬로의 스팀 프로그램 일기!! 서른다섯번째 #35 스팀에서 새글 정보를 텔레그램으로 받아보자!! 함께 정보를 받아보는 텔레그램 그룹방 개설!!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

어제 저녁엔 부추전에 막걸리 마시며 즐거운 시간을 보냈는데

그러고보니 굳헬로우님 막걸리 사진 못본게 오래되네요!! ㅎㅎ
뭐 오늘도 한잔 하시면 되죠^^ 막걸리 가즈아!!

막걸리 사진 엄청나게 쌓이고 있는데... 알코올 일기도 다 쓰고 싶네요~ ㅎㅎ

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

You published more than 950 posts. Your next target is to reach 1000 posts.

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!

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.

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.983 which ranks you at #4068 across all Steem accounts.
Your rank has not changed in the last three days.

In our last Algorithmic Curation Round, consisting of 124 contributions, your post is ranked at #68.

Evaluation of your UA score:
  • You're on the right track, try to gather more followers.
  • The readers like your work!
  • Good user engagement!

Feel free to join our @steem-ua Discord server

댓글 테스트!!

댓글 테스트2!!