Termin realizacji zamówienia: ok. 20 dni roboczych.
Darmowa dostawa!
Beginning -Intermediate user level
Build products on top of Ethereum's new and expansive technological stack.Writing any good web application requires planning, care, and deft technical skills, but Ethereum's execution model presents its own challenges for engineers wishing to build applications on top of its smart contract layer. Building performant and engaging product experiences is one of the most important – and often underappreciated – roles in any company.This book looks at the full product stack needed to build such experiences on top of Ethereum smart contracts, weaving tutorials and case studies through more conversational discussions of the various constraints, trade-offs, and complexities involved in doing so. You’ll learn about the fundamentals of Ethereum from a new perspective, developing a strong understanding of how the Ethereum Virtual Machine (EVM) works and how it affects product engineering, as well as all the pieces of technology that go into decentralized apps (dapps) behind the front end: RPC nodes, wallets, indexers, application hosts, and more. You’ll be exposed to plenty of UI, JavaScript code, and idiomatic ways to bring on-chain data into your front ends. And you’ll be given up-to-date knowledge of the best practices and future possibilities that decentralized computation might offer the product engineer.
What You Will Learn
Understand the EVM and how it works
Gain insight into smart contracts and how apps connect to them
Understand the difference between live data and indexed data
How decentralization affects the UI of applications
Build engaging, tasteful product experiences on top of Ethereum
Who This Book Is For
A confident – mid-level or senior – software engineer or web developer who hasn’t properly branched out into Ethereum; someone who might have scratched the surface, but wants a deeper understanding of the principles behind dapps, and who wants a head start on the hurdles faced while building them.
We introduce the core concepts discussed in the book, and situate them with respect to the foundational principles of cryptocurrencies and web3. We discuss decentralisation. We describe the key design decisions of the EVM (Ethereum Virtual Machine) and how they raise some problems for product engineers. We describe the book ahead and what will be covered, chapter by chapter.
Chapter 2. The lifecycle of an Ethereum transaction
We discuss the lifecycle of a request on Ethereum, guiding the user through: how is a request initiated by a UI and confirmed by a user; sent to a node, validated, how can UIs display its status, when is a transaction confirmed. We ask: what is a smart contract? We frame smart contracts as APIs. We also set up the following three chapters with the tripartite structure of write, read, and side-effect.
Chapter 3. Wallets
We discuss the role of wallets as both stores and signers. We discuss the popular MetaMask model for wallet injection, WalletConnect, EIP-1193, and other attempts to standardise the wallet interface. We explore wallets as identities, and describe approaches to 'logging in' with Ethereum. We explore different attack vectors that integrating wallets might raise.
Chapter 4. Nodes and Indexes
We talk about nodes – the programmatic gateway to the blockchain – in more detail: how to connect to them and use them to retrieve information. We discuss the difference between live data and indexed data. We discuss how external RPC nodes allow external function calls with and friends. We discuss ABIs and contract interfaces.
Chapter 5. Events
We investigate Ethereum's event model, and how to reconstruct a contract's state from the event log. We talk about Bloom filters and how to process many events efficiently.
Chapter 6. Transactions
This chapter builds more on the first chapter, diving into detail about the implementation of transactions. We discuss interfaces for creating, signing, and viewing transactions. We frame transactions theoretically and practically. We discuss the RPC call and its interface. We break down the minutiae of cryptographic signing and nonces, and consider how it affects the UI of applications. We discuss transaction statuses and estimation.
Chapter 7. Error Handling
In this chapter, we discuss the various failure modes of smart contracts and how to build rich, useful user interfaces around them. We consider gas, nonces, and transaction synchronisation. We talk about ways of building error-resilience into your product with input validation. We talk about standardising error messages at the smart contract level.
Chapter 8. Tooling
In this chapter, we investigate the sorts of tools available to the product engineer, drawing on problems faced in the previous chapters. We discuss running manual tests, declarative provisioning of infrastructure, and keeping private keys safe. We also discuss current lacunas and places where existing tooling could be improved.
Chapter 9. Data-first Applications
We wrap-up the preceding discussion with a more opinionated chapter on a data-first approach to application design. In particular, I'll make the case for single-page applications backed by a data scraper as a strong model for building application infrastructure around smart contracts, tying together the themes of the preceding few chapters.
We discuss the ways that the surface area of smart contracts rubs against the surface area of web applications, with an emphasis on the more commercial and conceptual. We explore how detaching state from interface allows for more decentralised and censorship-resistant protocols – and how product engineers can profit from this split. We talk about the many ways that thoughtful product engineering can improve the user experience of crypto, and ruminate on the future direction of the ecosystem.
Appendix 1: A Common-Sense Crypto-Native Checklist
We provide a summary of the main questions and action points found in the book, with an easy reference checklist for engineers to work through when building their crypto-native applications.
Appendix 2: Resources and Bibliography
We provide one or two pages of QR codes, with links to relevant resources. We provide a more comprehensive, traditional bibliography.
Jamie Rumbelow is a software engineer and writer based in London, U.K. Until recently, he was a product engineer at Fei Labs, a major Ethereum protocol, where he built technologies and products at the intersection between the web2 and web3 stacks. He worked as a Founding Engineer and Senior Software Engineer in startups, responsible for training and mentoring as well as writing code. He has worked in the tech industry for over a decade, seeing organizations at varying levels of scale and the ways that teams and technologies get shaped by product decisions. He has also studied philosophy at the graduate level, which has given him the tools to think about computing in a deeper way. Over the past few years, he has built up a set of principles and opinions on what makes for great software and a great engineering culture.
Build products on top of Ethereum's new and expansive technological stack.
Writing any good web application requires planning, care, and deft technical skills, but Ethereum's execution model presents its own challenges for engineers wishing to build applications on top of its smart contract layer. Building performant and engaging product experiences is one of the most important – and often underappreciated – roles in any company.
This book looks at the full product stack needed to build such experiences on top of Ethereum smart contracts, weaving tutorials and case studies through more conversational discussions of the various constraints, trade-offs, and complexities involved in doing so. You’ll learn about the fundamentals of Ethereum from a new perspective, developing a strong understanding of how the Ethereum Virtual Machine (EVM) works and how it affects product engineering, as well as all the pieces of technology that go into decentralized apps (dapps) behind the front end: RPC nodes, wallets, indexers, application hosts, and more. You’ll be exposed to plenty of UI, JavaScript code, and idiomatic ways to bring on-chain data into your front ends. And you’ll be given up-to-date knowledge of the best practices and future possibilities that decentralized computation might offer the product engineer.
You will:
Understand the EVM and how it works
Gain insight into smart contracts and how apps connect to them
Understand the difference between live data and indexed data
How decentralization affects the UI of applications
Build engaging, tasteful product experiences on top of Ethereum