Chapter 1: Understanding Decentralized Applications
- What are DApps?
- What is the difference between decentralized, centralized, and distributed applications?
- Advantages and disadvantages of centralized and decentralized applications.
- An overview of the data structures, algorithms, and protocols used by some of the most popular DApps.
- Learning about some popular DApps that are built on top of other DApps.
Chapter 2: Understanding How Ethereum Works
- Ethereum user accounts
- What are smart contracts and how do they work?
- Ethereum virtual machine
- How does mining work in the proof-of-work consensus protocol?
- Learning how to use the geth command
- Setting up the Ethereum Wallet and Mist
- Overview of Whisper and Swarm
- The future of Ethereum
Chapter 3: Writing Smart Contracts
- The layout of Solidity source files
- Understanding Solidity data types
- Special variables and functions of contracts
- Control structures
- Structure and features of contracts
- Compiling and deploying contracts
Chapter 4: Getting Started with web3.js
- Connecting to geth
- Exploring the various things that can be done using web3.js
- Discovering various most used APIs of web3.js
- Building a Node.js application for an ownership contract
Chapter 5: Building a Wallet Service
- Difference between online and offline wallets
- Using hooked-web3-provider and ethereumjs-tx to make it easier to create and sign transactions using accounts not managed by an Ethereum node
- Understanding what a HD wallet is and also its uses
- Creating an HD wallet and a transaction signer using lightwallet.js
- Building a wallet service
Chapter 6: Building a Smart Contract Deployment Platform
- Calculating the nonce of a transaction
- Using the transaction pool JSON-RPC API
- Generating data of a transaction for contract creation and method invocation
- Estimating the gas required by a transaction
- Finding the current spendable balance of an account
- Compiling smart contracts using solcjs
- Developing a platform to write, compile, and deploy smart contracts
Chapter 7: Building a Betting App
- How does Oraclize work?
- What are Oraclize’s various data sources and how do each of them work?
- How does consensus work in Oraclize?
- Integrating Oraclize in Ethereum smart contracts
- Using strings the Solidity library to make it easy to work with strings
Building a football betting app
Chapter 8: Building Enterprise Level Smart Contracts
- What the ethereumjs-testrpc node is and how to use it?
- What are topics of events?
- Working with contracts using the truffle-contract package.
- Installing truffle and exploring the truffle command-line tool and configuration file.
- Compiling, deploying, and testing Solidity code using truffle
Package management via NPM and EthPM
- Using the truffle console and writing external scripts
- Building clients for the DApp using truffle
Chapter 9: Building a Consortium Blockchain
- Why is Ethereum unfit for consortium blockchain?
- What is parity node and what are its features?
- What is the Proof-of-Authority consensus protocol and what types of PoA are supported by parity?
- How does the Aura consensus protocol work?
- Downloading and installing parity
- Building a consortium blockchain using parity