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

Я хочу получить доступ к неизрасходованным данным определенного биткойн-адреса.

я пробую эту команду

bitcoin-cli -regtest listunspent «какой-то биткойн-адрес»

Но я всегда получаю пустой список. Я использую локальный биткойн-сервер на Windows 7.

Что мне делать или использовать любую функцию для получения желаемого результата?

Ответы (7)

listunspentотображает только информацию об адресах, которые в настоящее время являются частью вашего кошелька. Bitcoin Core не поддерживает индексы неизрасходованных выходных данных для адресов, которыми вы не владеете, и просто вернет пустой набор, если вы попытаетесь запросить их.

Помогает ли txindex=1каким-либо образом listunspent?

Как упоминалось здесь , вы можете сначала получить адреса учетной записи с помощью, getaddressesbyaccountа затем перечислить все неизрасходованные адреса с помощью

bitcoin-cli listunspent 6 9999999 "[\"1PGFqEzfmQch1gKD3ra4k18PNj3tTUUSqg\",\"1LtvqCaApEdUGFkpKMM4MstjcaL4dKg8SP\"]"  

где 6 и 9999999 - это minи maxподтверждения

ОП спрашивает о произвольных адресах, а не только о тех, что в его кошельке.
о.. моя ошибка :) надеюсь, что это может помочь людям, которые хотят получить неизрасходованные адреса кошелька.

Чтобы получить неизрасходованный список определенного биткойн-адреса (не принадлежащего вашему кошельку), вы должны сначала импортировать адрес в кошелек, используя importaddress . Для этого RPC не требуется закрытый ключ этого адреса. Обратите внимание, что это заставит программу повторно сканировать всю цепочку блоков, что займет несколько минут.

теперь вы можете использовать вызов listunspent для получения UTXO.

Редактировать: используйте повторное сканирование: true, если вы импортируете уже существующий адрес

Я пробовал это, но не работал. Я получаю пустой массив результатов, когда запускаю вызов listunspent rpc
Вы импортировали адрес?
Да. Что происходит, когда я импортирую платье, я получаю этот ответ { result: null, error: null, id: 'd542c95d-ad8f-4a8e-b92f-6a69fa051e9d' } , а затем, когда я пытаюсь просмотреть список, я получаю{ result: [], error: null, id: '460bdaa4-5209-4dc8-ba76-582e3e0cc0e4' }
привет @JosephAkayesi, Ответ полностью в порядке. вам следует включить опцию повторного сканирования, если на адресе уже есть неизрасходованные средства. например: биткойн-кли importaddress "мой адрес" "тестирование" правда. Вы можете обратиться сюда: bitcoin.org/en/developer-reference#importaddress
Ух ты. Я читал, что повторное сканирование может занять вечность. Для моего варианта использования мне нужно иметь возможность считывать неизрасходованные значения менее чем за 10 секунд.
Даже после использования опции повторного сканирования я все равно получаю тот же результат. У вас есть идеи, где я могу найти bitcoin.conf, который идеально подходит для приложения для обмена биткойнами?

Предполагая, что адреса находятся в вашем кошельке, вы ищете listreceivedbyaddress. Это вернет вам это:

Возвращает массив объектов, содержащий:

  • "адрес": адрес получения
  • "account" : аккаунт получающего адреса
  • "amount": общая сумма, полученная по адресу
  • "confirmations": количество включенных подтверждений самой последней транзакции.
  • «txids»: список идентификаторов транзакций, к которым вы можете перейти gettransaction, чтобы увидеть полную транзакцию.

(Источник.)

Да, но если я хочу получить неизрасходованные деньги с адреса, который не является частью моего кошелька? чем какую функцию я должен использовать? @Ник
@HassanMehmood Не существует. Вместо этого используйте биткойн-абэ или электрум-сервер или blockchain.info.
Эй, из ответов я добавил одну свою мультиподпись, используя эту команду «addmultisigaddress». и отправил немного сатоши на этот адрес. но я все еще получаю пустой список после вызова :listunspent" ???
@HassanMehmood Вам нужно перезапустить с повторным сканированием. bitcoin.stackexchange.com/questions/22199/…
Я перезапустил с повторным сканированием, но все еще получаю пустой список.. @Nick
@HassanMehmood Есть ли неизрасходованные средства по этому адресу? Повторное сканирование завершено?
Да, есть неизрасходованные средства. Это адрес «31zeoskE8zeyQARFEVzwJzsp7GQpLn5zhF», и я запустил сервер с помощью bitcoind.exe -daemon -rescan -debugnet -printtoconsole.
И да, я думаю, что рескан закончен!
но все еще получаю пустой список. :/
Теперь я отправил немного биткойнов на один из других адресов, которые мне показывают при выполнении команды «getaddressesbyaccount». и после этого я запускаю cmd "listunspent 0", чтобы показать эту транзакцию. Но после этого я снова отправляю немного BTC на свой адрес mulisig, который я добавил с помощью команды addmultisigadress. Но listunspent не показывает неизрасходованные средства, связанные с мультиподписью? Почему ?
addmultisigaddress недостаточно, чтобы кошелек считал адрес своим; вам также необходимо иметь все закрытые ключи. Если вы хотите, чтобы адрес считался вашим независимо от ключей, используйте importaddress.

Неизрасходованные данные появляются в списке неизрасходованных только после ШЕСТИ подтверждений.

Попробуйте эту команду,

bitcoin-cli -regtest listunspent "some bitcoin address" 0

Он покажет все неизрасходованные транзакции.

Я запускаю ту же команду, но получаю в ответ пустой список. Сначала я сгенерировал и добавил адрес с мультиподписью, используя команду «addultisigaddress» и вызов listunspent. Но в результате я всегда получаю пустой список, хотя я отправил несколько сатоши на этот адрес 2 раза

Другие варианты, помимо того, что упомянул Ник, — либо использовать API toshi.io:

toshi.io - API - utxo для адреса

Или запустите свой собственный узел toshi:

тоши.ио

chain.com также очень хорош и прост в использовании! но я пытался не использовать сторонние API.
@HassanMehmood, если локальный запуск узла тоши вам тоже не нужен (он занимает более 200 ГБ места), тогда вы можете запустить биткойн-ядро с включенным txindex. Затем вам придется разобрать блокчейн, создать и поддерживать базу данных utxo самостоятельно. Как указывали другие, если вам просто нужен аргумент биткойн-кли, его не существует.

Я написал программу, которая позволяет вам искать любой адрес, независимо от того, принадлежит ли он вашему кошельку или нет, на Python3.

Вот ссылка на гитхаб:

https://github.com/ORP967/Bitcoin_Core_RPC_par_адрес

Дайте мне знать, если у вас, ребята, есть какие-либо улучшения, которые можно внести в него.