La mayoría de las transacciones se efectúan de la manera simple, abrimos nuestra cartera, escogemos la dirección destino, escogemos la cantidad a enviar y la cartera se encarga de escoger el fee adecuado para la transacción.
Sin embargo hay mucha gente que no entiende como se efectúa una transacción así que voy a dividir el proceso para ustedes.
Bitcoin core es la cartera que nos permite efectuar una transacción de la forma mas pura, y esto se hace en 3 pasos:
1.- Creamos la transacción
a=$(./bitcoin-cli createrawtransaction '[{"txid":"d42065fea1331ecc8e05d4f2d07d12b3b56d61a749e1db8cf56ab7b3ab0aedbc","vout":1}]' '{"1QzkZdiuodaAXoB1XJc3YmihQe7v6bAfxJ":0.17960000}')
2.- Firmamos la transacción
b=$(./bitcoin-cli signrawtransaction $a)
3.- Enviamos la transacción
./bitcoin-cli sendrawtransaction $(echo $b | cut -d " " -f4 | sed 's/,//g' | sed 's/"//g')
En el paso 1 tenemos que escoger los inputs y outputs, para los inputs colocamos el TxId y el vout (Es como cuando tomamos nuestra cartera real y escogemos con que billetes vamos a pagar), y para el output escogemos la cantidad destino. Pero esta parte tiene truco por que si se dan cuenta no especificamos los fees y esto es debido a que el cambio se utiliza de fees, Asi que si nosotros escogemos un input que contiene 0.18 btc y enviamos 0.1796, entonces 0.0004 btc serán gastados como fees.
Y algunos se estarán preguntando:
1.- ¿Como obtengo la lista de inputs?
Para esto usamos el comando 'listunspent'
2.-¿Que pasa si mi input es 1 btc y solo quiero gastar 0.1?
En este caso especificas 2 outputs, el primero es con la dirección a la que quieres hacer el pago con la cantidad de 0.1 y el segundo es una dirección que este bajo tu control con la cantidad de el cambio menos el fee.
3.-¿Por que es esto importante?
Porque una mala manipulación de inputs se resume en elevados costos de fees, ya que lo que hace que las transacciones sean pesadas son los inputs y no los outputs. Así que varios inputs se resume en una transacción pesada con elevados fee.