Как узнать отправителя транзакции

Как узнать, какие адреса являются входными данными данной транзакции, учитывая ее идентификатор транзакции? Я знаю, что есть способ, так как он используется на сайте satoshidice.com. Я хотел бы сделать это с помощью собственного программного обеспечения и не полагаться на какого-либо стороннего поставщика, который может легко убить их службу.

РЕДАКТИРОВАТЬ:

В основном я создаю проект PHP, где мне нужно узнать, когда приходит новая транзакция и какой адрес ее отправил. Поэтому мне нужен способ получить уведомление или запустить PHP-скрипт (вызываемый с необходимыми переменными [txid, адрес отправителя, адрес получателя, значение]), когда поступает новая транзакция.

Я отредактировал ваш вопрос, чтобы привести в порядок грамматику и орфографию, но также исправил предположение, что существует один адрес «отправителя». Вполне возможно, что транзакция имеет несколько входов и несколько выходов, поэтому единого «отправителя» не существует. SatoshiDICE это не волнует; он просто отправляет выигрыш на один из адресов отправки.

Ответы (2)

Я только что ответил на аналогичный вопрос . Соответствующие части:

Теперь можно определить список адресов, с которых была отправлена ​​транзакция, с помощью необработанных вызовов JSON-RPC API транзакции , которые были выпущены с версиями bitcoind и bitcoin-qt 0.7. Псевдокод для этого:

txid = <relevant transaction id>
addresses = []
raw_tx = decoderawtransaction(getrawtransaction(txid))
for(input in raw_tx['vin']) {
  input_raw_tx = decoderawtransaction(getrawtransaction(input['txid']))
  addresses.push(input_raw_tx['vout'][input['vout']]['scriptPubKey']['addresses'][0])
}
Пытаясь выяснить то же самое, ваша инструкция "decoderawtransaction(getrawtransaction(input['txid']))" сначала не удалась. Однако проблема устранена сама собой, и ваш пример заработал после того, как я дождался определения raw_tx['confirmation'] и raw_tx['blockhash'].
это в основном сканирует блокчейн для выходной транзакции, соответствующей хеш-значению в более поздней входной транзакции. нет ли способа получить ответ, используя входной скрипт?
Задал вопрос , связанный с вашим псевдокодом. Был бы признателен, если бы вы могли взглянуть.
Обратите внимание, что если ваш кошелек не отправил предыдущую транзакцию, вам нужно будет включитьtxindex=1 в bitcoin.conf отслеживание транзакций вне кошелька. В противном случае вызов getrawtransactionзавершится ошибкой

Клиент Bitcoin.org не предоставляет этого.

Я считаю, что ваши варианты:

Я думал об использовании ABE, но мне сказали, что он использует около 1,4 ГБ оперативной памяти, что слишком много для моего «маленького» vps с 2 ГБ оперативной памяти. Другие более «легкие»?