Skip to content Skip to footer

Mastering Ethereum

Author: Andreas M. Antonopoulos
(2 customer reviews)

Building Smart Contracts and DApps

Additional information

Format

Audiobook, Kindle, Paperback

Year of Publishing

2018

Publisher

O'Reilly Media

Categories: , , Tag: Product ID: 19244

Description

Ethereum represents the gateway to a worldwide, decentralized computing paradigm. This platform enables you to run decentralized applications (DApps) and smart contracts that have no central points of failure or control, integrate with a payment network, and operate on an open blockchain. With this practical guide, Andreas M. Antonopoulos and Gavin Wood provide everything you need to know about building smart contracts and DApps on Ethereum and other virtual-machine blockchains.

Discover why IBM, Microsoft, NASDAQ, and hundreds of other organizations are experimenting with Ethereum. This essential guide shows you how to develop the skills necessary to be an innovator in this growing and exciting new industry.

Table of Contents

  • 1. What Is Ethereum?
    • Compared to Bitcoin
    • Components of a Blockchain
    • The Birth of Ethereum
    • Ethereum’s Four Stages of Development
    • Ethereum: A General-Purpose Blockchain
    • Ethereum’s Components
    • Further Reading
    • Ethereum and Turing Completeness
    • Turing Completeness as a “Feature”
    • Implications of Turing Completeness
    • From General-Purpose Blockchains to Decentralized Applications (DApps)
    • The Third Age of the Internet
    • Ethereum’s Development Culture
    • Why Learn Ethereum?
    • What This Book Will Teach You
  • 2. Ethereum Basics
    • Ether Currency Units
    • Choosing an Ethereum Wallet
    • Control and Responsibility
    • Getting Started with MetaMask
    • Creating a Wallet
    • Switching Networks
    • Getting Some Test Ether
    • Sending Ether from MetaMask
    • Exploring the Transaction History of an Address
    • Introducing the World Computer
    • Externally Owned Accounts (EOAs) and Contracts
    • A Simple Contract: A Test Ether Faucet
    • Compiling the Faucet Contract
    • Creating the Contract on the Blockchain
    • Interacting with the Contract
    • Viewing the Contract Address in a Block Explorer
    • Funding the Contract
    • Withdrawing from Our Contract
  • 3. Ethereum Clients
    • Ethereum Networks
    • Should I Run a Full Node?
    • Full Node Advantages and Disadvantages
    • Public Testnet Advantages and Disadvantages
    • Local Blockchain Simulation Advantages and Disadvantages
    • Running an Ethereum Client
    • Hardware Requirements for a Full Node
    • Software Requirements for Building and Running a Client (Node)
    • Parity
    • Go-Ethereum (Geth)
    • The First Synchronization of Ethereum-Based Blockchains
    • Running Geth or Parity
    • The JSON-RPC Interface
    • Remote Ethereum Clients
    • Mobile (Smartphone) Wallets
    • Browser Wallets
  • 4. Cryptography
    • Keys and Addresses
    • Public Key Cryptography and Cryptocurrency
    • Private Keys
    • Generating a Private Key from a Random Number
    • Public Keys
    • Elliptic Curve Cryptography Explained
    • Elliptic Curve Arithmetic Operations
    • Generating a Public Key
    • Elliptic Curve Libraries
    • Cryptographic Hash Functions
    • Ethereum’s Cryptographic Hash Function: Keccak-256
    • Which Hash Function Am I Using?
    • Ethereum Addresses
    • Ethereum Address Formats
    • Inter Exchange Client Address Protocol
    • Hex Encoding with Checksum in Capitalization (EIP-55)
  • 5. Wallets
    • Wallet Technology Overview
    • Nondeterministic (Random) Wallets
    • Deterministic (Seeded) Wallets
    • Hierarchical Deterministic Wallets (BIP-32/BIP-44)
    • Seeds and Mnemonic Codes (BIP-39)
    • Wallet Best Practices
    • Mnemonic Code Words (BIP-39)
    • Creating an HD Wallet from the Seed
    • HD Wallets (BIP-32) and Paths (BIP-43/44)
  • 6. Transactions
    • The Structure of a Transaction
    • The Transaction Nonce
    • Keeping Track of Nonces
    • Gaps in Nonces, Duplicate Nonces, and Confirmation
    • Concurrency, Transaction Origination, and Nonces
    • Transaction Gas
    • Transaction Recipient
    • Transaction Value and Data
    • Transmitting Value to EOAs and Contracts
    • Transmitting a Data Payload to an EOA or Contract
    • Special Transaction: Contract Creation
    • Digital Signatures
    • The Elliptic Curve Digital Signature Algorithm
    • How Digital Signatures Work
    • Verifying the Signature
    • ECDSA Math
    • Transaction Signing in Practice
    • Raw Transaction Creation and Signing
    • Raw Transaction Creation with EIP-155
    • The Signature Prefix Value (v) and Public Key Recovery
    • Separating Signing and Transmission (Offline Signing)
    • Transaction Propagation
    • Recording on the Blockchain
    • Multiple-Signature (Multisig) Transactions
  • 7. Smart Contracts and Solidity
    • What Is a Smart Contract?
    • Life Cycle of a Smart Contract
    • Introduction to Ethereum High-Level Languages
    • Building a Smart Contract with Solidity
    • Selecting a Version of Solidity
    • Download and Install
    • Development Environment
    • Writing a Simple Solidity Program
    • Compiling with the Solidity Compiler (solc)
    • The Ethereum Contract ABI
    • Selecting a Solidity Compiler and Language Version
    • Programming with Solidity
    • Data Types
    • Predefined Global Variables and Functions
    • Contract Definition
    • Functions
    • Contract Constructor and selfdestruct
    • Adding a Constructor and selfdestruct to Our Faucet Example
    • Function Modifiers
    • Contract Inheritance
    • Error Handling (assert, require, revert)
    • Events
    • Calling Other Contracts (send, call, callcode, delegatecall)
    • Gas Considerations
    • Avoid Dynamically Sized Arrays
    • Avoid Calls to Other Contracts
    • Estimating Gas Cost
  • 8. Smart Contracts and Vyper
    • Vulnerabilities and Vyper
    • Comparison to Solidity
    • Modifiers
    • Class Inheritance
    • Inline Assembly
    • Function Overloading
    • Variable Typecasting
    • Preconditions and Postconditions
    • Decorators
    • Function and Variable Ordering
    • Compilation
    • Protecting Against Overflow Errors at the Compiler Level
    • Reading and Writing Data
  • 9. Smart Contract Security
    • Security Best Practices
    • Security Risks and Antipatterns
    • Reentrancy
    • Real-World Example: The DAO
    • Arithmetic Over/Underflows
    • Real-World Examples: PoWHC and Batch Transfer Overflow (CVE-2018–10299)
    • Unexpected Ether
    • Further Examples
    • DELEGATECALL
    • Real-World Example: Parity Multisig Wallet (Second Hack)
    • Default Visibilities
    • Real-World Example: Parity Multisig Wallet (First Hack)
    • Entropy Illusion
    • Real-World Example: PRNG Contracts
    • External Contract Referencing
    • Real-World Example: Reentrancy Honey Pot
    • Short Address/Parameter Attack
    • Unchecked CALL Return Values
    • Real-World Example: Etherpot and King of the Ether
    • Race Conditions/Front Running
    • Real-World Examples: ERC20 and Bancor
    • Denial of Service (DoS)
    • Real-World Examples: GovernMental
    • Block Timestamp Manipulation
    • Real-World Example: GovernMental
    • Constructors with Care
    • Real-World Example: Rubixi
    • Uninitialized Storage Pointers
    • Real-World Examples: OpenAddressLottery and CryptoRoulette Honey Pots
    • Floating Point and Precision
    • Real-World Example: Ethstick
    • Tx.Origin Authentication
    • Contract Libraries
  • 10. Tokens
    • How Tokens Are Used
    • Tokens and Fungibility
    • Counterparty Risk
    • Tokens and Intrinsicality
    • Using Tokens: Utility or Equity
    • It’s a Duck!
    • Utility Tokens: Who Needs Them?
    • Tokens on Ethereum
    • The ERC20 Token Standard
    • Launching Our Own ERC20 Token
    • Issues with ERC20 Tokens
    • ERC223: A Proposed Token Contract Interface Standard
    • ERC777: A Proposed Token Contract Interface Standard
    • ERC721: Non-fungible Token (Deed) Standard
    • Using Token Standards
    • What Are Token Standards? What Is Their Purpose?
    • Should You Use These Standards?
    • Security by Maturity
    • Extensions to Token Interface Standards
    • Tokens and ICOs
  • 11. Oracles
    • Why Oracles Are Needed
    • Oracle Use Cases and Examples
    • Oracle Design Patterns
    • Data Authentication
    • Computation Oracles
    • Decentralized Oracles
    • Oracle Client Interfaces in Solidity
  • 12. Decentralized Applications (DApps)
    • What Is a DApp?
    • Backend (Smart Contract)
    • Frontend (Web User Interface)
    • Data Storage
    • Decentralized Message Communications Protocols
    • A Basic DApp Example: Auction DApp
    • Auction DApp: Backend Smart Contracts
    • Auction DApp: Frontend User Interface
    • Further Decentralizing the Auction DApp
    • Storing the Auction DApp on Swarm
    • Preparing Swarm
    • Uploading Files to Swarm
    • The Ethereum Name Service (ENS)
    • History of Ethereum Name Services
    • The ENS Specification
    • Bottom Layer: Name Owners and Resolvers
    • Middle Layer: The .eth Nodes
    • Top Layer: The Deeds
    • Registering a Name
    • Managing Your ENS Name
    • ENS Resolvers
    • Resolving a Name to a Swarm Hash (Content)
    • From App to DApp
  • 13. The Ethereum Virtual Machine
    • What Is the EVM?
    • Comparison with Existing Technology
    • The EVM Instruction Set (Bytecode Operations)
    • Ethereum State
    • Compiling Solidity to EVM Bytecode
    • Contract Deployment Code
    • Disassembling the Bytecode
    • Turing Completeness and Gas
    • Gas
    • Gas Accounting During Execution
    • Gas Accounting Considerations
    • Gas Cost Versus Gas Price
    • Block Gas Limit
  • 14. Consensus
    • Consensus via Proof of Work
    • Consensus via Proof of Stake (PoS)
    • Ethash: Ethereum’s Proof-of-Work Algorithm
    • Casper: Ethereum’s Proof-of-Stake Algorithm
    • Principles of Consensus
    • Controversy and Competition
  • A. Ethereum Fork History
    • Ethereum Classic (ETC)
    • The Decentralized Autonomous Organization (The DAO)
    • The Reentrancy Bug
    • Technical Details
    • Attack Flow
    • The DAO Hard Fork
    • Timeline of the DAO Hard Fork
    • Ethereum and Ethereum Classic
    • The EVM
    • Core Network Development
    • Other Notable Ethereum Forks
  • B. Ethereum Standards
    • Ethereum Improvement Proposals (EIPs)
    • Table of Most Important EIPs and ERCs
  • C. Ethereum EVM Opcodes and Gas Consumption
  • D. Development Tools, Frameworks, and Libraries
    • Frameworks
    • Truffle
    • Embark
    • OpenZeppelin
    • ZeppelinOS
    • Utilities
    • EthereumJS helpeth: A Command-Line Utility
    • dapp.tools
    • SputnikVM
    • Libraries
    • web3.js
    • web3.py
    • EthereumJS
    • web3j
    • EtherJar
    • Nethereum
    • ethers.js
    • Emerald Platform
    • Testing Smart Contracts
    • On-Blockchain Testing
    • Ganache: A Local Test Blockchain
  • E. web3.js Tutorial
    • Description
    • web3.js Contract Basic Interaction in a Nonblocked (Async) Fashion
    • Node.js Script Execution
    • Reviewing the Demo Script
    • Contract Interaction
    • Asynchronous Operation with Await
  • F. Short Links Reference
    • Smart Contract Security
    • Tokens

 


Average rating
4.50
2 reviews
5 stars
50%
4 stars
50%
3 stars
0%
2 stars
0%
1 star
0%

2 reviews for Mastering Ethereum

  1. Mark

    I love this book for its attitude and get-to-the-point precision.

  2. William

    Mastering Ethereum is a comprehensive introduction to Ethereum. It is meant for programmers but could be read by non-programmers as well.

Add a review

Your email address will not be published. Required fields are marked *

Sign up for new books releases

The Crypto Bookstore © 2021. All Rights Reserved. | Privacy Policy

The Crypto Bookstore is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com