Developing DApps with Ethereum
Developing smart contracts and user interfaces
Decentralized applications (DApps) provide a new class of solutions utilizing the distributed storage and logic of smart-contract-based blockchains coupled with strong cryptographic authorization. It's now possible to deploy trustless systems where users interact directly with logic and state recorded on a blockchain. Identity, supply chain, governance, and finance are just some of the industries that are researching and building DApps.
Join expert Destry Saul to learn how to write a smart contract and deploy it on the Ethereum blockchain. A smart contract isn’t very useful unless you can interact with it, so you'll also learn how to write a web application that can read from and update your contract. Along the way, you'll discover what smart contracts can do, such as trustlessly store state and logic, and also what they can’t, such as automatically respond to external signals. You'll also get an introduction to the current blockchain engineer toolkit.
What you'll learn-and how you can apply it
By the end of this live, online course, you’ll understand:
- How to scope and begin a DApp project
- How DApp frontends interact with smart contracts
- What belongs in a smart contract and what belongs in the interface
And you’ll be able to:
- Write a smart contract
- Deploy a smart contract on the Ethereum blockchain
- Write a simple frontend that reads and writes to your contract
This training course is for you because...
- You're a developer who wants to break into the blockchain industry but don’t know where to start.
- You're a developer or technical decision maker in any industry, and you want to learn how blockchains could be integrated with your products.
- A machine with the Chrome browser installed
- A free GitHub account (optional, but will enable you to easily deploy DApps via GitHub Pages)
- Clone or download the Git repository of template code from https://github.com/destrys/introtodapps onto your local machine.
- Review the README instructions in that repository.
- Install the Truffle Framework Suite.
- Install the Chrome Metamask extension.
- Set up an Ethereum Kovan testnet wallet, using the Chrome Metamask extension (optional).
- (Optional) Join this chat room (log in with either a GitLab, GitHub, or Twitter account) and post your Kovan Test Network address. The bot will send testnet coins to your wallet.
- Set up a free Infura.io account. (optional)
- Work through the Truffle Pet Shop tutorial.
- Familiarize yourself with the Web3 package documentation and the Ethereum Solidity documentation.
Recommended follow-up: - Read Mastering Ethereum (book)
About your instructor
Destry Saul is Unchained Capital’s first Blockchain Engineer. His work enables Unchained to safely custody tens of millions of dollars of customer blockchain assets by authoring security protocols, writing Hardware Wallet integrations, and developing Unchained’s hardware-wallet compatible, multi-signature, ethereum smart contract and dApp. Before diving into the blockchain, Destry was a Data Scientist and Big Data Solution Architect for both Infochimps and Cisco Systems. Destry earned his Ph.D. in astrophysics from Columbia University in New York by developing three-dimensional computer vision algorithms to identify cold clouds of hydrogen gas on the edge of our Milky Way galaxy. As a graduate student, he taught four semesters of astronomy lab courses which included content development. During this time he was also a founding member of the ‘Rooftop Variables’ outreach program which taught New York City high school teachers how to run lab classes in astronomy and provided them with telescopes and paired them with active graduate students. For the past year, Destry has organized the Tucson Blockchain Developers MeetUp, presenting on a variety of blockchain topics for the growing community of blockchain developers in the Tucson area.
The timeframes are only estimates and may vary according to how the class is progressing
Getting started (35 minutes)
- Lecture: Introduction; local environment setup
- Hands-on exercise: Deploy and interact with a prepared example smart contract and DApp
Your first contract (40 minutes)
- Lecture: What belongs in the smart contract and what doesn't
- Hands-on exercise: Modify the example contract to add new functions
- Group discussion: Smart contract design considerations
- Break (5 minutes)
Web app interaction (50 minutes)
- Lecture: DApp design; wallet integration; the Web3 package
- Hands-on exercise: Modify the example web app to use the new smart contract functions
- Group discussion: What can a DApp do that a traditional web app can’t?
- Break (5 minutes)
Deploying your contract and app (35 minutes)
- Lecture: Deployment options; How can you publish your DApp?
- Hands-on exercise: Deploy your contract on the Ethereum testnet and publish the DApp
Wrap-up and Q&A (10 minutes)