Как получить баланс десятков тысяч адресов?

Как лучше всего получить баланс большого количества адресов? Я пытался использовать API от разных провайдеров, но они ограничивают количество запросов. Существуют ли какие-либо API, предоставляющие услуги премиум-класса без ограничения запросов?

Или, может быть, я должен запустить полный узел и использовать его? Если да, то как я использую полный узел для получения баланса адресов? Я использую Ruby on Rails.

Спасибо.

Ответы (2)

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

Я рекомендую вам запустить полную ноду (Bitcoin Core 0.13.2 на момент написания статьи).

Адреса-индекса нет (есть патч, который можно вручную скомпилировать в Core).

Самый простой способ со стандартным Bitcoin-Core 0.13.2 — это импортировать все ваши адреса только для просмотра в кошелек.

импортировать адреса

Используйте вызов RPC importaddress <address> "" falseдля импорта адреса только для просмотра.

Третий аргумент falseнеобходим, чтобы не сканировать блокчейн при каждом импорте (может занять несколько часов).

Как только вы импортируете все адреса, остановите bitcoind/qt и перезапустите его с параметром запуска -rescan.

Повторное сканирование может занять несколько минут/часов (в зависимости от вашего диска/ОЗУ/процессора). После этого вы можете позвонить getreceivedbyaddress <addr>по каждому адресу, чтобы получить баланс.

Это приводит к достоверным, самопроверенным данным.

Примечание. Если вы используете Bitcoin Core 0.14, рассмотрите возможность импорта нескольких адресов сimportmulti

Привет, спасибо за ваш ответ, но этот метод не очень эффективен, если список адресов меняется при каждом запуске, потому что при каждом запуске мне нужно проходить этот процесс, который может занять некоторое время. Если я запускаю полный узел, у меня должен быть доступ ко всем данным в блокчейне, не так ли? Нет удобного способа получить доступ к этим данным?
Тогда вам нужен индекс адреса. Либо посмотрите на существующие патчи ядра (есть запрос на вытягивание для Bitcoin Core), либо попробуйте использовать существующие альтернативы (Bitpays Insight [на основе Bitcoin Core])
Спасибо! Пытался найти решение своего вопроса, но не нашел. Я думаю, что это решение следует добавить в официальную документацию/вики Bitcoin Core.

Вы пробовали API блокономики . Их бесплатные планы позволяют использовать 50 адресов одновременно, а платные — до 8000.

Если вы хотите запустить свой собственный узел. Я бы порекомендовал запустить abe blockexplorer вместе с вашим node. Основной кошелек и другие кошельки SPV, такие как Electrum, известны тем, что становятся вялыми с большим количеством адресов.