区块链开发入门:基于以太坊智能合约构建 ICO DApp
写给前端开发者的第一本区块链开发入门指南,通过从 0 到 1 实战开发一个 ICO DApp 项目(基于 V 神的 DAICO 设计思想),深入掌握区块链及以太坊技术。
为什么要选择区块链开发?
未来已来,只是尚未流行!区块链技术的爆炸式发展引起了很多人的注意,相信看到本文的你早就听说过比特币、ICO,甚至购买过区块链资产。
区块链技术集密码学、分布式网络、经济学、社会学等多种学科之大成,使用共识算法(Consensus Algorithm)、公开账本(Open Ledger)解决了一个实实在在的问题:分布式环境下节点之间的信任和双花(Double Spending)问题。
区块链是个天然和钱离得很近的领域,离钱越近就越容易赚到钱,尽早开始准备并在区块链领域站稳脚跟的人将能享受到行业崛起的巨大红利,就像四年前的微信公众号,两年前的知识付费,一年前的微信小程序。
然而,从对身边同学的观察来看,前端工程师很容易产生区块链是底层技术、离前端很远的错觉。实际上任何区块链应用落地都需要以为用户创造实实在在的价值为基础,区块链应用的用户不会仅限于少数极客,有普通用户就需要界面,有界面就需要前端工程师。
那么,作为前端工程师,我们在区块链领域的机会到底在哪里?炒币?貌似不是长久之计。如果说做成任何事情都需要依赖技能和和运气两个要素,不同的事情只是两种要素的比重不同,那么理智的人会想尽办法让事情更依赖技能,而不是运气。
随着技术的发展,区块链开发不再局限于底层的 C++/Go 开发,在成熟的应用平台上构建 DApp(Decentralized Application,去中心化的应用)要求工程师对区块链底层技术有正确理解即可,大量的开发工作集中在业务逻辑和用户界面上,随着底层技术的成熟,对 DApp 应用研发工程师的需求也会出现井喷式的增长,而前端工程师在这方面有着天然的优势。
为什么有这本小册?
虽然有大量的以太坊开发工具可以使用,但是它们的演化和迭代却非常快,很多工具、框架、库的教程可能过两周就就过时了,或者接口不再兼容了,这成了很多新同学入门区块链开发时最大的障碍,这也是这本小册的切入点:前端工程师写给前端工程师的以太坊智能合约和DApp 开发入门指南。
学会某个新技术的最佳路径是先掌握最小可用知识(Minimum Actionable Knowledge),然后立马动手开始做,在做的过程中不断优化和迭代自己对新技术的理解和掌握。
在这本小册里我会把最近半年摸索出来的以太坊智能合约、DApp 开发套路、最佳实践悉数分享给你,无需花费大量的时间去做诸如启动本地测试网络、编译和运行全节点之类的事情,在只依赖核心工具如 solc、Chrome 的情况下,用由浅入深的方式手把手带你熟悉 Solidity 智能合约开发、测试、部署,搭建和智能合约交互的 DApp 开发框架,为成为区块链工程师做好准备。
文不如表,表不如图,在小册中使用了大量的图片(目前完成度 35%,插图 55副)和类比,即使你完全没接触过区块链,也能轻松理解区块链世界里面的关键概念。
小册的内容划分为 5 大部分:
入门篇(上):理解区块链原理与以太坊的运行机制,熟悉以太坊开发的基本概念,如账户、交易等;
入门篇(下):Solidity 开发入门,基于 Remix 的智能合约工作流;
进阶篇:基于现代前端环境的智能合约开发、构建、部署、测试工作流;
实战篇(上):设计、开发、部署、测试 ICO 智能合约;
实战篇(下):使用 web3、next.js 开发能和智能合约交互的ICO DApp;
作者介绍
王仕军,爱折腾、爱分享的前端老司机:
6 年以上前端开发经验,4 年大型互联网公司工作经验;
前端周刊主笔,掘金专栏作者:王仕军;
掘金小册作者:《使用 npm script 构建超溜的前端工作流》;
熟知(是的,到现在我还不敢说精通) Javascript、Node.js;
入坑区块链 1 年,接触区块链开发半年,对区块链技术有广泛涉猎;
对开发效率和软件质量有极致追求。
目标是 Be a Power User of Everything。
你会得到什么?
在小册中,你将学会在自己熟悉的前端开发环境中组合使用 Ethereum、Solidity、JavaScript 编写、调试、测试、部署和管理自己的 DApp 的基本方法。具体包括:
理解在以太坊上构建 DApp 需要掌握的关键概念,比如 Gas、Transaction;
熟悉以太坊不同测试网络,以及测试网络提供工具的使用方法;
熟悉 Solidity 语言,并用其开发真实的智能合约;
熟悉以太坊智能合约调试工具 Remix 的基本用法;
掌握设计、开发、测试、部署智能合约的工作流和最佳实践;
熟悉以太坊智能合约工具库 web3 最新版的基本使用方法;
熟悉 web3 和 next.js 结合使用的方方面面;
构建并掌握完整的、能被重用的智能合约、DApp 应用架构和构建工具链条;
适合什么群体?
具备基本的 JavaScript 知识,最好是写过 Web 应用,熟悉 npm 使用的同学;
对区块链、以太坊、智能合约技术感兴趣,想做深入了解的前端同学;
期望使用区块链技术开发能实际落地的应用的前端同学;
期望储备区块链开发技能,为跨界区块链做好准备的前端同学;
期望从事区块链行业的计算机相关专业学生;
想抓取区块链行业红利,靠技能赚更多钱的同学;
最后如果你有兴趣,可以通过长按下方的二维码,以及复制好程序员的那些事专属优惠码(code)享受5折优惠购买。
区块链开发入门:基于以太坊智能合约构建 ICO DApp相关推荐
- 区块链项目实战 - 使用以太坊/智能合约solidity,全栈开发区块链借贷记账小应用,含完整源码
本文使用区块链平台以太坊+智能合约实现一个区块链记账的功能,具体为: 借款人和贷款人以及数额被记录在区块链中.使用区块链地址来表示借款人或者贷款人. 若一个借款人多次向一个贷款人借钱,更新所有的数额之 ...
- 视频教程-区块链项目:基于以太坊开发拍卖系统DApp教程(含资料)-区块链
区块链项目:基于以太坊开发拍卖系统DApp教程(含资料) 张长志技术全才.擅长领域:区块链.大数据.Java等.10余年软件研发及企业培训经验,曾为多家大型企业提供企业内训如中石化,中国联通,中国移动 ...
- 区块链开发之搭建以太坊私有链
(一)区块链开发之搭建以太坊私有链 本文链接:https://blog.csdn.net/rwdxll/article/details/82929417 1.安装ethereum/Go client( ...
- 基于以太坊智能合约开发
1.学习solidity语言.官网学习网址,https://solidity-cn.readthedocs.io/zh/develop/introduction-to-smart-contracts. ...
- 以太坊智能合约开发-《精通以太坊智能合约开发》学习总结实践
文章目录 一.初探以太访智能合约 1. remix小demo 2. 写智能合约用的编程语言 二.以太坊核心概念 1. 交易/事务( Transaction ) 2. 区块 3. 共识协议:工作量证明( ...
- 区块链开发教程 # 2 以太坊公链
科普向介绍请参考 tutorial.技术开发教程请参考本文.本系列文章更偏向技术入门.参考网上资料根据个人理解整理而成.本文主要参考廖雪峰博客. 前一篇文章地址:区块链开发教程 # 1 比特币公链 本 ...
- 以太坊智能合约编程之带菜鸟入门教程
手把手带你走上智能合约编程之路 译注:原文首发于ConsenSys开发者博客,原作者为Eva以及ConsenSys的开发团队.如果您想要获取更多及时信息,可以访问ConsenSys首页点击左下角New ...
- 链乔教育在线|智能合约学习——以太坊智能合约学习笔记(四)
链乔教育在线|智能合约学习--以太坊智能合约学习笔记(四) 本笔记记录的是使用matemask钱包连接以太坊私链,并编写一个基本的提币智能合约部署到以太坊私链上,进行调用. 一.浏览器安装metama ...
- 教程 | 以太坊智能合约编程之菜鸟教程
教程 | 以太坊智能合约编程之菜鸟教程 译注:原文首发于ConsenSys开发者博客,原作者为Eva以及ConsenSys的开发团队.如果您想要获取更多及时信息,可以访问ConsenSys首页点击左下 ...
最新文章
- MPB:林科院袁志林组-​杨树根系-真菌互作体系构建方法
- C++_static,类模板、函数模板、namespace
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十七:TFT模块 - 显示
- [转]MongoDB基本使用
- day36 10-Hibernate中的事务:解决丢失更新
- 数据结构与算法 | 插值查找
- 图片相框展示的设计与实现
- 52 - 算法 - LeetCode 28 - 实现 strStr() -kmp
- 模拟生产者-消费者问题和读者-写者问题
- paip.C#.NET图形按钮制做
- cuda_error_launch_failed: unspecified launch failure
- 毕业论文页码与目录自动生成
- 被裁员后:三个月含泪啃完了1111道面试解析,再入职腾讯年薪45万
- 抛错java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit
- [渗透工具] - IP资产POC扫描、指纹扫描、端口爆破扫描系统
- matlab 求其骨架,数字图像处理图像的骨架生成和提取(Matlab)三种方法
- ad7714 c语言程序,基于AD7714的高精度数字化称重传感器设计.pdf
- 搭建机器人电控系统——如何从零开发主控?——文件下载、工程配置、烧录
- SQL Server 索引
- ICLR 2023 | 清华大学龙明盛组提出通用时间序列神经网络骨干—TimesNet
热门文章
- 高防服务器的作用有哪些,高防服务器的作用和用途
- MATLAB用SOR方法解方程组,SOR迭代法 求MATLAB程序
- 车辆纵向加速度传感器
- @Validated与@Valid校验
- 一个html页面上显示dopost,java-无法使HTMLUnit跟随页面上使用__doPostBack...
- c51c语言编程的音乐程序,51单片机唱歌C51音乐程序.doc
- 机器翻译:使用小牛翻译API进行中英文翻译实战
- iview table实现通过render实现点击跳转到相应的网址
- 嵌入式Linux系统中U盘挂载
- 考研失败,论文没写,工作毫无头绪:2020这届毕业生有多惨?!