Author

Topic: Получить адрес того, кто прислал биткоины (Read 3668 times)

newbie
Activity: 7
Merit: 0
Познавательно
newbie
Activity: 3
Merit: 0
Спасибо за ответы. Разобрался. Рескан занял не много времени, главное в bitcoin.conf прописать нужные опции (txindex=1, daemon=1) чтобы было в последующем просто вызывать, и все ОК.
newbie
Activity: 10
Merit: 0
Все от производительности машины зависит
legendary
Activity: 1120
Merit: 1069
и много заняло времени рескан кошелька?
у меня на очень слабой машине со старым жестким диском 0.8 версия переиндексировала блоки за три-четыре часа (блоки за последний месяц обрабатывались дольше всего). рекомендую на это время сделать ramdisk и скопировать файлы на него, скорость может увеличиться на порядок. Так же рекомендую настроить входящие соединения на фаерволе, так как только 8 исходящих подключений может оказаться недостаточно для быстрой загрузки блоков.
newbie
Activity: 3
Merit: 0
После decoderawtransaction смотри на "vin". Там перечислены ИД исходящих транзакций, которые тоже на декодировать. "vout" во входящей транзакции указывает на номер выхода в исходящей. Выходы в исходящей лежат в секции "vout". Там же и объем перевода.
Начиная с версии 0.8 индекс кошелька по умолчанию не содержит чужих транзакций. Поэтому команда getrawtransaction не сработает. Для исправления этой ситуации необходимо запускать кошель с опцией txindex=1 и один раз -rescan.
Спасибо, кажется разобрался. Значит я делаю listtransaction(аккаунт), вытаскиваю оттуда amount и txid всех транзакций, у которых category == recieve и confirmations > 5. Потом делаю decoderawtransaction(getrawtransaction(txid)), оттуда беру vin['vout'] и vin['txid'], после чего делаю  decoderawtransaction(getrawtransaction(vin['txid'])) и беру отттуда details[vout]['address'].

celestia, тоже интересуюсь этой темой. Скажи пожалуста, этот вариант сработал для тебя?
и много заняло времени рескан кошелька?
hero member
Activity: 742
Merit: 500
на каждого получателя заводить в системе свой адрес
Это был бы возможный вариант, но аккаунтов нету и не думаю, что есть смысл их делать.
Это именно тот вариант, который ДОЛЖЕН быть. Прочие варианты ведут к потенциальным проблемам.

Аккаунт создавать не обязательно, достаточно адреса.
jr. member
Activity: 33
Merit: 1
на каждого получателя заводить в системе свой адрес
Это был бы возможный вариант, но аккаунтов нету и не думаю, что есть смысл их делать.
full member
Activity: 168
Merit: 100
Как раз в этом вопрос же, это мне и нужно.
Тогда достаточно просто смотреть баланс этого вашего адреса - и будет понятно, пришли деньги или нет.
Нужно узнать от кого пришли еще. В принципе я уже разобрался.

на каждого получателя заводить в системе свой адрес
jr. member
Activity: 33
Merit: 1
Как раз в этом вопрос же, это мне и нужно.
Тогда достаточно просто смотреть баланс этого вашего адреса - и будет понятно, пришли деньги или нет.
Нужно узнать от кого пришли еще. В принципе я уже разобрался.
hero member
Activity: 742
Merit: 500
Как раз в этом вопрос же, это мне и нужно.
Тогда достаточно просто смотреть баланс этого вашего адреса - и будет понятно, пришли деньги или нет.
jr. member
Activity: 33
Merit: 1
Есть аккаунт, нужно по нему получить список входящих транзакций с больше чем 5 подтверждениями с суммой и адресами отправителей каждой транзакции. Я смог получить список транзакций (listtransactions), откуда вытащил txid транзакций с больше чем 5 подтверждениями, а что делать дальше я не знаю.
Это я вообще к тому, что по правилам хорошего тона, отправителя надо определять по адресу, НА который посылают деньги, а не наоборот Smiley

Понимаю что вопрос не в этом, но лучше предупредить.
Как раз в этом вопрос же, это мне и нужно.
hero member
Activity: 742
Merit: 500
Есть аккаунт, нужно по нему получить список входящих транзакций с больше чем 5 подтверждениями с суммой и адресами отправителей каждой транзакции. Я смог получить список транзакций (listtransactions), откуда вытащил txid транзакций с больше чем 5 подтверждениями, а что делать дальше я не знаю.
Это я вообще к тому, что по правилам хорошего тона, отправителя надо определять по адресу, НА который посылают деньги, а не наоборот :)

