寫給前端的區塊鏈開發入門指南:零基礎開發基於以太坊智慧合約的 ICO DApp

王仕軍發表於2018-05-18

張泉靈說,時代拋棄我們的時候連聲再見都不會說,馬雲說對於新興事物,絕大多數人是看不見、看不起、看不懂、來不及。自從學完 Coursera 上的 Crypto Currency 課程,搞懂區塊鏈技術的本質後,對區塊鏈的的所謂信仰變成了強有力的邏輯支撐,不管你看沒看見,區塊鏈正在吞噬整個世界!不甘平庸的工程師肯定會問,怎麼在區塊鏈技術和行業崛起的時候參與進去獲取更大的成長?如果你選擇參與,而不是旁觀,真誠的邀請你在成為區塊鏈應用研發工程師的路上和我同行。

寫給前端的區塊鏈開發入門指南:零基礎開發基於以太坊智慧合約的 ICO DApp

前端工程師學習區塊鏈應用開發的 WHY、HOW、WHAT 可以用下圖來概括,如果你同意我的觀點,還猶豫什麼?趕緊動手吧!

寫給前端的區塊鏈開發入門指南:零基礎開發基於以太坊智慧合約的 ICO DApp

為什麼要選擇區塊鏈開發?

未來已來,只是尚未流行!區塊鏈技術的爆炸式發展引起了很多人的注意,相信看到這篇小冊的你早就聽說過比特幣、ICO,甚至購買過區塊鏈資產。

區塊鏈是個天然和錢離得很近的領域,離錢越近就越容易賺到錢,儘早開始準備並在區塊鏈領域站穩腳跟的人將能享受到行業崛起的巨大紅利,就像四年前的微信公眾號,兩年前的知識付費,一年前的微信小程式。

然而,從對身邊同學的觀察來看,前端工程師很容易產生區塊鏈是底層技術、離前端很遠的錯覺。實際上任何區塊鏈應用落地都需要以為使用者創造實實在在的價值為基礎,區塊鏈應用的使用者不會僅限於少數極客,有普通使用者就需要介面,有介面就需要前端工程師。

區塊鏈可以簡單理解為分散式的、公開的、不可篡改的資料庫,區塊鏈應用在專案架構、前後端互動方式等方面和傳統的端應用會有比較大的差別。從技術棧的視角來看,構建在分散式網路、公開賬本、共識演算法等三個核心要素之上的智慧合約和 DApp 才是未來百花齊放的地方,底層協議會逐漸趨於穩定。

寫給前端的區塊鏈開發入門指南:零基礎開發基於以太坊智慧合約的 ICO DApp

那麼,作為前端工程師,我們在區塊鏈領域的機會到底在哪裡?炒幣?貌似不是長久之計。如果說做成任何事情都需要依賴技能和和運氣兩個要素,不同的事情只是兩種要素的比重不同,那麼理智的人會想盡辦法讓事情更依賴技能,而不是運氣。

寫給前端的區塊鏈開發入門指南:零基礎開發基於以太坊智慧合約的 ICO DApp

為什麼要選以太坊?

以太坊(Ethereum)是目前最成熟的、最被廣泛使用的、支援構建和部署基於智慧合約的 DApp 的區塊鏈應用平臺,根據 State of DApps 的統計,目前執行在以太坊上的應用多達 1379 個,這些 DApp 全部由兩部分組成:儲存在以太坊網路上的智慧合約(使用 Solidity 編寫,和 JS 很類似,未來 EOS 也會支援使用 Solidity 編寫智慧合約),以及能和智慧合約互動的用 Web 技術開發的 DApp。

圍繞以太坊的 DApp 開發生態是目前相對最成熟的,比如有開發框架 Truffle,有智慧合約線上整合開發環境 Remix,還有專設的 StackExchange 開發者問答頻道

別跑題了!怎麼學習區塊鏈開發?

Blockchain is hard,雖然我們不願承認,但事實擺在面前。圍繞以太坊有大量的開發工具可以使用,但是它們的演化和迭代卻非常快,很多工具、框架、庫的教程可能過兩週就就過時了,或者介面不再相容了,這成了很多新同學入門區塊鏈開發時最大的障礙,在坑裡趟了半年的我寫了個比較詳細完整的教程(廣告來了,其實就是掘金小冊),姑且稱之為:前端工程師寫給前端工程師的區塊鏈開發入門指南

學會某個新技術的最佳路徑是先掌握最小可用知識(Minimum Actionable Knowledge),然後擼起袖子開始做,在做的過程中不斷優化和迭代自己對新技術的理解和掌握。

在這本小冊裡我會把最近半年摸索出來的以太坊智慧合約、DApp 開發套路、最佳實踐悉數分享給你,無需花費大量的時間去做諸如啟動本地測試網路、編譯和執行全節點之類的事情,在只依賴核心工具如 solc、Chrome 的情況下,用由淺入深的方式手把手帶你熟悉 Solidity 智慧合約開發、測試、部署,搭建和智慧合約互動的 DApp 開發框架,為成為區塊鏈工程師做好準備。

