Muutke küpsiste eelistusi

Hands-On Smart Contract Development with Solidity and Ethereum: From Fundamentals to Deployment [Pehme köide]

  • Formaat: Paperback / softback, 270 pages, kõrgus x laius: 233x178 mm
  • Ilmumisaeg: 31-Dec-2019
  • Kirjastus: O'Reilly Media
  • ISBN-10: 1492045268
  • ISBN-13: 9781492045267
  • Pehme köide
  • Hind: 63,19 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 74,34 €
  • Säästad 15%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 2-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 270 pages, kõrgus x laius: 233x178 mm
  • Ilmumisaeg: 31-Dec-2019
  • Kirjastus: O'Reilly Media
  • ISBN-10: 1492045268
  • ISBN-13: 9781492045267

Ready to dive into smart contract development for the blockchain? With this practical guide, experienced engineers and beginners alike will quickly learn the entire process for building smart contracts for Ethereum&;the open source blockchain-based distributed computing platform. You&;llget up to speed with the fundamentals and quickly move into builder mode.

Kevin Solorio, Randall Kanna, and Dave Hoover show you how to create and test your own smart contract, create a frontend for users to interact with, and more. It&;s the perfect resource for people who want to break into the smart contract field but don&;t know where to start.

In four parts, this book helps you:

  • Explore smart contract fundamentals, including the Ethereum protocol, Solidity programming language, and the Ethereum Virtual Machine
  • Dive into smart contract development using Solidity and gain experience with Truffle framework tools for deploying and testing your contracts
  • Use Web3 to connect your smart contracts to an applicationso users can easily interact with the blockchain
  • Examine smart contract security along with free online resources for smart contract security auditing
Preface ix
Part I Intro to the Ethereum Blockchain
1 Blockchain Concepts
3(20)
A Brief History
4(1)
The Character of a Blockchain
5(9)
Decentralized Networks
5(1)
Consensus Protocols
6(3)
Transaction Processing
9(2)
Transaction Finality
11(2)
Hard Forks
13(1)
Ethereum Fundamentals
14(8)
Ether and Gas
14(3)
Accounts
17(1)
Contracts
17(1)
Blocks and Transactions
18(1)
What Time Is It?
19(2)
Signing Transactions
21(1)
Summary
22(1)
2 Decentralized Applications
23(8)
Tokens
23(3)
ERC-20
23(2)
Non-Fungible Token (ERC-721)
25(1)
Supply Chain
26(2)
Permanent Records
28(1)
Evaluating Blockchain for Your Application
29(1)
Verifiable
29(1)
Transparent
29(1)
Resilient
30(1)
Summary
30(1)
3 Before We Get Started
31(18)
Ethereum Clients
31(2)
Installing Parity
32(1)
Installing MetaMask
33(9)
Installing Node.js
42(2)
Ubuntu Installation (Including Windows WSL Ubuntu)
42(1)
Mac Installation
43(1)
Installing the Truffle Suite
44(2)
Truffle
44(1)
Ganache
45(1)
Summary
46(3)
Part II Developing Smart Contracts
4 Our First Smart Contract
49(22)
Setup
49(1)
Our First Test
50(4)
Saying Hello
54(2)
Making Our Contract Dynamic
56(6)
Making the Greeter Ownable
62(7)
Summary
69(2)
5 Deploying and Interacting with Contracts
71(16)
Contract Compilation and Deployment
71(2)
Deployment Process
72(1)
Setting Up the UI
73(1)
Deploying to Ganache
74(6)
Deploying to Goerli with Parity
80(4)
Deploying to Rinkeby with Infura
84(2)
Summary
86(1)
6 The Fundraiser Application
87(48)
Application Overview
87(4)
Creating the Project
91(2)
Initializing Fundraisers
93(11)
Setting the Beneficiary and Custodian
101(3)
Editing the Beneficiary
104(5)
Making Donations
109(17)
Structs
111(1)
Mappings
112(1)
Donation Tests
112(4)
myDonations
116(3)
Fundraiser Totals
119(5)
Events
124(2)
Withdrawing Funds
126(5)
Fallback Functions
131(3)
Summary
134(1)
7 FundraiserFactory
135(20)
Migrating Our FundraiserFactory
135(2)
Creating Fundraisers
137(5)
Viewing Available Fundraisers
142(9)
Testing Pagination When Empty
142(2)
Testing the Limit
144(3)
Testing the Offset
147(4)
Setting Up the UI
151(1)
Summary
152(3)
Part III Interacting with Our Smart Contracts Through Web 3
8 What is Web3?
155(8)
The Frontend, Web3, and the Blockchain
155(1)
Web3 Methods
156(5)
getAccounts()
156(1)
getBlockNumber()
156(1)
getBalanceO
157(1)
sendTransaction()
157(1)
Providers
158(1)
Promises with Web3
158(2)
MetaMask for Web3 Injection
160(1)
Send (State Updates/Write)
160(1)
Call (Reads)
160(1)
Summary
161(2)
9 Connecting the UI to Our Contracts
163(16)
Why React?
163(2)
Dev Setup
164(1)
Truffle
165(11)
React Truffle Box Setup
166(6)
Importing our Greeter Contracts
172(1)
Adding Our Greeter Contract Functionality
173(2)
Setting Our Greeting Through React
175(1)
Summary
176(3)
10 Our Larger DApp
179(24)
Starting with React Truffle Box
179(10)
Fundraiser Setup
182(3)
React Routing
185(4)
React and Material UI
189(12)
Creating Our New Fundraiser Page View
191(4)
Displaying the Current Fundraisers List
195(6)
Summary
201(2)
11 Finishing Our Fundraiser UI
203(32)
Adding Detailed Information About Each Fundraiser
203(5)
Implementing a Material UI Dialog
205(3)
Accepting a Donation with React
208(6)
Testing a Donation
212(2)
Displaying the Current ETH Exchange Rate
214(4)
Generating a Donation Receipt for Our User
218(6)
Handling a Withdrawal from Our Contract
224(7)
Adding Edit Beneficiary to the Contract
230(1)
Summary
231(4)
Part IV Securing Your Smart Contracts
12 Smart Contract Security
235(8)
Why Do We Need to Worry About Security?
235(1)
Types of Smart Contract Vulnerabilities
236(3)
Unprotected Function
236(1)
Transaction Ordering Dependence
236(1)
Integer Overflow and Underflow
237(1)
Reentrancy
237(1)
Block Gas Limit
238(1)
Timestamp Dependence
238(1)
And Many More
239(1)
Preparing Your Contract for an External Audit
239(1)
External Auditing
240(1)
Auditing Companies
240(1)
Solidified
240(1)
Free Auditing Resources
240(1)
Growing Your Auditing Skills
241(1)
Summary
241(2)
Index 243
Kevin has been developing software for nearly 10 years developing applications on web and mobile platforms. In addition to writing software, he spent nearly 4 years teaching and writing curriculum for Dev Bootcamp and is eager to bring his education experience to helping developers learn the fundamentals of blockchain application development.

A self-taught software engineer since 2000, Dave has been intrigued by how people learn to program for decades. Dave co-founded Dev Bootcamp in 2012 and was co-author of Apprenticeship Patterns in 2009. In 2015, Dave fell down the blockchain rabbit hole and soon after landed at ConsenSys where he focused on Solidity and reusability. Dave is currently the Chief Squirrel at Red Squirrel Technologies, a consultancy focused on smart contract audits, engineering, and coaching.