首发于前端周刊
写给前端的区块链开发入门指南:零基础开发基于以太坊智能合约的 ICO DApp

写给前端的区块链开发入门指南:零基础开发基于以太坊智能合约的 ICO DApp

张泉灵说,时代抛弃我们的时候连声再见都不会说,马云说对于新兴事物,绝大多数人是看不见、看不起、看不懂、来不及。自从学完 Coursera 上的 Crypto Currency 课程,搞懂区块链技术的本质后,对区块链的的所谓信仰变成了强有力的逻辑支撑,不管你看没看见,区块链正在吞噬整个世界!不甘平庸的工程师肯定会问,怎么在区块链技术和行业崛起的时候参与进去获取更大的成长?如果你选择参与,而不是旁观,真诚的邀请你在成为区块链应用研发工程师的路上和我同行。

前端工程师学习区块链应用开发的 WHY、HOW、WHAT 可以用下图来概括,如果你同意我的观点,还犹豫什么?赶紧动手吧!

为什么要选择区块链开发?

未来已来,只是尚未流行!区块链技术的爆炸式发展引起了很多人的注意,相信看到这篇小册的你早就听说过比特币、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;

我是谁?做过什么?

我有过什么作品?

有谁审阅过小册?他们怎么说?

你会得到什么?

在小册中,你将学会在自己熟悉的前端开发环境中组合使用 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 折折扣券,可用于购买廖雪峰老师的《数字货币与区块链原理》小册,更系统全面的理解和掌握区块链开发必备知识。

希望在成为区块链工程师的路上,你能与我同行!猛击下图享受七折限时优惠。


掘金小册

编辑于 2018-05-18 10:36