bitcoind - dirección del remitente y del receptor

Estoy usando bitcoind. Ahora me gustaría acceder a la lista de transacciones de una cuenta en particular usando bitcoin-cli.

Estoy usando el listtransactions accountnamecomando para obtener las transacciones de una cuenta en particular.

Ejemplo:

listtransactions karthiktest

Resultado:

[
  {
    "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
  }
]

Aquí en el JSON, muestra dos transacciones 1 receivey 1 send.

Ahora, mi requisito es: para la receivetransacción, necesito obtener la dirección del remitente y para la sendtransacción, necesito obtener la dirección del destinatario (esto se puede hacer usando el campo de cuenta). Pero estoy confundido para obtenerlo con la transacción de recepción.

¿Puede alguien ayudarme con esto?

Respuestas (1)

Bitcoin no tiene "direcciones de remitente". Tiene transacciones, que gastan monedas de las que tiene autoridad para gastar, y crea nuevas monedas con propietarios potencialmente diferentes.

Enumerar a los propietarios anteriores de monedas como remitentes es una práctica utilizada por algunos sitios web de exploración de bloques, pero en el mejor de los casos no es interesante y, en el peor de los casos, puede resultar en una pérdida monetaria:

  • No todos los scripts tienen una dirección correspondiente.
  • El propietario anterior no es necesariamente el remitente (por ejemplo, en el caso de un servicio con múltiples usuarios, las direcciones pertenecen al servicio, no a los usuarios).
  • No puede usarlos para reembolsar monedas (una propiedad que generalmente se espera de una "dirección del remitente"), ya que en el caso de una cuenta compartida, la dirección puede estar asociada con un usuario diferente del servicio.
  • Las técnicas de mejora de la privacidad ampliamente implementadas, como CoinJoin, dan como resultado transacciones en las que solo una de las entradas de la transacción está relacionada con el remitente que le interesa, sin forma de identificar cuál.

Entonces, lo que listtransactionsmuestra que siempre recibes direcciones:

  • Para una entrada de envío, enumera la dirección a la que se envió el dinero.
  • Para una entrada de recepción, enumera la dirección en la que se recibió el dinero.