Resources for learning blockchain development
Companion resources for Patrick Gallagher's blockchain courses and workshops. #BUIDL
NOTE: Resources can be used for your course with permission. Just ask!
- Make your own personal token
- Splitter tool: Quickly split Ethereum among multiple addresses.
- Public key encryption with paint.
- Tokenize all the things!
- Use a DApp to play Trivia
- Introduction to wallets
- Setting up MetaMask
Resources
Lesson 1 - Hands-on Blockchain
What is Blockchain
Ethereum-specific resources
Set up a Software wallet
Use-cases and DApps
Smart Contracts
Encryption
Online Training
Lesson 2 - Smart Contracts
Solidity
Development Environments, SDKs, tools
- ConsenSys Truffle suite. Development environment, testing framework and asset pipeline for blockchains using Ethereum
- JP Morgan Chase Cakeshop. Development environment and SDK for Ethereum-like ledgers.
-
Big list of tools
Wallets
- Advanced wallet w/ crypto-collectibles Vault.io (warning: untested)
Q: What does m/44'/60'/0'/0
mean when using my hardware wallet?
- 44BIP 44
- 60Ethereums coin type
- 0Account 0
- 0Chain 0 (mainnet)
Vocabulary
DApps
DApps that make you think "this is a thing?"
Conference Videos
https://blockstack.org/berlin2018
Online Training
The best paid DApp course by Stephen Grider ($10 Udemy)
Coding Challenges
Newsletters
Books
- Great examples of Smart Contracts: Blockchain Applications: A Hands-On Approach by Arshdeep Bahga and Vijay
Madisetti
- A big-picture understanding of the blockchain space: Cryptoassets: The Innovative Investor's Guide to Bitcoin and Beyond by Chris
Burniske and Jack Tatar
Bounties Grants and jobs
Lesson 3 Decentralize Applications (DApps)
Using Web3
WARNING! Don't be a dummy like me and make sure you are using the correct version of web3. Check your package.json file and delete the caret "^" on web3 to prevent automatically updating to a newer version and breaking your DApp.
- Truffle can have its own web3 syntax. Use these docs. Upon Truffle version 5 release, it will use web3 1.0.0.
- For
"web3": "0.2x.x"
use these docs and assign variable directly
- For
"web3": "1.0.0-beta.26"
use these docs and use .then()
callback promises
Diagnosing issues
Security assessment
Wallet integration
Advanced Topics