В списке вызовов API: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
Вы можете передать адрес в качестве параметра «listtransactions», чтобы получить последний список транзакций с адреса. Что, если я хочу получить последние 25 транзакций из списка из 20 адресов. Означает ли это, что я должен сделать вызов «listtransactions» 20 раз, а затем отсортировать конечные результаты?
Вызов конечной точки API 20 раз — это нормально, моя проблема в том, что если нам нужно выполнить разбиение на страницы, это очень быстро станет очень неуправляемым, потому что действительно сложно определить, что такое транзакции 26-50 с 20 разных адресов.
Спасибо
РЕДАКТИРОВАТЬ: я обнаружил, что BlockchainInfo предлагает очень удобную конечную точку для этого:
https://blockchain.info/api/blockchain_api
Конечная точка: http://blockchain.info/multiaddr?active= $address|$address (несколько адресов, разделенных знаком |). Однако это возвращает только "txs":[--Последние 50 транзакций--] и не вам сделать смещение (например, чтобы получить транзакцию 51-100)
Самый эффективный способ получить список транзакций с нескольких адресов — хранить каждую транзакцию кошелька в локальной базе данных, например MySQL или MongoDB, а затем выполнять запросы к этой базе данных.
Вы можете синхронизировать свою локальную базу данных с биткойн-кошельком через RPC, периодически вызывая listsinceblock() и отслеживая последний блок, или запустив клиент с необязательным параметром -walletnotify, чтобы запустить скрипт для уведомления вашей базы данных о новых транзакциях.
Однако будьте осторожны с -walletnotify. Он будет вызываться дважды для каждой транзакции, и если у вас много транзакций, это может произойти много. Поэтому убедитесь, что команда -walletnotify не использует много ресурсов ЦП/ОЗУ.
listsinceblock
. Я хотел бы спросить, при подсчете суммы депозитов для каждого уникального адреса пользователя учитываются ли транзакции только одной категории receive
и generate
игнорируются ли все другие категории транзакций?
Стефан Хименес
самол