Introducing E and S
Chapter 1: Bridging the Blockchain Knowledge Gap
      Blockchain Roll Call!
      What Ethereum Does
      Three Parts of a Blockchain
              Ethereum Assumes Many Chains
              This Is a Scam, Just Like Bitcoin!
      Ether as a Currency and Commodity
              Gresham’s Law
              The Path to Better Money
              Cryptoeconomics and Security
              Back to the Good Old Days
              Cryptochaos
      The Power Is in the Protocol
              You Can Build Trustless Systems
      What Smart Contracts (Really) Do
              Objects and Methods for Value
              Just Add Commerce
              Content Creation
      Where’s the Data?
              What Is Mining?
              Ether and Electricity Prices
      Going Inside the EVM
              The Mist Browser
              Browser vs. Wallet or Keychain
              Solidity Is Kind of Like JavaScript, But …
      What Ethereum Is Good For
              A Critical Take
              State of Smart Contract Development Today
      Deciding Where You Fit In
              A Note to New Programmers
              Ethereum Is Free and Open Source
      The EVM Is Here to Stay
      What You Can Build Today
              Private and Public Chains
              The Promise of Decentralized Databases
              What’s Next: New Ways of Working
      Summary
   Chapter 2: The Mist Browser
      Wallets as a Computing Metaphor
              Your Address Is What?
              Where Is My Ether?
      The Bank Teller Metaphor
              In Cryptocurrency, You Hold Your Own Assets
Unrestricted
               Visualizing Ethereum Transactions
       Breaking with Banking History
       How Encryption Leads to Trust
       System Requirements
               More about Eth.guide and This Book
               Tools for Developers
               CLI Nodes
       Recommended: Using Parity with Geth
       Finally, into the Mist!
               Downloading and Installing Mist
               Configuring Mist
               Finding Your New Address
               Sending and Receiving Ether
               Understanding Ethereum Account Types
               Backing Up and Restoring Your Keys
               Using Paper Wallets
               Using Mobile Wallets
               Working with Messages and Transactions
       So, What Is a Blockchain?
               Paying for Transactions
               Understanding Denominations
               Getting Ether
       Anonymity in Cryptocurrency
               Blockchain Explorers
       Summary
   Chapter 3: The EVM
      The Central Bank Network of Yesterday
      What are Virtual Machines, Exactly?
              The Role of the Ethereum Protocol in Banking
              Anyone Can Make a Banking Platform
      What the EVM Does
      EVM Applications Are Called Smart Contracts
              The Name “Smart Contracts”
              The EVM Runs Bytecode
      Understanding State Machines
              Digital vs. Analog
              “State-ments”
              Data’s Role in State
      How the Guts of the EVM Work
              The EVM Constantly Checks for Transactions
              Creating a Common Machine Narrative of What Happened
              Cryptographic Hashing
              What Hash Functions (or Hash Algorithms) Do
      Blocks: The History of State Changes
              Understanding Block Time
Unrestricted
              The Drawbacks of Short Blocks
              “Solo Node” Blockchain
              Distributed Security
       Mining’s Place in the State Transition Function
       Renting Time on the EVM
       Hello, Gas
              Why Is Gas So Important?
              Why Isn’t Gas Priced in Ether?
              Fees as Regulation
       Working with Gas
              Gas Specifics
              How Gas Relates to Scaling the System
       Accounts, Transactions, and Messages
              Externally Owned Accounts
              Contract Accounts
       Transactions and Messages
              Characteristics of Transactions
              Characteristics of Messages
       Estimating Gas Fees for Operations
       Opcodes in the EVM
       Summary
   Chapter 4: Solidity Programming
      Primer
      Global Banking Made (Almost) Real
              Extra-Large Infrastructure
              Worldwide Currency?
      Complementary Currency
              The Promise of Solidity
              Browser Compiler
      Learning to Program the EVM
              Easy Deployment
              The Case for Writing Business Logic in Solidity
              Code, Deploy, Relax
      Design Rationale
              Writing Loops in Solidity
              Expressiveness and Security
      The Importance of Formal Proofs
              Historical Impact of a Shared Global Resource
              How Attackers Bring Down Communities
              Hypothetical Attack Written in Solidity
      Automated Proofs to the Rescue?
              Determinism in Practice
              Lost in Translation
      Testing, Testing, Testing
              Command Line Optional!
