No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Bitcoin Core y Script

Curso de Bitcoin Core y Script

Juan Sebastián Marulanda

Juan Sebastián Marulanda

Ejecuta tus propios scripts

17/19
Recursos

Con bitcoin-cli es muy sencillo comenzar a trabajar con el lenguaje de programación de Bitcoin. Ejecutar algunos scripts que te permitan comprender el funcionamiento de un lenguaje poco convencional, basado en una pila y Turing incompleto.

Cómo hacer la depuración de scripts

Desarrollar tus propios scripts para crear transacciones en Bitcoin es una tarea que no debe tomarse a la ligera. Debes tener las herramientas y el conocimiento necesario para probar los scripts y estar 100% seguro de que no causarán perdidas económicas.

La comunidad de Bitcoin desarrolló una gran herramienta para depurar scripts y realizar pruebas con estos para tener certeza de su buen funcionamiento. btcdeb es otra interfaz por línea de comandos que te permitirá correr un script y verificar paso a paso su funcionamiento.

El profesor Marulanda se ha tomado el brillante trabajo de prepararnos una completa guía de texto donde encontrarás los pasos para su instalación y uso.

Con btcdeb o Bitcoin Script Debugging, ejecuta un script, y con el comando step podrás visualizar por consola paso a paso la ejecución del script en formato de pila.

Por ejemplo, si quieres ejecutar un script para sumar dos números, puedes ejecutar el siguiente comando donde visualizarás el script y la pila que irá completándose con cada operador o dato del script, paso a paso.
Ejecución de script para sumar dos números

En el primer paso, se guarda el primer número en la pila.
Push del primer número en el stack

En el segundo paso, se guarda el segundo número en la pila.
Push del segundo número en el stack

En el tercer paso, se procesa los dos números con el operador OP_ADD para sumarlos y obtener el resultado.
Ejecución de la suma

De esta manera, corroboramos que el script es correcto y cumple con su cometido de realizar una suma.

Conclusión

Has visto que con esta herramienta, de forma muy sencilla y visual, puedes comenzar a ejecutar scripts de todo tipo. Desde una simple suma, hasta validar complejas transacciones de BTC.

El reto para ti, busca scripts más complejos y comienza a validar los mismos. Podrás encontrar algunos en la guía que el profesor preparó para la comunidad de Platzi. Anímate, a dar estos primeros pasos con Bitcoin Script.


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

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

RESUMEN CLASE 17:
EJECUTA TUS PROPIOS
SCRIPTS

Verificamos si tenemos instalado btcdeb

$ which btcdeb

Instalamos btcdeb “Bitcoin Script Debugger” para depurar un script

$ sudo apt-get install git
$ git clone https://github.com/bitcoin-core/btcdeb.git

Ahora que ya clonaste el repositorio instalana C++ y algunos paquetes necesarios.

$ sudo apt-get install autoconf libtool g++ pkg-config make

Instala readline, herramienta que permite navegar sobre el depurador

$ sudo apt-get install libreadline-dev

Ahora, instala btcdeb:

$ cd btcdeb
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

Revisa si cuentas con una copia en tu máquina: /usr/local/bin/btcdeb

$ which btcdeb

Como depurar un script 1

$ btcdeb '[1 2 OP_ADD]'
> step

Como depuramos el script 2

$ btcdeb '[1 2 OP_ADD 2 OP_SUB]'
> step

Ejemplo de P2PKH

$ btcdeb '[304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b92cbab7d1022066f273178febc7a37568e2e9f4dec980a2e9a95441abe838c7ef64c39d85849c 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b OP_DUP OP_HASH160 41d83eaffbf80f82dee4c152de59a38ffd0b6021 OP_EQUALVERIFY OP_CHECKSIG]'

> step

Muy buena herramienta btcdeb. Poder visualizar paso a paso cómo interactua el script con la pila es brillante para comprender cómo funciona un lenguaje de programación basado en un stack y Turing incompleto.

Les recomiendo este IDE es muy bueno también
https://siminchen.github.io/bitcoinIDE/build/editor.html

no entiendo