Каков наиболее эффективный способ загрузки данных биткойн-блокчейна? - PullRequest
0 голосов
/ 26 июня 2019

Я написал скрипт, который получает в качестве входных адресов биткойны и загружает все блоки, содержащие транзакции двух входных адресов, из blockchain.info. Общее количество блоков: 6013

Проблема в том, что я постоянно получаю случайные ошибки. Последняя ошибка, которую я получил:

request.exceptions.ConnectionError: ('Соединение прервано.', RemoteDisconnected ('Соединение с удаленным концом закрыто без ответа',))

Я сохраняю соответствующие значения переменных до сбоя, чтобы в следующий раз начать с них.

Идентификатор, если он связан, но я получал много 500 кодов состояния. Поэтому каждый раз, когда посылается код состояния 500, я устанавливаю таймер на 20 ", прежде чем снова пытаюсь подключиться к серверу.

Я предоставлю код для подключения.

    for line in tmp:
        words = line.split(",")
        s = words[2]
        s2 = words[1]
        print("Block Index: ", s, "Block Height: ", s2)

        with requests.Session() as keep_alive:
            url = "https://blockchain.info/rawblock/" + str(s)

            response = keep_alive.get(url, stream = True)
            if response.status_code == 200:
                print("Status code: ", response.status_code)

            increase = 0
            sc = response.status_code #status code
            while sc == 500 or sc == 104:
                print("Status code: ", response.status_code)
                print("Server side message: ", response.text)
                response.close()
                t = 20
                while t:
                    mins, secs = divmod(t, 60)
                    timeformat = '{:02d}:{:02d}'.format(mins, secs)
                    print(timeformat, end='\r')
                    time.sleep(1)
                    t -= 1
                response = keep_alive.get(url, stream = True)
                print("Status code: ", response.status_code)

        data = response.json()

На данный момент я понятия не имею.

...