Unrestricted
       Formatting Solidity Files
       Tips for Reading Code
       Statements and Expressions in Solidity
              What Is an Expression?
              What Is a Statement?
              Functions, Public and Private
       Value Types
              Booleans
              Signed and Unsigned Integers
              Addresses
              Members of Addresses
              Address-Related Keywords
              Less-Common Value Types
              Complex (Reference) Types
       Global Special Variables, Units, and Functions
              Block and Transaction Properties
              Operators Cheat Sheet
              Global Functions
              Exceptions and Inheritance
       Summary
   Chapter 5: Smart Contracts and Tokens
      EVM as Back End
              Smart Contracts to Dapps
      Assets Backed by Anything
              Bartering with Fiat Currency
              Ether as Glass Beads
      Cryptocurrency Is a Measure of Time
              Asset Ownership and Civilization
              Coins are Collectibles
      The Function of Collectibles in Human Systems
              Early Counterfeiting
              Jewelry and Art as Money
              The Step Toward Banknotes
      Platforms for High-Value Digital Collectibles
      Tokens Are a Category of Smart Contract
              Tokens as Social Contracts
              Tokens Are a Great First App
      Creating a Token on the Testnet
              Getting Test Ether from the Faucet
              Registering Your Tokens
      Deploying Your First Contract
              Same House, Different Address
      Playing with Contracts
      Summary
Unrestricted
   Chapter 6: Mining Ether
      What’s the Point?
      Ether’s Source
      Defining Mining
      Versions of the Truth
              Difficulty, Self-Regulation, and the Race for Profit
              How Proof of Work Helps Regulate Block Time
      What’s Going on with the DAG and Nonce?
      All This for Faster Blocks?
              Making Fast Blocks Work
      How Ethereum Uses Stale Blocks
              Uncle Rules and Rewards
      The Difficulty Bomb
              Miner’s Winning Payout Structure
              Limits on Ancestry
              The Block Processing Play by Play
      Evaluating the Ancestry of Blocks and Transactions
      How Ethereum and Bitcoin Use Trees
              Merkle-Patricia Trees
              Contents of an Ethereum Block Header
      Forking
      Mining Tutorial
              Installing Geth on macOS
              Installing Geth on Windows
              Getting Comfortable with the Command Line
              Installing Geth on Ubuntu 14.04
      Executing Commands in the EVM via the Geth Console
      Launching Geth with Flags
      Fire Up Your Miner!
      Mining on the Testnet
      GPU Mining Rigs
      Mining on a Pool with Multiple GPUs
      Summary
   Chapter 7: Cryptoeconomics Survey
   How We Got Here
      New Technologies Create New Economies
      Rules of the Game
   Why Is Cryptoeconomics Useful?
      Understanding Hashing vs. Encryption
      Encryption
      Hashing
   Why the Speed of Blocks Matters
   Ether Issuance Scheme
   Common Attack Scenarios
      Social Proof Between Machines
Unrestricted
      Security as the Network Scales
   More About Cryptoeconomics
   Summary
   Chapter 8: Dapp Deployment
      Seven Ways to Think About Smart Contracts
      Dapp Contract Data Models
      How an EVM Back End Talks to a JS Front End
              JSON-RPC
      Web 3 Is Here (Almost)
      Experimenting with the JavaScript API
              Using Geth for Dapp Deployment
      Using Meteor with the EVM
              Install Web3.js to Build an Ethereum-Enabled Web Application
      Executing Contracts in the Console
              How Contracts Expose an Interface
      Recommendations for Prototyping
      Third-Party Deployment Libraries
      Summary
   Chapter 9: Creating Private Chains
      Private and Permissioned Chains
      Setting Up a Local Private Chain
      Optional Flags to Use with New Chains
      Private Blockchains in Production Usage
      Summary
   Chapter 10: Use Cases
      Chains Everywhere
      The Internet of Ethereum Things
      Retail and E-Commerce
      Community and Government Financing
      Human and Organizational Behavior
      Financial and Insurance Applications
      Inventory and Accounting Systems
      Software Development
      Gaming, Gambling, and Investing
      Summary
   Chapter 11: Advanced Concepts
      Who Is Leading Software Developers Toward Decentralization?
              Vitalik’s Best Technical Blog Posts
      The Ethereum Release Schedule
              Whisper (Messaging)
              Swarm (Content Addressing)
      What the Future Holds
      Other Interesting Innovations
      Full Ethereum Roadmap
              Frontier Release (2015)
Unrestricted
           Homestead Release (2016)
           Metropolis (2017)
           Serenity (2018)
      Summary
   Index
Unrestricted