Este repositorio contiene una serie de ejercicios diseñados para aprender Rust mientras se exploran los fundamentos técnicos de Bitcoin. Los ejercicios cubren conceptos básicos como generación de direcciones Bitcoin, hasta temas avanzados como la creación de nodos y la interacción con Lightning Network.
Objetivo: Familiarizarte con Rust y los fundamentos de Bitcoin.
Ejercicios:
- Generar una dirección Bitcoin.
- Firmar y verificar mensajes.
- Crear una transacción Bitcoin simple.
Resultados esperados:
- Generar y entender claves privadas, públicas y direcciones.
- Usar firmas digitales para mensajes.
- Construir una transacción básica.
Objetivo: Comprender transacciones avanzadas y scripts.
Ejercicios:
- Decodificar una transacción Bitcoin.
- Explorar claves y direcciones en formatos avanzados.
- Trabajar con transacciones multifirma.
- Explorar UTXOs y crear transacciones que los gasten.
Resultados esperados:
- Leer y analizar transacciones existentes.
- Implementar multifirmas y scripts personalizados.
- Consultar y usar UTXOs en nuevas transacciones.
Objetivo: Adquirir habilidades avanzadas en bloques, nodos y Lightning Network.
Ejercicios:
- Transacciones bloqueadas por tiempo.
- Firmar transacciones completas.
- Explorar bloques de Bitcoin.
- Construir un nodo básico.
Resultados esperados:
- Crear transacciones más complejas, como timelocks.
- Decodificar bloques y entender su estructura.
- Conectar un nodo a la red Bitcoin.
Ejercicio Opcional:
- Interacción con Lightning Network.
Resultados esperados:
- Conectar a un nodo Lightning.
- Crear un canal y realizar pagos básicos.
mastering-bitcoin-rust/
├── src/
│ ├── basic/
│ │ ├── exercise1_generate_address.rs
│ │ ├── exercise2_sign_verify.rs
│ │ ├── exercise3_create_transaction.rs
│ ├── intermediate/
│ │ ├── exercise4_decode_transaction.rs
│ │ ├── exercise5_explore_keys.rs
│ │ ├── exercise6_multisig.rs
│ │ ├── exercise7_utxos.rs
│ ├── advanced/
│ │ ├── exercise8_timelock.rs
│ │ ├── exercise9_sign_transactions.rs
│ │ ├── exercise10_explore_blocks.rs
│ │ ├── exercise11_basic_node.rs
│ ├── lightning/
│ ├── exercise12_lightning.rs
├── README.md
├── Cargo.toml
├── Cargo.lock
└── LICENSE
Antes de comenzar, asegúrate de tener instalados los siguientes programas:
- Rust y Cargo: Puedes instalarlo ejecutando:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-
Se recomienda usar Visual Studio Code con la extensión rust-analyzer para una mejor experiencia de desarrollo.
-
Git: Para clonar este repositorio.
-
Clona el repositorio:
git clone https://github.com/tu-usuario/mastering-bitcoin-rust.git cd mastering-bitcoin-rust
-
Instala las dependencias necesarias (opcional):
brew install openssl cargo build
- Documentación oficial de Rust
- Bitcoin Developer Documentation
- Libro "Mastering Bitcoin" de Andreas M. Antonopoulos
Si deseas contribuir a este proyecto, por favor sigue estos pasos:
- Haz un fork del repositorio.
- Crea una nueva rama:
git checkout -b feature/nueva-feature
- Haz tus cambios y commitea:
git commit -am 'Añadir nueva feature'
- Empuja la rama:
git push origin feature/nueva-feature
- Abre un Pull Request.
¿Necesito conocimientos previos de Rust?
No es necesario, pero se recomienda tener una comprensión básica de programación.
¿Puedo usar otro editor de texto?
Sí, pero Visual Studio Code con la extensión rust-analyzer es altamente recomendado para una mejor experiencia.
Este proyecto está licenciado bajo la Licencia MIT. Puedes ver los detalles completos en el archivo LICENSE.