Понимаю что вопрос не в этом, но лучше предупредить.
jr. member
Activity: 33
Merit: 1
После decoderawtransaction смотри на "vin". Там перечислены ИД исходящих транзакций, которые тоже на декодировать. "vout" во входящей транзакции указывает на номер выхода в исходящей. Выходы в исходящей лежат в секции "vout". Там же и объем перевода.
Начиная с версии 0.8 индекс кошелька по умолчанию не содержит чужих транзакций. Поэтому команда getrawtransaction не сработает. Для исправления этой ситуации необходимо запускать кошель с опцией txindex=1 и один раз -rescan.
Спасибо, кажется разобрался. Значит я делаю listtransaction(аккаунт), вытаскиваю оттуда amount и txid всех транзакций, у которых category == recieve и confirmations > 5. Потом делаю decoderawtransaction(getrawtransaction(txid)), оттуда беру vin['vout'] и vin['txid'], после чего делаю  decoderawtransaction(getrawtransaction(vin['txid'])) и беру отттуда details[vout]['address'].
viv
newbie
Activity: 17
Merit: 0
getrawtransaction надо декодировать при помощи decoderawtransaction.
После decoderawtransaction смотри на "vin". Там перечислены ИД исходящих транзакций, которые тоже на декодировать. "vout" во входящей транзакции указывает на номер выхода в исходящей. Выходы в исходящей лежат в секции "vout". Там же и объем перевода.
Начиная с версии 0.8 индекс кошелька по умолчанию не содержит чужих транзакций. Поэтому команда getrawtransaction не сработает. Для исправления этой ситуации необходимо запускать кошель с опцией txindex=1 и один раз -rescan.
jr. member
Activity: 33
Merit: 1
И как мне превратить пабкеи и хеши в адреса? Мне нужно по аккаунту получить сумму каждой транзакции, пришедшей на него, и адрес, с которого она пришла.
Не мог бы ты на всякий случай уточнить, что пытаешься сделать ?
А то тут есть вероятность что это делается не так Smiley
Есть аккаунт, нужно по нему получить список входящих транзакций с больше чем 5 подтверждениями с суммой и адресами отправителей каждой транзакции. Я смог получить список транзакций (listtransactions), откуда вытащил txid транзакций с больше чем 5 подтверждениями, а что делать дальше я не знаю.
hero member
Activity: 742
Merit: 500
И как мне превратить пабкеи и хеши в адреса? Мне нужно по аккаунту получить сумму каждой транзакции, пришедшей на него, и адрес, с которого она пришла.
Не мог бы ты на всякий случай уточнить, что пытаешься сделать ?
А то тут есть вероятность что это делается не так :)
jr. member
Activity: 33
Merit: 1
getrawtransaction надо декодировать при помощи decoderawtransaction.
Да, так и делал.

А адреса там и нет, там хранятся пабкеи и хэши. Адреса из них генерируются клиентом при декодировании.
И как мне превратить пабкеи и хеши в адреса? Мне нужно по аккаунту получить сумму каждой транзакции, пришедшей на него, и адрес, с которого она пришла.
legendary
Activity: 3108
Merit: 1359
Вообще, для более полного понимания данных вещей не помешало бы изучить формат транзакций. Там все очень просто.  Wink

Например, транзакция:

Code:
01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0d03d986000101062f503253482fffffffff0100f2052a010000002321039d249b4db6c871f9f2927ff9e7a73e20cd0248cfe67df677cd1932fe021f12f3ac00000000

1. Version:
01000000

2. Input count:
01

3. Input hash:
0000000000000000000000000000000000000000000000000000000000000000

4. Input index (-1):
ffffffff

5. scriptSig:
0d03d986000101062f503253482f

6. nSequence
ffffffff

7. Output count:
01

8. Value:
00f2052a01000000

9. scriptPubKey:
2321039d249b4db6c871f9f2927ff9e7a73e20cd0248cfe67df677cd1932fe021f12f3ac

10. Lock time:
00000000

Quote
Я же написал, что через них не получается - оригинального адреса там не видно.
А адреса там и нет, там хранятся пабкеи и хэши. Адреса из них генерируются клиентом при декодировании.
AV
hero member
Activity: 910
Merit: 1000
getrawtransaction надо декодировать при помощи decoderawtransaction.
jr. member
Activity: 33
Merit: 1
Возможно через gettransaction или getrawtransaction
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
Я же написал, что через них не получается - оригинального адреса там не видно.
AV
hero member
Activity: 910
Merit: 1000
Возможно через gettransaction или getrawtransaction
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
jr. member
Activity: 33
Merit: 1
Как через вебню сделать-то понятно, мне нужно через JSON-RPC получить.
jr. member
Activity: 33
Merit: 1
Нужно получить адрес того, от кого пришла транзакция, через JSON-RPC. Что-то в упор не вижу как. В decoderawtransaction(getrawtransaction) нету такого. В gettransaction - тоже.
Jump to: