⌨️ (00:00:00) Lesson 0: Welcome To Blockchain
- Follow the repository: While going through the course be 100% certain to follow along with the github repository. If you run into in an issue check the chronological-updates in the repo.
- Be Active in the community: Ask questions and engage with other developers going through the course in the discussions tab, be sure to go and say hello or gm! This space is different from the other industries, you don't have to be secretive; communicate, network and learn with others :)
- Learn at your own pace: It doesn't matter if it takes you a day, a week, a month or even a year. Progress >>> Perfection
- Take Breaks: You will exhaust your mind and recall less if you go all out and watch the entire course in one sitting. Suggested Strategy every 25 minutes take a 5 min break, and every 2 hours take a longer 30 min break
- Refer to Documentation: Things are constantly being updated, so whenever Patrick opens up some documentation, open it your end and maybe even have the code sample next to you.
⌨️ (00:09:05) Lesson 1: Blockchain Basics
- Bitcoin Whitepaper
- Ethereum Whitepaper
- What is a Smart Contract?
- Nick Szabo
- Hybrid Smart Contracts
- Blockchain Oracles
- Terminology
- Web3
- What is a blockchain
- 🎥 Original Video
- 🦬 My ETH Denver Talk
- 🍔 McDonalds Scandal
- ⛓ More on the evolution of agreements
- ✍️ What is a Smart Contract?
- 🧱 How does a blockchain work?
- 🔮 Chainlink & Oracles
- Decentralized
- Transparency & Flexibility
- Speed & Efficiency
- Security & Immutability
- Counterparty Risk Removal
- Trust Minimized Agreements
- Metamask Download Link
- Etherscan
- Goerli Etherscan
- Goerli Faucet (Check the link token contracts page)
- NOTE: The Chainlink documentation always has the most up to date faucets on their link token contracts page. If the faucet above is broken, check the chainlink documentation for the most up to date faucet.
- OR, use the Goerli ETH Faucet, just be sure to swap your metamask to goerli!
- Block Rewards
- Advanced Gas
- EIP 1559
- GWEI, WEI, and ETH
Lesson 2: Welcome to Remix! Simple Storage
⌨️ (02:01:16) Lesson 2: Welcome to Remix! Simple Storage
💻 Code: https://github.com/PatrickAlphaC/simple-storage-fcc
- Versioning
- Take notes in your code!
- What is a software license
- SPDX License
- Compiling
- Contract Declaration
- Types & Declaring Variables
uint256
,int256
,bool
,string
,address
,bytes32
- Solidity Types
- Bits and Bytes
- Default Initializations
- Comments
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;
contract SimpleStorage {
// boolean, uint, int, address, bytes
bool hasFavoriateNumber = false;
uint favoriateNumberUint = 123;
string favoriateNumberInText = "Five";
address myAdress = 0xF6CF8e675fF7e8e1C7599209771ccE9CD28427cD;
bytes32 favoriateBytes = "cat";
// This gets initialized to zero!
// public visible externally and internally
uint256 public favoriateNumber;
}
- Functions
- Deploying a Contract
- Smart Contracts have addresses just like our wallets
- Calling a public state-changing Function
- Visibility
- Gas III | An example
- Scope
- View & Pure Functions
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;
contract SimpleStorage {
uint256 public favoriateNumber;
// function
function store(uint256 _favoriteNumber) public {
favoriateNumber = _favoriteNumber;
}
function retriveve() public view returns(uint256) {
return favoriateNumber;
}
function add() public pure returns(uint256) {
return (1 + 1);
}
}
- Structs
- Intro to Storage
- Arrays
- Dynamic & Fixed Sized
push
array function
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;
contract SimpleStorage {
uint256 favoriateNumber;
People public person = People(
{
name: "cuzz",
favoriateNumber: 1
}
);
People[] public people;
struct People {
string name;
uint256 favoriateNumber;
}
function addPerson(string memory _name, uint256 _favoriateNumber) public {
people.push(People(_name,_favoriateNumber));
}
}
- Yellow: Warnings are Ok
- Red: Errors are not Ok
- 6 Places you can store and access data
- calldata
- memory
- storage
- code
- logs
- stack
- A testnet or mainnet
- Connecting Metamask
- Find a faucet here
- See the faucets at the top of this readme!
- Interacting with Deployed Contracts
- The EVM
- MetaMask 在线钱包
- EtherScan 查看以太坊地址交易活动
- Rinkeby 以太坊的测试网络
- Rinkeby EtherScan 查看 Rinkeby 交易活动
- Chain Link 获取领水
- Blockchain Demo Block 区块链生成演示
- Blockchain Demo Keys 秘钥
- Remix 智能合约编辑器
- Solidity Documentation Solidity 文档