
Nanodegree key: nd1309
Version: 1.0.0
Locale: en-us
In this program, you'll work with the Bitcoin and Ethereum protocols, build projects for real-world application, and gain the essential skills for a career in this dynamic space.
Content
Part 01 : Term 1 | Blockchain Developer: Fundamentals
Learn to identify fundamental transaction types, build a web service and API, and secure digital assets with your blockchain identity. Create a private blockchain, and a notarization web service. Use your blockchain identity to secure digital assets on the Ethereum platform with a smart contract.
-
Module 01: Blockchain Identity
-
Lesson 01: Welcome to the Blockchain Revolution
In this lesson you are introduced to the Blockchain Revolution and get an overview of the Blockchain Developer Nanodegree program.
- Concept 01: Welcome to the Nanodegree Program
- Concept 02: Why Blockchain?
- Concept 03: Meet Your Instructors
- Concept 04: Influence of Blockchain
- Concept 05: Blockchain Overview
- Concept 06: Program Overview
- Concept 07: Nanodegree Resources
- Concept 08: Introduction to Workspaces
- Concept 09: Practice Using a Workspace
- Concept 10: Blockchain Motivation
- Concept 11: Tell us About Yourself
- Concept 12: Looking Ahead
-
Lesson 02: Career Services Available to You
The Careers team at Udacity is here to help you land your dream job - whether it's a new role or growing at your current company. Learn more about how we'll support you in your career growth.
-
-
Module 02: How to Get Help from Peers and Mentors
-
Lesson 01: Get Help from Peers and Mentors
You are starting a challenging journey. Take 3 minutes to read how to get help with projects and content.
-
Lesson 02: Get Help with Your Account
What to do if you have questions about your account or general questions about the program.
-
Part 02 : Blockchain Identity
-
Module 01: Blockchain Identity
-
Lesson 01: Blockchain Basics
In this lesson, you learn the basics of Blockchain are introduced to topics like Bitcoin to begin creating your very own bitcoin identity.
- Concept 01: Lesson Introduction
- Concept 02: Interview: Blockchain Fundamentals
- Concept 03: Financial Transactions
- Concept 04: Introduction to Bitcoin
- Concept 05: Hashing
- Concept 06: Practice Hashing
- Concept 07: Blocks
- Concept 08: Practice Block
- Concept 09: Blockchain
- Concept 10: Distributed Peer-to-Peer Network
- Concept 11: Memory Pool
- Concept 12: Consensus
- Concept 13: Proof of Work
- Concept 14: Proof of Stake
- Concept 15: Delegated Byzantine Fault Tolerance
- Concept 16: Other Consensus Models
- Concept 17: Recap of Achieving Consensus Protocols
- Concept 18: Interview: Blockchain Fundamentals
- Concept 19: Lesson Recap
-
Lesson 02: Blockchain Transactions
Identify various wallet types, private/public key generation between non-deterministic, sequential deterministic, and hierarchical deterministic wallets.
- Concept 01: Lesson Introduction
- Concept 02: Interview: Blockchain Identity
- Concept 03: Blockchain Identity
- Concept 04: Wallet Overview
- Concept 05: Wallet Types
- Concept 06: Private Keys
- Concept 07: Get Your Own Wallet
- Concept 08: Restoring Blockchain Identity
- Concept 09: Sign a Transaction
- Concept 10: Blockchain Transaction Lifecycle
- Concept 11: Interview: Blockchain Identity
- Concept 12: Course Recap
-
Lesson 03: Verify Message Signature
Use Bitcoin Javascript Libraries to sign and verify messages that authenticate transactions
-
Lesson 04: Manage Your Blockchain Identity
Learn to create your identity on the Blockchain and interact with an existing web service.
-
Part 03 : Blockchain Data
-
Module 01: Blockchain Data
-
Lesson 01: Blockchain Data Overview
Learn the general concepts of a blockchain data model.
- Concept 01: Lesson Overview
- Concept 02: Interview: Blockchain as a Dataset
- Concept 03: Blockchain vs Traditional Databases
- Concept 04: Do You Need a Blockchain?
- Concept 05: Blockchain Types
- Concept 06: Interview: Blockchain Types
- Concept 07: P2P Network vs Client-Server Model
- Concept 08: Explore Blockchain Data
- Concept 09: Practice Block Data
- Concept 10: Explore Bitcoin's Codebase
- Concept 11: BIPs and Forks
- Concept 12: Quiz: Softfork vs Hardfork
- Concept 13: Interview: How to Get Involved
- Concept 14: Lesson Summary
-
Lesson 02: Bitcoin Core Testnet
Learn the benefits of utilizing the Bitcoin Core testnet. Also, understand the difference between the public testnet and regression testing.
- Concept 01: Lesson Introduction
- Concept 02: Bitcoin Core Motivation
- Concept 03: Bitcoin Core - Overview
- Concept 04: Bitcoin Core - Networks
- Concept 05: Mainnet vs Testnet
- Concept 06: Testnet vs Regression Testing
- Concept 07: Data Warnings and Bitcoin.config Setup
- Concept 08: Bitcoin Core - Getting Started
- Concept 09: Bitcoin Core - Wallet Overview
- Concept 10: Bitcoin Core - Network Demonstration
- Concept 11: Get Testnet Coins
- Concept 12: Testnet Wallet Transactions
- Concept 13: Testnet Wallet Transactions - Bitcoin Core v0.17:
- Concept 14: Block Explorer
- Concept 15: End of Lesson Motivation
- Concept 16: Lesson Recap
-
Lesson 03: Bitcoin Debug Console
Learn the tooling available to explore the Bitcoin core public blockchain.
- Concept 01: Lesson Introduction
- Concept 02: Interview: Debug Console
- Concept 03: Terminal Overview
- Concept 04: Debug Console
- Concept 05: Blockchain Commands
- Concept 06: Hash Commands
- Concept 07: Block Commands
- Concept 08: Wallet Commands
- Concept 09: Mempool Commands
- Concept 10: Transaction Commands
- Concept 11: Signature Commands
- Concept 12: Network Commands
- Concept 13: Mining Commands
- Concept 14: Bitcoin-CLI
- Concept 15: Interview: Use Help!
- Concept 16: Lesson Recap
-
Lesson 04: Blockchain Data
Learn the relationship between the transaction lifecycle using Bitcoin core focusing on the bounders with embedding data.
- Concept 01: Lesson Overview
- Concept 02: Blockchain Data Motivation
- Concept 03: Blockchain Data Models Overview
- Concept 04: Transactions - Inputs and Outputs
- Concept 05: Transaction Data Models
- Concept 06: Bitcoin Scripts
- Concept 07: Script Opcodes
- Concept 08: Opcodes
- Concept 09: Attributes of Script
- Concept 10: Raw Transaction Review
- Concept 11: Create Raw Transaction Motivation
- Concept 12: Setup for Creating a Transaction
- Concept 13: Create a Transaction: Step 1
- Concept 14: Create a Transaction: Step 2
- Concept 15: Create a Transaction: Step 3
- Concept 16: Create a Transaction: Step 4
- Concept 17: Create a Transaction: Step 5
- Concept 18: Create a Transaction: Step 6
- Concept 19: Create a Transaction: Step 7
- Concept 20: Embedding Data in Transactions
- Concept 21: Embedding Data in Bitcoin Core
- Concept 22: Ethics of Embedding Data
- Concept 23: Lesson Summary and Project Prep Overview
-
Lesson 05: Private Blockchains
Learn how to interact between private/public Blockchains and apply the Blockchain data model to create your own private Blockchain.
- Concept 01: Lesson Introduction
- Concept 02: Public and Private Blockchains
- Concept 03: Public and Private Blockchain Interaction
- Concept 04: Build a Simple Private Blockchain
- Concept 05: Working with Your Workspace
- Concept 06: Block Data Model
- Concept 07: Create New Blocks
- Concept 08: Store Blocks
- Concept 09: Link Blocks
- Concept 10: Block Height and Timestamp
- Concept 11: LevelDB to Persist Data
- Concept 12: Practice LevelDB and Promises
- Concept 13: Lesson Recap
- Concept 14: Project Prep
-
Lesson 06: Building Your Own Private Blockchain
Building your own Private Blockchain utilizing Node.js with LevelDB.
-
Part 04 : Blockchain Web Services
Create a web service using third-party libraries that will interact with your private blockchain to submit and audit blockchain data.
-
Module 01: Web Services Part 1
-
Lesson 01: Planning a Web Service
Learn to scope and decide and the appropriate backend and/or frontend web services to use for your blockchain application.
- Concept 01: Interview: What's a Web Service?
- Concept 02: Lesson Overview
- Concept 03: What is a Web Service?
- Concept 04: Web Service with Blockchain Considerations
- Concept 05: Planning Web Services with Our Private Blockchain
- Concept 06: Web Services with Node.js
- Concept 07: Node.js Intro
- Concept 08: Node.js Setup
- Concept 09: Node.js Components
- Concept 10: Node.js Client and Server Features
- Concept 11: Practice Client-Server Features
- Concept 12: Mock Data Set
- Concept 13: Testing endpoints
- Concept 14: Lesson Summary
-
Lesson 02: Web Services with Node.js
Prepare to use RESTful frameworks for nodejs and create your first applications in 3 popular frameworks - Express.js, Sails.js, and Hapi.js.
-
Lesson 03: Utilizing Third-Party Libraries
Take a look at some common libraries associated with the frameworks we'll be using in the upcoming project and discuss the importance of handling security on a blockchain web service.
-
Lesson 04: RESTful Web API with Node.js Framework
Create a web API using a Node.js framework that will interact with your private blockchain to submit and retrieve blockchain data.
Project Description - RESTful Web API with Node.js Framework
-
-
Module 02: Web Services Part 2
-
Lesson 01: Digital Assets with Blockchain Identity
Work with digital assets programmatically using your terminal and javascript.
- Concept 01: Lesson Overview
- Concept 02: Digital Assets
- Concept 03: Encode and Decode Basics
- Concept 04: Encode and Decode from Terminal
- Concept 05: Encode and Decode with Node.js
- Concept 06: Proof of Existence
- Concept 07: Securing Assets Using Your Digital Identity
- Concept 08: Blockchain Generations
- Concept 09: Lesson Recap
-
Lesson 02: Build a Private Blockchain Notary Service
Utilizing your existing Blockchain implementation, you will create a star registry notarization service.
Project Description - Build a Private Blockchain Notary Service
-
Part 05 : Identity and Smart Contracts
-
Module 01: Identity and Smart Contract
-
Lesson 01: NEW: Introduction to Ethereum
Learn the basics of Ethereum, its tooling, developer ecosystem, and create your first decentralized application!
- Concept 01: Lesson Introduction
- Concept 02: Ethereum Basics
- Concept 03: What makes Ethereum Special?
- Concept 04: Ethereum Tools and Community
- Concept 05: Introduction to DApps
- Concept 06: Scan the Ethereum Network
- Concept 07: Deploy to the Test Network
- Concept 08: Prepare to Connect to the Network
- Concept 09: Connect to the Ethereum Network
- Concept 10: Investigate Ethereum Accounts
- Concept 11: Create a Local Blockchain
- Concept 12: Connect to Your Local Ethereum Blockchains
- Concept 13: Create Ethereum Transactions
- Concept 14: Ethereum Gas and Fees
- Concept 15: Explore Ethereum Metrics
- Concept 16: First Dapp Revisited
- Concept 17: Ethereum Secret Messenger
- Concept 18: Improved Deployment Process
- Concept 19: DApps Next Steps
- Concept 20: Optional: Full Ethereum Nodes
- Concept 21: Lesson Recap
-
Lesson 02: NEW: Introduction to Solidity and Creating a Token
Learn the basics of the Solidity language which used to write smart contracts. Then put it all together to create your very own token!
- Concept 01: Let's Write Smart Contracts
- Concept 02: Smart Contracts and Solidity Introduction
- Concept 03: Remix Online Tool
- Concept 04: Memory Management in Solidity
- Concept 05: Elementary Data Types in Solidity
- Concept 06: Type Conversion in Solidity
- Concept 07: Complex Data Types
- Concept 08: Arrays
- Concept 09: String and Bytes Types
- Concept 10: Mappings
- Concept 11: Enums
- Concept 12: Structs
- Concept 13: Solidity Global Variables and Ether Units
- Concept 14: Functions in Solidity
- Concept 15: Error Handling in Solidity
- Concept 16: Inheritance in Solidity
- Concept 17: Events in Solidity
- Concept 18: What are Tokens?
- Concept 19: ERC Token Standards
- Concept 20: ERC-20 Walk-through
- Concept 21: Creating ERC-20 using Remix
- Concept 22: Creating ERC-20 using OpenZeppelin
- Concept 23: Mini Project: Send your ERC-20 Tokens to Udacity
- Concept 24: Congratulations on Learning Solidity
-
Lesson 03: Smart Contracts and Solidity
Learn how to create a DApp by writing and deploying a smart contract that users can interact with from a webpage.
- Concept 01: Lesson Introduction
- Concept 02: Smart Contracts
- Concept 03: Solidity Introduction
- Concept 04: Identity & Smart Contracts
- Concept 05: Building a Star Notary Service
- Concept 06: Deploying Smart Contract - Ganache
- Concept 07: Deploying Smart Contract Review
- Concept 08: Interact with a Smart Contract from a Webpage
- Concept 09: Using Events from a Smart Contract
- Concept 10: Lesson Recap
-
Lesson 04: Tooling for Smart Contracts
Explore more in-depth the tools for building, compiling, and deploying a smart contract.
- Concept 01: Lesson Introduction
- Concept 02: Getting Started with MetaMask
- Concept 03: Unit tests in Javascript and Solidity with Truffle
- Concept 04: Ethereum Improvement Proposals and Standards
- Concept 05: Star Notary as ERC-721
- Concept 06: Transform Star Notary into a Non-Fungible Token
- Concept 07: Getting Started with OpenZeppelin
- Concept 08: Infura
- Concept 09: Lesson Recap
-
-
Module 02: Decentralized Star Notary
-
Lesson 01: Decentralized Star Notary Project
For your next project, you will create a DApp by adding functionality with your smart contract and deploy it on the public testnet.
- Concept 01: Project Introduction
- Concept 02: Project Details
- Concept 03: Part 1: Write a smart contract
- Concept 04: Part 2: Test smart contract code coverage
- Concept 05: Part 3: Deploy smart contract on a public test network
- Concept 06: Part 4: Modify client code to interact with smart contract
- Concept 07: Extra Support - Solidity Review
- Concept 08: Extra Support - Deploying with Truffle
- Concept 09: Optional: Configure RESTful API endpoint
-
-
Module 03: Term 1 Outro
-
Lesson 01: Term 1 Recap
Congratulations on completing the term!
-
Part 06 : Term 2 | Blockchain Developer: Architecture and Applications
Begin working with blockchain architecture, and continue your exploration of second generation services by focusing on solving a supply chain problem set. Learn to start layering blockchain services with legacy integration, to further develop your platform-agnostic blockchain skills.