文不如表,表不如圖,在小冊中使用了大量的圖片(目前完成度 35%,插圖 55副)和類比,即使你完全沒接觸過區塊鏈,也能輕鬆理解區塊鏈世界裡面的關鍵概念。

小冊的內容劃分為 5 大部分:

  • 入門篇(上):理解區塊鏈原理與以太坊的執行機制,熟悉以太坊開發的基本概念,如賬戶、交易等;
  • 入門篇(下):Solidity 開發入門,基於 Remix 的智慧合約工作流;
  • 進階篇:基於現代前端環境的智慧合約開發、構建、部署、測試工作流;
  • 實戰篇(上):設計、開發、部署、測試 ICO 智慧合約;
  • 實戰篇(下):使用 web3、next.js 開發能和智慧合約互動的ICO DApp;

我是誰?做過什麼?

寫給前端的區塊鏈開發入門指南:零基礎開發基於以太坊智慧合約的 ICO DApp

我有過什麼作品?

有誰審閱過小冊?他們怎麼說?

寫給前端的區塊鏈開發入門指南:零基礎開發基於以太坊智慧合約的 ICO DApp

寫給前端的區塊鏈開發入門指南:零基礎開發基於以太坊智慧合約的 ICO DApp

你會得到什麼?

在小冊中,你將學會在自己熟悉的前端開發環境中組合使用 Ethereum、Solidity、JavaScript 編寫、除錯、測試、部署和管理自己的 DApp 的基本方法。具體包括:

  • 理解在以太坊上構建 DApp 需要掌握的關鍵概念,比如 Gas、Transaction;
  • 熟悉以太坊不同測試網路,以及測試網路提供工具的使用方法;
  • 熟悉 Solidity 語言,並用其開發真實的智慧合約;
  • 熟悉以太坊智慧合約除錯工具 Remix 的基本用法;
  • 掌握設計、開發、測試、部署智慧合約的工作流和最佳實踐;
  • 熟悉以太坊智慧合約工具庫 web3 最新版的基本使用方法;
  • 熟悉 web3 和 next.js 結合使用的方方面面;
  • 構建並掌握完整的、能被重用的智慧合約、DApp 應用架構和構建工具鏈條;

適合什麼群體?

  • 具備基本的 JavaScript 知識,最好是寫過 Web 應用,熟悉 npm 使用的同學;
  • 對區塊鏈、以太坊、智慧合約技術感興趣,想做深入瞭解的前端同學;
  • 期望使用區塊鏈技術開發能實際落地的應用的前端同學;
  • 期望儲備區塊鏈開發技能,為跨界區塊鏈做好準備的前端同學;
  • 期望從事區塊鏈行業的計算機相關專業學生;
  • 想抓取區塊鏈行業紅利,靠技能賺更多錢的同學;

你要準備什麼?

  • Chrome 瀏覽器,部分開發和除錯功能是在瀏覽器中進行的;
  • Node.js 執行環境,最好是 v8.x 以上版本,建議使用 nvm 來安裝;
  • 可以用來輸入和執行命令的終端程式,比如 Mac 下的 iTerm,或者 Windows 下的 cmder;
  • 你自己用起來舒服的編輯器,比如 VSCode,我寫過兩篇 VSCode 編輯器配置的文章,參見
  • 2 小時的閒暇時間,讀完這本小冊,並能自己上手實踐,因為紙上得來終覺淺;

讀者福利

  • 免費加入讀者交流群,和群友討論和交流讀書心得和疑惑問題,我相信,這本小冊能讓很多和你我志同道合的同學聚在一起;
  • 讀者群內 5月31日 前每天會有抽獎活動,獎品為有真實價值的區塊鏈代幣(抽獎使用微信小程式,發獎過程公開透明):
    • 05 月 18 日 ~ 05 月 22 日,每天的獎品是價值 1 枚 EOS or 等值的 ETH ,據說握住會價值不菲;
    • 05 月 23 日 ~ 05 月 31 日,每天的獎品是 1000 枚 * (2 份)Candy,李笑來操刀運作的糖果代幣,拿三年試試?
  • 凡在限時優惠期間購買本小冊的讀者,都會獲贈專屬 5 折折扣券,可用於購買廖雪峰老師的《數字貨幣與區塊鏈原理》小冊,更系統全面的理解和掌握區塊鏈開發必備知識。

希望在成為區塊鏈工程師的路上,你能與我同行!猛擊下圖享受七折限時優惠。

寫給前端的區塊鏈開發入門指南:零基礎開發基於以太坊智慧合約的 ICO DApp

或者直接點選這個連結:juejin.im/book/5addb2…

相關文章