createrawtransaction, salidas múltiples, entrada única?

siguiendo el manual en https://bitcointalk.org/index.php?topic=101525.0 , me gustaría fusionar varias fracciones de BTC de varias direcciones que poseo, a otra dirección única que poseo (reensamblar, ordenar, organizar cosas) . ¿Cómo será mi enfoque? Todavía no entiendo qué significa el valor "vout" en createrawtransaction . creo que se trata de esto:

# assume i would like to merge transactions "aaaa..." and "bbbb..." to address "1mainaddr..."
# "aaaa..." has 0.01  btc unspent
# "bbbb..." has 0.0105 btc unspent
# "1mainaddr..." is emtpy
# i would like to pay 0.0005 btc as a fee

createrawtransaction [{txid:aaaa...,vout=0},{txid:bbbb...,vout=1}] {1mainaddr...=0.02}

¿Es eso correcto? primero me gustaría probar esto en testnet pero todavía estoy esperando las confirmaciones de bloque. Apreciaría 1-2 testnet BTC en moBHB5euzHyKtcabpD3UND9PYB994cisqb y se lo devolveré una vez que se confirme el bloque 101602.

Siento que debería reformular eso a "lo que es vout". especificar todo vout:0 funciona bien.
Estoy de acuerdo, "¿Cuál es el parámetro 'vout' y qué valor debería tener para createrawtransaction?" sería un título mucho mejor para esta pregunta. :)
La respuesta a "En getrawtransaction, ¿cuál es el entero vout en la lista vin?" podría ser útil para responder a esta pregunta.

Respuestas (3)

bien, lo descubrí. la respuesta correcta al siguiente ejemplo se verá de esta manera:

# get your unspent transactions
listunspent
# select the ones you want to pour BTC from, please also note their 'vout', it is an output of a transaction you own a private key to and therefore able to spend.
createrawtransaction '[{"txid":"aaaa...","vout":0},{"txid":"bbbb...","vout":0}]' '{"1mainaddr...":0.02}'
# explained: you are using two outputs, of total 0.0205 BTC. you give away 0.0005 fee and you keep 0.02 at your 1mainaddr...
# you can dump the resulting transaction draft to see how it'll look like
decoderawtransaction <...result_from_createrawtransaction...>
# sign it with your private keys
signrawtransaction <...result_from_createrawtransaction...>
# if it returns you a hex with "complete" : true, you can now send it off to network
# if it returns "complete" : false, you either don't have a private key for signing, or you might have specified invalid 'vout'. google for more possible problems, those were two i experienced.
sendrawtransaction <...result_from_signrawtransaction_hex...>

referencias :

  • people.xiph.org/~greg/signdemo.txt
  • bitcointalk.org/index.php?topic=101525.0

gracias :

  • @Murch

este es un manual para el cliente satoshi original.

vout es el número de serie de la salida que está canjeando en su transacción.

Por ejemplo, si desea canjear la primera salida de la transacción con hash X, especifique X para txid y 0 para vout. Si desea la segunda salida en esa transacción, especifique 1 para vout en su lugar, etc.

Desde la línea de comando, debe agregar comas alrededor de los parámetros y formatear el JSON correctamente.

Por ejemplo:

bitcoind createrawtransaction '[{"txid":"aaaa"...,"vout"=0},{"txid":"bbbb"...,"vout"=1}]' '{"1mainaddr"...=0.02}'