bitcoind - адрес отправителя и получателя

Я использую биткойн. Теперь я хотел бы получить доступ к списку транзакций определенной учетной записи, используя файл bitcoin-cli.

Я использую listtransactions accountnameкоманду для получения транзакций определенной учетной записи.

Пример:

listtransactions karthiktest

Результат:

[
  {
    "account": "karthiktest",
    "address": "mnXEfvmLFWz7Exn9oGaEeTN8Ayu7Le5CCz",
    "category": "receive",
    "amount": 0.30000000,
    "label": "karthiktest",
    "vout": 1,
    "confirmations": 18,
    "blockhash": "000000009d17b7b32567f9730b50f2b7e8623ae6c9d20f84d4c414914e214283",
    "blockindex": 86,
    "blocktime": 1507963431,
    "txid": "c94307bef9ece4afe41384e2cd453f183aa7a438899723906e8967e624bc7d6f",
    "walletconflicts": [
    ],
    "time": 1507962288,
    "timereceived": 1507962288,
    "bip125-replaceable": "no",
    "comment": "hello karthik",
    "to": "from arun"
  }, 
  {
    "account": "karthiktest",
    "address": "miDMgiqduYevZMsRxX4qrY9BD5eXYFmEzg",
    "category": "send",
    "amount": -0.10000000,
    "label": "mahesh123",
    "vout": 0,
    "fee": -0.00000765,
    "confirmations": 17,
    "blockhash": "0000000079c79a5d21af138c80544b307d4ac764b4ed343b84752114c77fc893",
    "blockindex": 76,
    "blocktime": 1507964632,
    "txid": "516c64595c8b7be12419199dd81ae5edd3f4281aa3e52f88c7e3561b901bf881",
    "walletconflicts": [
    ],
    "time": 1507964172,
    "timereceived": 1507964172,
    "bip125-replaceable": "no",
    "comment": "hello mahesh",
    "to": "from karthik",
    "abandoned": false
  }
]

Здесь в JSON показаны две транзакции 1 receiveи 1 send.

Теперь мое требование: для receiveтранзакции мне нужно получить адрес отправителя, а для sendтранзакции мне нужно получить адрес получателя (это можно сделать с помощью поля учетной записи). Но я смущен, чтобы получить его с транзакцией получения.

Может ли кто-нибудь помочь мне в этом?

Ответы (1)

Биткойн не имеет «адресов отправителя». Он имеет транзакции, которые тратят монеты, на которые у вас есть полномочия, и создает новые монеты с потенциально разными владельцами.

Указание предыдущих владельцев монет в качестве отправителей — это практика, используемая некоторыми веб-сайтами обозревателя блоков, но в лучшем случае это неинтересно, а в худшем может привести к денежным потерям:

  • Не каждый скрипт имеет соответствующий адрес.
  • Предыдущий владелец не обязательно является отправителем (например, в случае службы с несколькими пользователями адреса принадлежат службе, а не пользователям).
  • Вы не можете использовать их для возврата монет (свойство, которое обычно ожидается от «адреса отправителя»), так как в случае общей учетной записи адрес может быть связан с другим пользователем сервиса.
  • Широко распространенные методы улучшения конфиденциальности, такие как CoinJoin, приводят к транзакциям, в которых только один из входных данных транзакции связан с отправителем, о котором вы заботитесь, без возможности определить, какой именно.

Итак, что listtransactionsпоказывает, что вы всегда получаете адреса:

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