You are previewing Mastering Bitcoin, 2nd Edition.
O'Reilly logo
Mastering Bitcoin, 2nd Edition

Book Description

Join the technological revolution that’s taking the world of finance by storm. Mastering Bitcoin is your guide through the seemingly complex world of bitcoin, providing the knowledge you need to participate in the internet of money. Whether you’re building the next killer app, investing in a startup, or simply curious about the technology, this revised and expanded second edition provides essential detail to get you started.

Table of Contents

  1. Preface
    1. Writing the Bitcoin Book
    2. Intended Audience
    3. About Early Release books from O’Reilly
    4. Why Are There Bugs on the Cover?
    5. Conventions Used in This Book
    6. Code Examples
    7. Using Code Examples
    8. Safari® Books Online
    9. How to Contact Us
    10. Acknowledgments
      1. Early Release Draft (GitHub Contributions)
  2. 1. Introduction
    1. What Is Bitcoin?
    2. History of Bitcoin
    3. Bitcoin Uses, Users, and Their Stories
    4. Getting Started
      1. Choosing a Bitcoin Wallet
      2. Quick Start
      3. Getting Your First Bitcoins
      4. Finding the Current Price of Bitcoin
      5. Sending and Receiving Bitcoins
  3. 2. How Bitcoin Works
    1. Transactions, Blocks, Mining, and the Blockchain
      1. Bitcoin Overview
      2. Buying a Cup of Coffee
    2. Bitcoin Transactions
      1. Transaction Inputs and Outputs
      2. Transaction Chains
      3. Making Change
      4. Common Transaction Forms
    3. Constructing a Transaction
      1. Getting the Right Inputs
      2. Creating the Outputs
      3. Adding the Transaction to the Ledger
    4. Bitcoin Mining
    5. Mining Transactions in Blocks
    6. Spending the Transaction
  4. 3. Bitcoin Development Environment
    1. Compiling Bitcoin Core from the Source Code
      1. Selecting a Bitcoin Core Release
      2. Configuring the Bitcoin Core Build
      3. Building the Bitcoin Core Executables
    2. Running a Bitcoin Core Node
      1. Running Bitcoin Core for the First Time
      2. Configuring the Bitcoin Core Node
    3. Bitcoin Core Application Programming Interface (API)
      1. Getting Information on the Bitcoin Core Client Status
      2. Exploring and Decoding Transactions
      3. Exploring Blocks
      4. Using Bitcoin Core’s Programmatic Interface
    4. Alternative Clients, Libraries, and Toolkits
      1. C/C++
      2. JavaScript
      3. Java
      4. Python
      5. Ruby
      6. Go
      7. Rust
      8. C#
      9. Objective-C
  5. 4. Keys, Addresses
    1. Introduction
      1. Public Key Cryptography and Cryptocurrency
      2. Private and Public Keys
      3. Private Keys
      4. Public Keys
      5. Elliptic Curve Cryptography Explained
      6. Generating a Public Key
    2. Bitcoin Addresses
      1. Base58 and Base58Check Encoding
      2. Key Formats
    3. Implementing Keys and Addresses in Python
    4. Advanced Keys and Addresses
      1. Encrypted Private Keys (BIP-38)
      2. Pay-to-Script Hash (P2SH) and Multi-Sig Addresses
      3. Vanity Addresses
      4. Paper Wallets
  6. 5. Wallets
    1. Wallet Technology Overview
      1. Nondeterministic (Random) Wallets
      2. Deterministic (Seeded) Wallets
      3. Hierarchical Deterministic Wallets (BIP-32/BIP-44)
      4. Seeds and Mnemonic Codes (BIP-39)
      5. Wallet Best Practices
      6. Using a bitcoin wallet
    2. Wallet Technology Details
      1. Mnemonic Code Words (BIP-39)
      2. Creating an HD wallet from the seed
      3. Using an extended public key on a web store