小册上新 | 区块链开发入门:从 0 到 1 构建基于以太坊智能合约的 ICO DApp
写给前端开发者的第一本区块链开发入门指南,通过从 0 到 1 实战开发一个 ICO DApp 项目(基于 V 神的 DAICO 设计思想),深入掌握区块链及以太坊技术。
为什么要选择区块链开发?
未来已来,只是尚未流行!区块链技术的爆炸式发展引起了很多人的关注,相信看到这篇文章的你早就听说过比特币、ICO,甚至购买过区块链资产。
区块链技术集密码学、分布式网络、经济学、社会学等多种学科之大成,使用共识算法(Consensus Algorithm)、公开账本(Open Ledger)解决了一个实实在在的问题:分布式环境下节点之间的信任和双花(Double Spending)问题。
区块链是个天然和钱离得很近的领域,离钱越近就越容易赚到钱,尽早开始准备并在区块链领域站稳脚跟的人将能享受到行业崛起的巨大红利,就像四年前的微信公众号,两年前的知识付费,一年前的微信小程序。
然而,从对身边同学的观察来看,前端工程师很容易产生区块链是底层技术、离前端很远的错觉。实际上任何区块链应用落地都需要以为用户创造实实在在的价值为基础,区块链应用的用户不会仅限于少数极客,有普通用户就需要界面,有界面就需要前端工程师。
区块链可以简单理解为分布式的、公开的、不可篡改的数据库,区块链应用在项目架构、前后端交互方式等方面和传统的端应用会有比较大的差别。从技术栈的视角来看,如下图,构建在分布式网络、公开账本、共识算法等三个核心要素之上的智能合约和 DApp 才是未来百花齐放的地方,底层协议会逐渐趋于稳定。
那么,作为前端工程师,我们在区块链领域的机会到底在哪里?炒币?貌似不是长久之计。如果说做成任何事情都需要依赖技能和和运气两个要素,不同的事情只是两种要素的比重不同,那么理智的人会想尽办法让事情更依赖技能,而不是运气。
为什么要选以太坊?
以太坊(Ethereum)是目前最成熟的、最被广泛使用的、支持构建和部署基于智能合约的 DApp 的区块链应用平台,根据 State of DApps 的统计,目前运行在以太坊上的应用多达 1379 个,这些 DApp 全部由两部分组成:存储在以太坊网络上的智能合约(使用 Solidity 编写,和 JS 很类似,未来 EOS 也会支持使用 Solidity 编写智能合约),以及能和智能合约交互的用 Web 技术开发的 DApp。
围绕以太坊的 DApp 开发生态是目前相对最成熟的,比如有开发框架 Truffle,有智能合约在线集成开发环境 Remix,还有专设的 StackExchange 开发者问答频道。
为什么有这本小册?
Blockchain is hard,虽然我们不愿承认,但事实摆在面前。围绕以太坊有大量的开发工具可以使用,但是它们的演化和迭代却非常快,很多工具、框架、库的教程可能过两周就过时了,或者接口不再兼容了,这成了很多新同学入门区块链开发时最大的障碍,这也是这本小册的切入点:前端工程师写给前端工程师的以太坊智能合约和 DApp 开发入门指南。
学会某个新技术的最佳路径是先掌握最小可用知识(Minimum Actionable Knowledge),然后立马动手开始做,在做的过程中不断优化和迭代自己对新技术的理解和掌握。
在这本小册里我会把最近半年摸索出来的以太坊智能合约、DApp 开发套路、最佳实践悉数分享给你,无需花费大量的时间去做诸如启动本地测试网络、编译和运行全节点之类的事情,在只依赖核心工具如 solc、Chrome 的情况下,用由浅入深的方式手把手带你熟悉 Solidity 智能合约开发、测试、部署,搭建和智能合约交互的 DApp 开发框架,为成为区块链工程师做好准备。
文不如表,表不如图,在小册中使用了大量的图片(目前完成度 35%,插图 55 幅)和类比,即使你完全没接触过区块链,也能轻松理解区块链世界里面的关键概念。
小册的内容划分为 5 大部分(目录如下图):
入门篇(上):理解区块链原理与以太坊的运行机制,熟悉以太坊开发的基本概念,如账户、交易等;
入门篇(下):Solidity 开发入门,基于 Remix 的智能合约工作流;
进阶篇:基于现代前端环境的智能合约开发、构建、部署、测试工作流;
实战篇(上):设计、开发、部署、测试 ICO 智能合约;
实战篇(下):使用 web3、next.js 开发能和智能合约交互的ICO DApp;
作者介绍
王仕军,爱折腾、爱分享的前端老司机:
掘金专栏作者:王仕军;
掘金小册作者:《使用 npm script 构建超溜的前端工作流》;
微信公众号「前端周刊」创办和维护者;
高质量技术视频教程作者:async/await、styled-components。
名人推荐
你会得到什么?
在小册中,你将学会在自己熟悉的前端开发环境中组合使用 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 小时的闲暇时间,读完这本小册,并能自己上手实践,因为纸上得来终觉浅;
诚意满满的读者福利
福利一:限时优惠,小册上新期间,掘金用户可以享受 7 折优惠(6月7日恢复原价),现在即可点击左下角“阅读原文”购买;
福利二:抽奖活动,读者群内 5 月 31 日前每天会有抽奖,奖品为有真实价值的区块链代币(抽奖使用微信小程序,发奖过程公开透明):
05月18日 ~ 05月22日,每天的奖品是价值 1 枚 EOS or 等值的 ETH ,据说握住会价值不菲;
05月23日 ~ 05月31日,每天的奖品是 1000 枚 * (2 份)Candy,李笑来操刀运作的糖果代币,拿三年试试?
福利三:专属折扣券,凡在限时优惠期间购买本小册的读者,都会获赠专属 5 折折扣券,可用于购买廖雪峰老师的《数字货币与区块链原理》小册,更系统全面的理解和掌握区块链开发必备知识;
小册上新 | 区块链开发入门:从 0 到 1 构建基于以太坊智能合约的 ICO DApp相关推荐
- 区块链开发(三)编写调试第一个以太坊智能合约
李赫 2016年9月10日 一. 智能合约IDE简介 目前以太坊上支持三种语言编写智能合约, Solidity:类似JavaScript,这是以太坊官方推荐语言,也是最流行的智能合 ...
- 区块链进阶-通过代币(Token)学以太坊智能合约-熊丽兵-专题视频课程
区块链进阶-通过代币(Token)学以太坊智能合约-244人已学习 课程介绍 本课程从什么是代币(Token)讲起,分析实现一个代币关键的点是什么. 然后逐步扩展到实现标准ERC20代 ...
- 区块链开发(一)Windows平台搭建基于以太坊的区块链开发环境
引言 Ethereum(以太坊)是一个使开发人员能够建立和发布下一代分布式应用的公共区块链平台. 通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(称为"以太虚拟机"Et ...
- 基于以太坊智能合约开发
1.学习solidity语言.官网学习网址,https://solidity-cn.readthedocs.io/zh/develop/introduction-to-smart-contracts. ...
- 区块链开发入门:基于以太坊智能合约构建 ICO DApp
写给前端开发者的第一本区块链开发入门指南,通过从 0 到 1 实战开发一个 ICO DApp 项目(基于 V 神的 DAICO 设计思想),深入掌握区块链及以太坊技术. 为什么要选择区块链开发? 未来 ...
- 区块链兼容以太坊智能合约
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 引言 随着区块链技术以及应用的普及,越来越多的区块链出现在大众视野中.由于区块链技术的开源特性,任何公司和个人都可以方便 ...
- 以太坊智能合约编程之带菜鸟入门教程
手把手带你走上智能合约编程之路 译注:原文首发于ConsenSys开发者博客,原作者为Eva以及ConsenSys的开发团队.如果您想要获取更多及时信息,可以访问ConsenSys首页点击左下角New ...
- 【区块链开发入门】(四) Truffle详解篇2
由于本篇篇幅较长,因此转为两篇文章.Truffle详解篇篇1请见:link 目录导航页 [区块链开发入门](一) 以太坊的搭建与运行 [区块链开发入门](二) 以太坊的编程接口 [区块链开发入门](三 ...
- 【区块链开发入门】(三) Solidity合约编译、部署
目录导航页 [区块链开发入门](一) 以太坊的搭建与运行 [区块链开发入门](二) 以太坊的编程接口 [区块链开发入门](三) Solidity合约编译.部署 [区块链开发入门](四) Truffle ...
- 区块链项目实战 - 使用以太坊/智能合约solidity,全栈开发区块链借贷记账小应用,含完整源码
本文使用区块链平台以太坊+智能合约实现一个区块链记账的功能,具体为: 借款人和贷款人以及数额被记录在区块链中.使用区块链地址来表示借款人或者贷款人. 若一个借款人多次向一个贷款人借钱,更新所有的数额之 ...
最新文章
- 为什么说机器学习是预防欺诈的最佳工具?
- UA MATH571B 试验设计 总结 判断试验类型的例题
- BU_DATE_CHAR abap screen 日期字段搜索帮助
- php连接mysql遇到的问题: (HY000/1130) 和 [caching_sha2_password]
- 数据库2.1.1mysql的特点
- 数据结构之顺序表(一)
- LeetCode篇:1(两数之和)
- 【免费毕设】asp.net多功能聊天软件的设计与开发(源代码+lunwen)
- java底层app_Java底层类和源码分析系列-ArrayBlockingQueue底层架构和源码分析
- 解决U盘快捷方式木马
- 页面增加问号图标,鼠标放置会提示文字信息。(记录日志)
- 关于笔记本加固态硬盘装系统的问题的解决办法
- Gtalent如何帮助HR招到薪酬专员,5条建议4点做法
- 老外码农酒后吐槽,该说的不该说的全说了!!
- 查询数据库表数据量大小
- Ubuntu 下的磁盘管理
- 中考词汇测试软件,中考英语单词必备app
- Themida是先进的Windows软件保护系统
- 三种有序表的查找算法
- 深度解析 React useRef Hook 的使用
热门文章
- 用Python绘制杨紫作品集动态二维码
- 怎么更改wifi频段_wifi信道和频段怎么设置?
- pdf打印机有什么功能
- MAVEN下载修改settings.xml
- 六大写作软件功能解说,网络作家不可错过的码字软件宝典
- 学计算机二级的免费软件,计算机二级MS模拟软件
- 深度学习实现视频分类的6种方法
- php 简繁体,php实现简体转繁体
- Android 接入阿里云推送com.aliyun.ams:alicloud-android-push:3.7.4步骤(一)
- HttpUtil工具示例(GET、POST请求)IP工具根据token获取用户信息工具