The “Practical Blockchain for Developers” book is a textbook developed as teaching content for an intensive practical training course for blockchain developers, written by Svetlin Nakov and his team at SoftUni. The training consists of: - Lecture slides, practical exercises, learning and coding in class (blockchain networks, wallets, DApps, smart contracts, Solidity) - Remote working on practical blockchain projects (online, remote work, in teams / individually)
The course content covers deeply the modern blockchain technologies from the developer’s perspective (blockchain networks, cryptography, wallets, transactions and APIs, consensus algorithms, mining, and offchain transactions) and the practical aspects of DApp development (Ethereum and IPFS, Solidity and smart contracts, the Web3 API to connect Ethereum with JavaScript and other languages, MetaMask and wallets, Truffle and Ganache).
The book follows the “learn by doing” concept and involves the course attendees in live coding exercises and projects every day. Attendees create two practical projects: implement a blockchain network and develop a DApp in Solidity.
The book consists of lessons (represented as slides, designed for teaching in class) and tutorial-style exercises (designed to be followed individually in class or at home).
Table of Contents
Contents ... 2 Detailed Table of Contents ... 4 Preface ... 7 Part I. Blockchain Networks ... 8 Chapter 1.1. Blockchain Introduction ... 9 Chapter 1.2. Blockchain Cryptography ... 39 Chapter 1.3. Consensus Algorithms ... 64 Chapter 1.4. Mining and Pools ... 94 Chapter 1.5. Practical Project: Building a Blockchain Network (Node and Chain) ... 152 Chapter 1.6. Wallets and Wallet APIs ... 162 Chapter 1.7. Transactions in Blockchain ... 206 Chapter 1.8. Crypto-Exchanges ... 246 Chapter 1.9. Practical Project: Building a Blockchain Network (Wallet and Faucet) ... 293 Chapter 1.10. Scaling Blockchains: Offchain, Payment Channels, Sidechains ... 296 Chapter 1.11. Anonymous Transactions ... 329 Part II. DApps and Solidity ... 344 Chapter 2.1. Ethereum Introduction ... 345 Chapter 2.2. Solidity Basics ... 402 Chapter 2.3. Solidity Advanced ... 415 Chapter 2.4. Ganache and Truffle ... 443 Chapter 2.5. DApp Architectures ... 503 Chapter 2.6. Decentralized Storage and IPFS ... 532 Chapter 2.7. Web3 API and MetaMask ... 538 Chapter 2.8. Practical Project: DApp Architecture ... 572 Chapter 2.9. Server-Side Ethereum APIs ... 574 Chapter 2.10. Blockchain and Smart Contract Security ... 623 Chapter 2.11. Other DApp Platforms ... 648 Chapter 2.12. Practical Project: DApp Implementation ... 677 Conclusion ... 681
Read this book at Google books: https://books.google.bg/books/about?i..., https://blockchain-dev-book.softuni.org
Svetlin Nakov (https://nakov.com) has 20+ years of technical background as software engineer, software project manager, consultant, trainer and entrepreneur with rich experience with Web development, information systems, databases, blockchain, cryptography, .NET, Java EE, JavaScript, PHP, Python and software engineering. He is the leading author of 15 books on computer programming, software technologies, cryptography, C#, Java, JavaScript, Python, C++ and tens of technical and scientific publications. He is a big fan of knowledge sharing and is proud Wikipedia contributor, free books author and open-source supporter.
Svetlin has been a speaker at hundreds of conferences, seminars, meetups, courses and other trainings in the United States, Singapore, Germany, Egypt, Bulgaria and other locations. He holds a PhD degree in computer science (for his research on computational linguistics and machine learning), several medals from the International Informatics Olympiads (IOI) and the Bulgarian President’s award “John Atanasoff”. He has been a part-time assistant professor / visiting lecturer / technical trainer in Sofia University, New Bulgarian University, the Technical University of Sofia, Ngee Ann Polytechnic (Singapore) and few others.
Dr. Svetlin Nakov have spent his last 15 years in teaching software engineers: from basics of coding to advanced Web apps. He is proud to have tens of thousands graduates who got technical skills and joined the software industry.
In the last few years Svetlin Nakov together with his partners drive the global expansion of the largest training center for software engineers in Bulgaria and the region – the Software University (https://softuni.us), where he inspires and teaches hundred of thousands of young people in computer science, software development, information technologies and digital skills, and gives them a profession and a job.