iT邦幫忙

2022 iThome 鐵人賽

DAY 1
3

Introduction

Author: ChiHaoLu

Synchronization Link Tree


Subject

大家早安!我是 ALu,今年又來比鐵人了哈哈哈哈。跟去年相比應該進步了不少,從我看著上一屆那個系列文頭痛的程度就可以略知一二。和之前不同,去年是以 Project 為主軸初嘗 Dapp & Smart Contract 開發的滋味,今年的目標希望是寫下三十篇進階的 Smart Contract 開發系列文。

這一年我做了不少過往不敢嘗試的決定,學習很多新穎的技術,遇見一些特別的事情,還認識很多超級強大的貴人,不管是老闆們還是老師們都給予我非常多的建議與鼓勵!

今年的內容有一半應該是在外面不太可能學到的,即便是業界的轉職補習班或線上課程影片也不會提到,所以大家可以好好品嘗一下,難度雖然有點高但可以盡量吸收咧!

Introduction

我本身就讀台大經濟大四,過往曾經在幾個 Team/Company 實習過,也有在 Appworks School 和 Kryptocamp 擔任過智能合約和 Dapp 開發講師(約 60 hrs),除此之外還有寫過一本 Solidity 開發書,有興趣了解我的可以在最上方點我的個人連結。主力是在 TEM 發布研究文章與在 imToken Labs 當實習生。想要看我分享過往學習的一些過程,可以看這裡!目前還有帶領 SWF Lab 的同學一起做 Side Project。

Background

  • 熟悉基本的 Solidity 語法
  • 熟悉任一基本與區塊鏈互動的方法
    • (e.g. Geth, Dapp / 腳本語言, Smart Contract...)
  • 熟悉一個以上的 OOP 程式語言

這次的內容除了程式設計的概念以外,可能還需要一點點點點點基本計算機學科的背景知識,例如計結/概、作業系統、Memory Stack/Heap、網路協議等,但我都會盡量解釋得很平易近人,大家可以不用太擔心。


Table of Contents

Schedule

系列文扣除本篇前言主要分作幾個部分,主軸分別為 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 之前必須先懂什麼是公私鑰與地址。每一個大主題我都是這樣去分配每一天的內容,可以說是極度用心吧!

  1. 進階 Solidty 語法
  2. 進階合約 Patterns、合約最佳化、易混淆專有名詞與用法
  3. 網路協議、密碼學、分散式系統、以太坊 Protocol、作業系統
  4. 靜態分析工具、框架與開發環境、審計、測試與漏洞

Closing

基本上這些都是我覺得很值得深入探討的主題,畢竟單從語法上來看 Solidity 並沒有太多很複雜的用法,網路上也有相當多的基礎教學資源,主要還是在跟 Blockchain 互動或者 EVM 的運作有關時,比較難讓人帶入所以會不知道這個函式呼叫下去結果(底層部位)是如何,或者是因為有跟區塊鏈互動的部分因此需要特別了解的語法。所以這次內容的廣度跟深度都會相對之前來說比較進階一點點。

不過這次幾乎每一天的內容我自己覺得都值得寫三十天...所以除了語法解釋的部分之外,很多內容單一天的篇幅都會超級長的,大家閱讀上可能會有一點吃力請大家見諒啦!


最後歡迎大家拍打餵食大學生0x2b83c71A59b926137D3E1f37EF20394d0495d72d


下一篇
Day 2 - Event & Logging Breakdown
系列文
Smart Contract Development Breakdown30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言