This list provides a structured learning path for Chaincode Labs tools, progressing from foundational concepts to advanced techniques. It focuses on tools related to Bitcoin development and research, particularly those used in their educational programs.
I. Foundations & Setup (1-15)
- Welcome to Chaincode Labs Tools: Building with Bitcoin
- Setting up Your Development Environment (Linux, macOS, Windows)
- Introduction to the Command Line Interface (CLI)
- Git and GitHub for Bitcoin Development
- Working with Bitcoin Core: Installation and Basic Commands
- Understanding the Bitcoin Protocol Fundamentals
- Introduction to the Bitcoin Core RPC API
- Working with
bitcoin-cli
: Interacting with Bitcoin Core
- Setting up a Regtest Network for Testing
- Exploring the Bitcoin Core Codebase
- Introduction to the Lightning Network
- Setting up a Lightning Network Node (LND, c-lightning)
- Working with
lncli
or lightning-cli
- Introduction to Bitcoin Scripting
- Building Your First Simple Bitcoin Transaction
II. Bitcoin Core & RPC (16-35)
- Advanced
bitcoin-cli
Commands and Techniques
- Mastering the Bitcoin Core RPC API
- Programmatically Interacting with Bitcoin Core (Python, etc.)
- Understanding JSON-RPC and its use with Bitcoin Core
- Working with Bitcoin Addresses and Private Keys
- Generating and Managing Wallets with Bitcoin Core
- Understanding UTXOs and Transaction Building
- Creating and Signing Raw Transactions
- Broadcasting Transactions and Monitoring Confirmation
- Working with Transaction Fees and Dust Management
- Implementing Transaction Filtering and Monitoring
- Understanding Mempools and Transaction Propagation
- Querying the Blockchain for Information
- Building a Simple Block Explorer with Bitcoin Core
- Implementing Block Chain Event Listeners
- Working with Block Headers and Block Data
- Understanding Merkle Trees and Block Verification
- Handling Reorganizations and Chain Forks
- Working with Network Parameters and Constants
- Exploring Peer-to-Peer Communication and Network Discovery
III. Lightning Network Development (36-55)
- Deep Dive into Lightning Network Concepts
- Setting up and Configuring LND (or c-lightning)
- Managing Lightning Network Channels
- Making and Receiving Lightning Network Payments
- Understanding HTLCs and Channel Updates
- Working with
lncli
(or lightning-cli
) for Channel Management
- Programmatically Interacting with LND (or c-lightning)
- Building Lightning Network Applications
- Implementing Lightning Network Payment Flows
- Understanding Routing and Channel Balancing
- Exploring Lightning Network Daemon Internals
- Working with Lightning Network Addresses and Keys
- Implementing Lightning Network Invoices
- Integrating Lightning Network with Web Applications
- Building a Lightning Network Wallet
- Understanding AMP (Atomic Multi-Path Payments)
- Working with Submarine Swaps
- Exploring Lightning Network Security Considerations
- Implementing Lightning Network Node Monitoring
- Contributing to Lightning Network Development
IV. Scripting & Advanced Bitcoin Concepts (56-75)
- Advanced Bitcoin Scripting Techniques
- Understanding Script Opcodes and Stack Operations
- Writing Custom Bitcoin Scripts
- Implementing Multisignature Wallets with Script
- Building Timelocked Transactions
- Exploring OP_RETURN and Data Embedding in Transactions
- Understanding Segregated Witness (SegWit) and its benefits
- Working with Bech32 Addresses
- Implementing Pay-to-Taproot (Taproot) transactions
- Exploring MAST (Merkelized Abstract Syntax Trees)
- Understanding Schnorr Signatures
- Implementing PSBT (Partially Signed Bitcoin Transactions)
- Working with Descriptor Wallets
- Exploring Policy and Consensus Rules
- Understanding Bitcoin's Economic Model
- Working with Mining and Difficulty Adjustment
- Exploring Proof-of-Work and its implications
- Understanding Consensus Mechanisms in Bitcoin
- Implementing Custom Bitcoin Tools
- Contributing to Bitcoin Core Development
V. Testing & Tooling (76-90)
- Writing Unit Tests for Bitcoin Code
- Using the Bitcoin Core Functional Test Framework
- Setting up and using the Bitcoin Core fuzz tester
- Working with Bitcoin Explorer Tools (e.g., Blockstream.info)
- Using Bitcoin Debugging Tools
- Profiling Bitcoin Core Performance
- Working with Hardware Wallets for Development
- Integrating Bitcoin Tools with CI/CD Pipelines
- Building Bitcoin-related APIs and Services
- Developing Bitcoin Libraries (e.g., in Python, Rust)
- Working with Bitcoin Research Tools
- Exploring Bitcoin Analysis Techniques
- Contributing to Bitcoin Open Source Projects
- Understanding Bitcoin Improvement Proposals (BIPs)
- Participating in Bitcoin Development Communities
VI. Mastery and Beyond (91-100)
- Advanced Bitcoin Protocol Analysis
- Deep Dive into Bitcoin Core Internals
- Security Best Practices for Bitcoin Development
- Building Scalable Bitcoin Infrastructure
- The Future of Bitcoin Development
- Real-World Applications of Bitcoin Technology
- Building a Portfolio of Bitcoin Projects
- Mastering Bitcoin: A Comprehensive Guide
- Understanding Cryptography and its role in Bitcoin
- The Evolution of Bitcoin and its Ecosystem.