Author: ChiHaoLu
大家早安!我是 ALu,今年又來比鐵人了哈哈哈哈。跟去年相比應該進步了不少,從我看著上一屆那個系列文頭痛的程度就可以略知一二。和之前不同,去年是以 Project 為主軸初嘗 Dapp & Smart Contract 開發的滋味,今年的目標希望是寫下三十篇進階的 Smart Contract 開發系列文。
這一年我做了不少過往不敢嘗試的決定,學習很多新穎的技術,遇見一些特別的事情,還認識很多超級強大的貴人,不管是老闆們還是老師們都給予我非常多的建議與鼓勵!
今年的內容有一半應該是在外面不太可能學到的,即便是業界的轉職補習班或線上課程影片也不會提到,所以大家可以好好品嘗一下,難度雖然有點高但可以盡量吸收咧!
我本身就讀台大經濟大四,過往曾經在幾個 Team/Company 實習過,也有在 Appworks School 和 Kryptocamp 擔任過智能合約和 Dapp 開發講師(約 60 hrs),除此之外還有寫過一本 Solidity 開發書,有興趣了解我的可以在最上方點我的個人連結。主力是在 TEM 發布研究文章與在 imToken Labs 當實習生。想要看我分享過往學習的一些過程,可以看這裡!目前還有帶領 SWF Lab 的同學一起做 Side Project。
這次的內容除了程式設計的概念以外,可能還需要一點點點點點基本計算機學科的背景知識,例如計結/概、作業系統、Memory Stack/Heap、網路協議等,但我都會盡量解釋得很平易近人,大家可以不用太擔心。
系列文扣除本篇前言主要分作幾個部分,主軸分別為 Solidity 進階語法、Design Pattern、底層架構和最後的合約安全性,四個大主題,每個大主題還會依序有每天的小主題。
Class | Subject | EIP, ERC, BIP | Difficulty |
---|---|---|---|
First | Introduction | ||
Advanced Solidity | Event & Logging | ⭐ | |
Fallback & Receive | ⭐ | ||
Wrapped Token | ⭐ | ||
Oracle | ERC-677 | ⭐⭐ | |
Random Numbers & Bitwise | ⭐⭐ | ||
Function Signature & Function Selector | ⭐⭐ | ||
Exception Handling | EIP-3668 | ⭐⭐ | |
Assembly | ⭐⭐⭐⭐ | ||
Advanced Design Pattern | Cross-Contract Calls | ERC-165 | ⭐⭐⭐ |
Optimal Gas Comsumption | EIP-1559, EIP-3529 | ⭐⭐⭐⭐ | |
OpenZeppelin Upgradable Proxy | EIP-1967 | ⭐⭐⭐ | |
Create2 | EIP158, EIP-161, EIP-1014 | ⭐⭐⭐ | |
Multi Signature | ⭐⭐ | ||
Others Proxy Pattern 1 | EIP-897, EIP-1167, EIP-1822 | ⭐⭐⭐ | |
Others Proxy Pattern 2 | EIP-2535 | ⭐⭐⭐⭐ | |
Underlying Architecture | Cryptography | EIP-55, EIP-155 | ⭐⭐⭐⭐⭐ |
Sign & Transaction | EIP-712, EIP-1271 | ⭐⭐⭐⭐⭐ | |
Nonce | EIP-86, EIP-161, EIP-4672 | ⭐⭐⭐ | |
Proof-Of-Work | EIP-1057, EIP-1559 | ⭐⭐⭐ | |
Internet Protocol & JSON-RPC | EIP-1186, EIP-1559 | ⭐⭐⭐ | |
Geth & Nodes | EIP-150, EIP-155, EIP-158, EIP-225 | ⭐⭐⭐⭐ | |
Blockchain Provider | EIP-1102, EIP-1193, EIP-2255, EIP-3085 | ⭐⭐⭐ | |
Wallet Protocol | BIP32, BIP39, BIP44, EIP-712, EIP-747, EIP-1098, EIP-1417, EIP-2255, EIP-3074, ERC-4337 | ⭐⭐⭐ | |
EVM & Memory Pool | EIP-150, EIP-2718 | ⭐⭐⭐⭐ | |
Security & Extensions | Contract Vulnerability, Dev. Tool & Debug List | ⭐⭐⭐ | |
Contract Auditing | ⭐⭐⭐⭐⭐ | ||
Foundry with Ethernaut | ⭐⭐⭐⭐⭐ | ||
Blockchain Developer Roadmap | |||
Final | Conclusion & Future |
我對這次的規畫其實還蠻滿意的,每一天的主題都會是隔一天的接續。就 Underlying Architecture 這個大主題來講:例如講到 Provider 之前必須先懂什麼是 Node,講到 GETH 之前必須先懂什麼是 JSON-RPC,講到 Transaction 之前必須懂什麼是 ECDSA,講到 Signature 之前必須先懂什麼是公私鑰與地址。每一個大主題我都是這樣去分配每一天的內容,可以說是極度用心吧!
基本上這些都是我覺得很值得深入探討的主題,畢竟單從語法上來看 Solidity 並沒有太多很複雜的用法,網路上也有相當多的基礎教學資源,主要還是在跟 Blockchain 互動或者 EVM 的運作有關時,比較難讓人帶入所以會不知道這個函式呼叫下去結果(底層部位)是如何,或者是因為有跟區塊鏈互動的部分因此需要特別了解的語法。所以這次內容的廣度跟深度都會相對之前來說比較進階一點點。
不過這次幾乎每一天的內容我自己覺得都值得寫三十天...所以除了語法解釋的部分之外,很多內容單一天的篇幅都會超級長的,大家閱讀上可能會有一點吃力請大家見諒啦!
最後歡迎大家拍打餵食大學生
0x2b83c71A59b926137D3E1f37EF20394d0495d72d