Table of Contents of Mastering Bitcoin 2nd Edition

Preface

  • Writing the Bitcoin Book
  • Intended Audience
  • About Early Release books from O’Reilly
  • Why Are There Bugs on the Cover?
  • Conventions Used in This Book
  • Code Examples
  • Using Code Examples
  • Bitcoin addresses and transactions in this book
  • Safari® Books Online
  • How to Contact Us
  • Acknowledgments

Quick Glossary

  1. Introduction
    • What Is Bitcoin?
    • History of Bitcoin
    • Bitcoin Uses, Users, and Their Stories
    • Getting Started
  2. How Bitcoin Works
    • Transactions, Blocks, Mining, and the Blockchain
    • Bitcoin Transactions
    • Constructing a Transaction
    • Bitcoin Mining
    • Mining Transactions in Blocks
    • Spending the Transaction
    • Bitcoin Core: The Reference Implementation
  3. Bitcoin Development Environment
    • Compiling Bitcoin Core from the Source Code
    • Running a Bitcoin Core Node
    • Bitcoin Core Application Programming Interface (API)
    • Alternative Clients, Libraries, and Toolkits
  4. Keys, Addresses
    • Introduction
    • Bitcoin Addresses
    • Implementing Keys and Addresses in Python
    • Advanced Keys and Addresses
  5. Wallets
    • Wallet Technology Overview
    • Wallet Technology Details
  6. Transactions
    • Introduction
    • Transactions in Detail
    • Transaction Outputs and Inputs
    • Transaction Scripts and Script Language
    • Digital Signatures (ECDSA)
    • Bitcoin Addresses, Balances and other abstractions
  7. Advanced Transactions and Scripting
    • Introduction
    • Multi-Signature
    • Pay-to-Script-Hash (P2SH)
    • Data Recording Output (RETURN)
    • Timelocks
    • Scripts with Flow Control (Conditional Clauses)
    • Complex Script Example
  8. The Bitcoin Network
    • Peer-to-Peer Network Architecture
    • Nodes Types and Roles
    • The Extended Bitcoin Network
    • Bitcoin Relay Networks
    • Network Discovery
    • Full Nodes
    • Exchanging “Inventory”
    • Simplified Payment Verification (SPV) Nodes
    • Bloom filters
    • How SPV nodes use bloom filters
    • SPV nodes and privacy
    • Encrypted and Authenticated Connections
    • Transaction Pools
  9. The Blockchain
    • Introduction
    • Structure of a Block
    • Block Header
    • Block Identifiers: Block Header Hash and Block Height
    • The Genesis Block
    • Linking Blocks in the Blockchain
    • Merkle Trees
    • Merkle Trees and Simplified Payment Verification (SPV)
    • Bitcoin’s Test Blockchains
    • Segnet – The Segregated Witness Testnet
    • Regtest – The local blockchain
    • Using test blockchains for development
  10. Mining and Consensus
    • Introduction
    • Decentralized Consensus
    • Independent Verification of Transactions
    • Mining Nodes
    • Aggregating Transactions into Blocks
    • Constructing the Block Header
    • Mining the Block
    • Successfully Mining the Block
    • Validating a New Block
    • Assembling and Selecting Chains of Blocks
    • Mining and the Hashing Race
    • Consensus Attacks
    • Changing the Consensus Rules
    • Soft Fork Signaling with Block Version
    • Consensus Software Development

Appendix A: Bitcoin – A Peer-to-Peer Electronic Cash System

  • Introduction
  • Transactions
  • Timestamp Server
  • Proof-of-Work
  • Network
  • Incentive
  • Reclaiming Disk Space
  • Simplified Payment Verification
  • Combining and Splitting Value
  • Privacy
  • Calculations
  • Conclusion
  • References
  • License

Appendix B: Transaction Script Language Operators, Constants, and Symbols

Appendix D: Bitcoin Improvement Proposals

  • Appendix C: Bitcore
  • Bitcore’s Feature List
  • Bitcore Library Examples

Appendix E: pycoin, ku, and tx

  • Key Utility (KU)

Appendix F: Bitcoin Explorer (bx) Commands

  • Examples of bx command use