Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Copyright
Brief Table of Contents
Table of Contents
Foreword
Preface
Acknowledgments
About this book
About the author
About the cover illustration
Part 1.
Chapter 1. A first look at decentralized applications
1.1. What is a Dapp?
1.2. Good and bad Dapps
1.3. A five-minute Dapp implementation
Summary
Chapter 2. Understanding the blockchain
2.1. A deeper look at decentralized applications
2.2. What technologies make Dapps viable?
2.3. Ethereum’s history and governance
Summary
Chapter 3. The Ethereum platform
3.1. Connecting to Ethereum through the wallet
3.2. Smart contracts: The brain of Dapps
3.3. Connecting to Ethereum with geth
3.4. Managing accounts with geth
3.5. Revisiting SimpleCoin’s contract
Summary
Chapter 4. Deploying your first smart contract
4.1. Deploying a contract onto the network
4.2. Interacting with the contract
4.3. Nodeless deployment through MetaMask
Summary
Part 2.
Chapter 5. Programming smart contracts in Solidity
5.1. EVM contract languages
5.2. High-level contract structure
5.3. Solidity language essentials
5.4. Time to improve and refactor SimpleCoin
Summary
Chapter 6. Writing more complex smart contracts
6.1. Introducing SimpleCrowdsale, a crowdsale contract
6.2. Extending functionality with inheritance
Summary
Chapter 7. Generalizing functionality with abstract contracts and interfaces
7.1. Making a contract abstract
7.2. Allowing multiple contract implementations with interfaces
7.3. Real-world crowdsale contracts
7.4. Recap of Solidity’s object-oriented features
7.5. Libraries
7.6. Making SimpleCoin ERC20 compliant
Summary
Chapter 8. Managing smart contracts with Web3.js
8.1. Revisiting deployment through geth’s interactive console
8.2. Interacting with SimpleCoin through geth’s console
8.3. Simplifying command-based deployment with Node.js
8.4. Deploying on a private network
8.5. Making development more efficient by deploying on mock networks
8.6. Smoother interaction with SimpleCoin through a web UI
Summary
Part 3.
Chapter 9. The Ethereum ecosystem
9.1. The core components
9.2. A bird’s-eye view of the full ecosystem
9.3. Decentralized address resolution with ENS
9.4. Decentralized content storage
9.5. Accessing external data through oracles
9.6. Dapp frameworks and IDEs
Summary
Chapter 10. Unit testing contracts with Mocha
10.1. Installing Mocha
10.2. Setting up SimpleCoin in Mocha
10.3. Writing unit tests for SimpleCoin
Summary
Chapter 11. Improving the development cycle with Truffle
11.1. Setting up Truffle
11.2. Moving SimpleCoin under Truffle
Summary
Chapter 12. Putting it all together: Building a complete voting Dapp
12.1. Defining the requirements of a voting Dapp
12.2. The development plan
12.3. Starting the Truffle project
12.4. Implementing the voting contract
12.5. Compiling and deploying SimpleVoting
12.6. Writing unit tests
12.7. Creating a web UI
12.8. Food for thought
Summary
Part 4.
Chapter 13. Making a Dapp production ready
13.1. Event logging
13.2. Designing an upgradeable library
13.3. Designing an upgradeable contract
Summary
Chapter 14. Security considerations
14.1. Understanding general security weak spots
14.2. Understanding risks associated with external calls
14.3. How to perform external calls more safely
14.4. Avoiding known security attacks
14.5. General security guidelines
Summary
Chapter 15. Conclusions
15.1. Evolution of Ethereum
15.2. Alternative Ethereum implementations
15.3. Beyond the Ethereum blockchain
Summary
Appendix A. SimpleCoin inherited from Ownable
Appendix B. Full SimpleCrowdsale application
Appendix C. SimpleCoin Mocha unit testing suite
Appendix D. impleVoting contract
The Lifecycle of a Voting Transaction
Full View of the Current Ethereum Ecosystem
Index
List of Figures
List of Tables
List of Listings
← Prev
Back
Next →
← Prev
Back
Next →