Transacciones usando bitcoin-cli

Clase 12 de 19Curso de Bitcoin Core y Script

Resumen

Bitcoin-cli te permite hacer todo lo que seguramente ya conoces sobre Bitcoin y el mundo Blockchain. Explorar transacciones, crear billeteras, enviar y recibir BTC por medio de una transacción, entre otras funcionalidades.

Billeteras y transacciones con bitcoin-cli

Un buen primer paso para jugar con bitcoin-cli es la creación de una wallet y lograr recibir o enviar valor con ella. Veamos paso a paso y conozcamos más sobre cómo utilizar el CLI de Bitcoin.

Paso 1: creación de la billetera

Para crear tu primera billetera basta con ejecutar el comando bitcoin-cli createwallet "". Considera que el comando puede fallar si ya tienes una wallet creada en tu computador.

Para verificar la existencia de la billetera, utiliza el comando ls /.bitcoin/data/testnet3/wallets/.

Creación de billetera con bitcoin-cli

Recuerda que Bitcoin guarda todo tipo de información serializada en archivos .dat.

Paso 2: crear nueva dirección

Posterior a la creación de la wallet, tienes que crear una dirección dentro de la misma para poder recibir o enviar fondos. El simple comando bitcoin-cli getnewaddress -addresstype legacy te permitirá realizar esta acción y verás por consola la dirección creada.

Creación de dirección con bitcoin-cli

Paso 3: obtención de fondos

Si ya dispones de tu dirección, necesitarás de una faucet de Bitcoin para obtener BTC de prueba. Para eso, es necesario que tu nodo esté corriendo en la tesnet. Si decidiste correrlo en la mainnet, tendrás que utilizar BTC de verdad.

Existen varios faucets de Bitcoin que puedes utilizar para obtener un poco de BTC, puedes explorar algunos de ellos:

Nota: algunos faucets no son estables y dejan de funcionar con el tiempo o tienes problemas momentáneos. Intenta reiteradas veces hasta lograr encontrar uno que pueda entregarte algo de BTC para continuar con tus pruebas.

Una vez hayas localizado un faucet, copia la dirección obtenida en el paso anterior, ingrésala y en cuestión de minutos obtendrás algunos Satoshis.

Verifica el saldo de tu billetera con el comando bitcoin-cli getbalance.

Verificación del balance de una wallet con bitcoin-cli

Paso 4: confirmación de transacciones

También puedes confirmar tu transacción verificando cuántos bloques hay por encima del bloque que contiene tu transacción. Muchas empresas esperan, por ejemplo, 5 o 10 bloques para tener seguridad de que sus transacciones fueron confirmadas correctamente.

Para eso, utiliza el comando bitcoin-cli getbalance "*" N, donde N es la cantidad de bloques que deseas verificar para confirmar tu transacción.

Confirmación de transacciones con bitcoin-cli

Paso 5: listado de transacciones

Visualiza todas las transacciones relacionadas a tu billetera con el comando bitcoin-cli listtransactions. Verás toda la información asociada a cada una de ellas.

Para inspeccionar una transacción en particular, copia el txid y utiliza el comando bitcoin-cli gettransaction <txid>.

Obtén aún más información de una transacción con el comando bitcoin-cli gettransaction <txid> false true como los scripts de entrada y de salida.

Paso 6: envío de BTC

Teniendo lista tu billetera, una dirección y luego de haber solicitado fondos de prueba, puedes crear una transacción para enviar BTC a otra dirección.

El comando bitcoin-cli sendtoaddress <address> 0.0001 te permitirá enviar valor a otra billetera. Solo asegúrate de tener los fondos suficientes y de ingresar correctamente la dirección destino.

Envío de BTC a través de bitcoin-cli

Este comando te devolverá el txid de la transacción que puedes inspeccionar como has hecho en el paso anterior.

Conclusión

Has visto lo fácil que es utilizar el bitcoin-cli para crear una wallet, direcciones, obtener y enviar bitcoins a través de una interfaz de texto.

Recuerda que estos comandos funcionan a través de RPC sobre HTTP, por lo que son las bases para construir cualquier aplicación web o móvil como un explorador de bitcoin, una wallet u otro tipo de app para el intercambio de valor entre usuarios.


Contribución creada por: Kevin Fiorentino (Platzi Contributor).