Ethereum for Web Developers: Learn to Build Web Applications on Top of the Ethereum Blockchain
Technology is constantly evolving, and blockchain is taking development to new places, as mobile did a decade ago - and Ethereum is the leading platform for creating this new wave of applications. This book reveals everything you need to create a robust decentralized application (more commonly known as DApp). Unlike other books on the topic, this one focuses on the web application layer, and guides you in creating great experiences on top of the Ethereum blockchain. You'll review the challenges and differences involved in developing DApps as opposed to traditional web applications.After a brief introduction to blockchain history and Ethereum in particular, you'll jump directly into building a sample decentralized application, to familiarize yourself with all the moving pieces. This book offers specific chapters on querying and rendering data from the blockchain, reacting to events, interacting with user accounts, sending transactions, managing gas, handling confirmations and reorganizations, and more. You will also find a chapter dedicated to Solidity that will give you the necessary means to understand and even build your own smart contracts.
Other important topics covered include building backend servers that act as indexing layers, and managing storage efficiently with solutions like the interplanetary file system, or IPFS. Last but not least, you will find chapters that examine the biggest problems on Ethereum today: onboarding and scalability. These include the state of the art of the available strategies to tackle them, such as meta-transactions, smart accounts, ENS, state channels, sidechains, and more.
What You'll Learn
- Connect to the blockchain from the browser and send transactions from client-side
- Build a web app that provides a read-only interface to a blockchain contract
- Create a wallet interface for arbitrary fungible tokens, displaying the user's balance and allowing for simple transfers to other addresses
- Develop a web app that stores large blobs of data off-chain, and keeps a reference to it on-chain (e.g. avatars, long text descriptions)
- Produce a web app that relies on a centralized server for indexing on-chain information to be presented to the user
Santiago Palladino has been working as a professional software developer since 2005, extensively in web applications for over 10 years. He entered the Ethereum space in 2017, when he joined the OpenZeppelin team as one of the first employees. There, he worked as security researcher in several audits, and currently leads the development of open source tools and services for building Ethereum applications. He has an MSc in Computer Science (with a thesis on Operations Research) from University of Buenos Aires, where he taught Algorithms and Numerical Methods for 7 years. He has written several online articles on Ethereum development and Blockchain in general, and is one of the authors of the ZeppelinOS white paper. You can find him on Twitter @smpalladino, or Github @spalladino.