파이썬 beem에서 스팀 API 노드 전환

in python •  2 years ago 

파이썬 beem에서 스팀 API 노드에 문제가 있을 경우 다른 노드로 전환하는 방법입니다. 접속 대상 노드 목록을 리스트(list)로 가지고 있다가, 접속에 실패하면 순차적으로 다른 노드에 접속하도록 할 수 있습니다. 예제를 보겠습니다.

from beem import Steem
from beem.account import Account

import time

# 접속 노드 목록
node_list = ['https://api.steemit.com', 'https://"https://steemapi.boylikegirl.club"]

# 초기 인덱스값 0
node_idx = 0

while True:
  try:
    print("API 노드 접속:", node_list[node_idx])
    # 인덱스 node_idx에 해당하는 원소가 접속 대상 API노드
    s = Steem(node=node_list[node_idx])
    a = Account(steem_id, blockchain_instance=s)
    # 예외 발생 없이 접속이 완료되었으면 무한 루프에서 탈출
    break
  except:
    print("API 노드 접속 실패:", node_list[node_idx])
    print("다른 노드로 전환합니다.")
    # 다음 인덱스에 있는 노드로 접속하도록 node_idx 갱신
    node_idx = (node_idx + 1) % node_list_len
        
print("접속 성공:", node_list[node_idx])

try/except 구문을 이용해서 Steem 객체와 Account 객체가 예외 발생 없이 정상적으로 생성되면 무한 루프를 빠져나오고, 예외가 발생하면 접속 대상 노드를 바꾸는 방식입니다.


jsup 업보팅 서비스를 소개합니다.

jsup 업보팅 서비스를 활용한 일종의 오토보팅(auto-voting)

jsblurt 프로젝트 - 블러트 블럭체인 탐색기 (텔레그램 챗봇)

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 BLURT!
Sort Order:  
  ·  2 years ago  ·  

This post has been manually upvoted by @epistem


You are invited to use the tag #epistem when posting within the niche of the community. Also, follow us on @epistem and on our Discord community to keep abreast with the activities of the community.