Лучший способ получения массовой информации об адресах (общее количество отправленных, полученных и окончательный баланс)

Мне нужно просмотреть большой список (около 100 000) биткойн-адресов и, если у них есть окончательный баланс, найти его, а также общее количество отправленных и полученных средств. Я работаю на python и просматривал различные API, но пока нашел лучшее решение для получения данных JSON с https://blockchain.info/

Я использую:

urllib.urlopen("https://blockchain.info/multiaddr?cors=true&active="+testStr)

где testStr — до 23 адресов, разделенных символом |

Это возвращает страницу, которую я выгружаю в json и анализирую нужные мне данные. Мне просто интересно, есть ли более быстрый способ получить эту информацию, а не несколько вызовов blockchain.info? Благодарность

Ответы (1)

Если вы занимаетесь научными или академическими исследованиями, вы, вероятно, не будете использовать blockchain.info. Потому что это будет означать, что вы в основном доверяете bitcoin.info как источнику блокчейна. Было бы неплохо создать и запросить собственную копию блокчейна, установив и синхронизировав узел Bitcoin-Core .

Простой скрипт JSON RPC на Python (или другом языке) может решить вашу проблему. (требуется синхронизированный узел биткойн-ядра)

  1. Добавить 1000 (из 100 000) адресов через вызов RPCimportaddress
  2. Получите баланс каждого адреса, вызвав `listreceivedbyaddress
  3. Остановить биткойн-ядро
  4. Удалить wallet.dat
  5. Запустить биткойн-ядро

--> вернуться к 1)

Вы можете увеличить или уменьшить адресный фрейм (1000) в зависимости от ресурсов ЦП/памяти/диска вашей системы.

Привет. Спасибо за отзыв! Сначала я должен попытаться закодировать это, но может ли это быть медленнее или быстрее, чем опрос блокчейна? На данный момент меня больше всего волнует скорость.
Очень вероятно, что доступ к blockchain.info будет быстрее, потому что у них есть адресный индекс. Вам нужно повторно сканировать после каждого кадра (адрес +/-1000), что может занять несколько минут. Но blockchain.info может заблокировать ваш доступ из-за большого трафика или чего-то подобного.