精通以太坊
《精通以太坊》封面:數隻蜜蜂

Mastering Ethereum · 繁體中文

精通以太坊打造智能合約與 DApp

Andreas M. Antonopoulos、Gavin Wood 著
Dr. Awesome Doge 譯

以太坊開發者的經典技術書,全文繁體中文翻譯,免費線上閱讀。從錢包、密鑰、地址與交易談起,一路到智能合約、Solidity 與 Vyper、代幣標準、DApp、預言機、以太坊虛擬機和共識,帶你從原理理解以太坊。

17 章 · 2 篇附錄 · 約 7 小時閱讀 · CC BY-NC-ND 4.0

目錄

  1. 前言 前言 本書的寫作緣由、目標讀者與內容安排,以及封面上蜜蜂的含義:沒有中央指揮、由眾多個體協作而成的系統,正是以太坊的寫照。 約 1 分鐘
  2. 術語表 快速術語表 以太坊常用術語的快速對照與解釋,從帳戶、區塊、gas、EVM、智能合約到各種 EIP 與 ERC 標準,閱讀全書時可隨時查閱。 約 16 分鐘
  3. 第 1 章 什麼是以太坊 什麼是以太坊?與比特幣的比較、以太坊的誕生與四個開發階段、組件、圖靈完備性,以及從通用區塊鏈到去中心化應用(DApp)的演進。 約 20 分鐘
  4. 第 2 章 以太坊基礎 以太坊入門實作:以太幣單位、選擇錢包、安裝 MetaMask、切換測試網並取得測試以太幣,再撰寫、編譯、部署並呼叫第一個 faucet 智能合約。 約 28 分鐘
  5. 第 3 章 以太坊客戶端 以太坊客戶端與網路:是否要執行全節點、硬體與軟體需求、Parity 與 Geth 的安裝建置、首次同步區塊鏈、JSON-RPC 介面,以及輕量、行動與瀏覽器錢包。 約 23 分鐘
  6. 第 4 章 以太坊測試網(Testnets) 以太坊測試網:用 MetaMask、Remix、Geth 與 Parity 連上測試網,Ropsten、Rinkeby、Kovan 等測試網的歷史與共識差異,以及用 Ganache 架設本地測試鏈。 約 9 分鐘
  7. 第 5 章 密鑰、地址 以太坊的密碼學基礎:私鑰與公鑰的產生、橢圓曲線密碼學與 secp256k1、Keccak-256 雜湊函數,以及以太坊地址格式、ICAP 與 EIP-55 大小寫校驗。 約 25 分鐘
  8. 第 6 章 錢包 錢包技術:非確定性與確定性錢包、階層確定性(HD)錢包(BIP-32/BIP-44)、BIP-39 助記詞與種子的產生,以及錢包的最佳實踐。 約 20 分鐘
  9. 第 7 章 交易 (Transactions) 以太坊交易的結構:nonce、gas、接收者、value 與 data,合約建立交易、數位簽章與公鑰恢復、離線簽名、交易的傳播與上鏈,以及多重簽名交易。 約 31 分鐘
  10. 第 8 章 智能合約 智能合約與 Solidity:合約的生命週期、高階語言比較、ABI、資料型別、函數與修飾符、事件、繼承、錯誤處理、gas 最佳化,以及重入等安全考量。 約 57 分鐘
  11. 第 9 章 開發工具,框架和庫 以太坊開發工具:用 Truffle 建立、部署與遷移合約,Embark、OpenZeppelin、zeppelin_os、dapp.tools 等工具,以及 web3.js、web3.py、web3j 等函式庫。 約 22 分鐘
  12. 第 10 章 Tokens 以太坊上的代幣:可互換性、交易對手風險、效用與權益型代幣,ERC20 標準與自行發行代幣,approve 與 transferFrom 流程,以及 ERC223、ERC777、ERC721。 約 41 分鐘
  13. 第 11 章 去中心化應用 (DApps) 去中心化應用(DApp):由智能合約、前端與去中心化儲存組成的架構,Truffle、Embark 等 DApp 框架,以及 EthPM、CryptoKitties、Decentraland 等實際案例。 約 8 分鐘
  14. 第 12 章 預言機 (Oracles) 預言機(Oracle):為什麼智能合約需要外部資料、使用案例、訂閱與請求模式、資料認證、計算型與去中心化預言機,以及 Solidity 中的預言機客戶端介面。 約 20 分鐘
  15. 第 13 章 gas(Gas) gas 的運作機制:停機問題、gas 成本與 gas 價格、gas 耗盡、估算 gas、價格與交易優先順序、區塊 gas 上限由誰決定,以及 gas 退款。 約 8 分鐘
  16. 第 14 章 以太坊虛擬機 (The Ethereum Virtual Machine) 以太坊虛擬機(EVM):與其他虛擬機的比較、操作碼與狀態、Solidity 如何編譯成 bytecode、執行過程與 gas 計算、部署與執行期 bytecode,以及反組譯。 約 15 分鐘
  17. 第 15 章 共識 區塊鏈的共識:以雜湊為基礎與以風險為基礎的度量,工作量證明、權益證明、權威證明與委託權益證明,以及以太坊的 Ethash 演算法與 Polkadot 簡介。 約 14 分鐘
  18. 第 16 章 Vyper: 面向合約的程式語言 Vyper 合約程式語言:與 Solidity 的差異與設計取捨、裝飾符、線上與命令列編譯、讀寫資料、ERC20 介面實作,以及 Vyper 產生的操作碼。 約 8 分鐘
  19. 第 17 章 節點間的通信 —— 一個簡單的視角 以太坊節點之間如何通訊:傳輸協議與加密握手、安全考量、ÐΞVp2p 基本訊息與以太坊子協議,以及節點身分與聲譽。 約 5 分鐘
  20. 附錄 A 以太坊標準 以太坊標準的制定流程:以太坊改進提案(EIP)與徵求意見(ERC),以及最重要的 EIP 與 ERC 一覽表。 約 8 分鐘
  21. 附錄 B 以太坊分叉歷史 以太坊的分叉歷史:The DAO 事件與重入漏洞、DAO 硬分叉及其時間線、以太坊與以太坊經典(ETC)的技術與理念差異,以及歷次重要分叉。 約 13 分鐘

關於這個譯本

《精通以太坊》(Mastering Ethereum: Building Smart Contracts and DApps)由 Andreas M. Antonopoulos 與 Gavin Wood 撰寫,O'Reilly Media 出版,原著以 CC BY-NC-ND 4.0 授權公開。本站為其繁體中文(臺灣)譯本,同樣以 CC BY-NC-ND 4.0 釋出:可以在註明出處的前提下非商業性地轉載與分享,但不得修改後再散布。

本書寫給想打造以太坊應用的程式設計師,前幾章也適合想了解以太坊運作原理的一般讀者。若發現翻譯錯誤或技術問題,歡迎到 GitHub 回報或提交修正。