本课程面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个 基于以太坊的完整去中心化应用 —— 区块链投票系统。
通过本课程的学习,你将掌握:
以太坊区块链的基本知识
开发和部署以太坊合约所需的软件环境
使用高级语言(solidity)编写以太坊合约
使用NodeJS编译、部署合约并与之交互
使用Truffle框架开发分布式应用
使用控制台或网页与合约进行交互
前序知识要求
为了顺利完成本课程,最好对以下技术已经有一些基本了解:
一种面向对象的开发语言,例如:Python,Ruby,Java...
前端开发语言:HTML/CSS/JavaScript
Linxu命令行的使用
数据库的基本概念
课程的所有代码均已在Ubuntu(Trusty、Xenial)和 macOS 上测试过。
在本课程中,我们将会构建一个去中心化的()投票应用。利用这个投票应用, 用户可以在不可信()的分布环境中对特定候选人投票,每次投票都会被记录在区块 链上:
所谓去中心化应用(:Dcentralized Application),就是一个不存在中心服务器 的应用。在网络中成百上千的电脑上,都可以运行该应用的副本,这使得它几乎不可能 出现宕机的情况。
基于区块链的投票是完全去中心化的,因此无须任何中心化机构的存在
课程摘录——使用Node.js开发Dapp之投票合约设计
了解如何运行节点仿真器ganache之后,可以开始设计我们的第一个合约了。
我们使用语言来编写合约。如果你熟悉面向对象的开发和,那么学习 应该非常简单。可以将合约类比于的类:合约中的属性用来声明合约的状态,而合约中的方法则提 供修改状态的访问接口。下图给出了投票合约的主要接口:
基本上,投票合约包含以下内容:
构造函数,用来初始化候选人名单。
投票方法,每次执行就将指定的候选人得票数加 1
得票查询方法,执行后将返回指定候选人的得票数
有两点需要特别指出:
合约状态是持久化到区块链上的,因此对合约状态的修改需要消耗以太币。
只有在合约部署到区块链的时候,才会调用构造函数,并且只调用一次。
与 web 世界里每次部署代码都会覆盖旧代码不同,在区块链上部署的合约是不可改变的,也就是说,如果你更新 合约并再次部署,旧的合约仍然会在区块链上存在,并且合约的状态数据也依然存在。新的部署将会创建合约的一 个新的实例。
语言的详细介绍可以在这里 找到。
汇智网内容已经覆盖以下编程技术,发送相应的文字会收获相关课程信息:
Node.js、MongoDB、JavaScript、C、C#、PHP、Python、Angularjs、Ionic、React、UML、redis、mySQL、Nginx、CSS、HTML、Bootstrap、Flask、Gulp、Mocha、Git、Meteor、Canvas、zebra、Typescript、Material Design Lite、ECMAScript、Elasticsearch、Mongoose、jQuery、d3.js、django、cheerio、SVG、phoneGap、jQueryMobile、Saas、YAML、Vue.js、webpack、Firebird,jQuery Easy UI,ruby,asp.net,c++,Express......
领取专属 10元无门槛券
私享最新 技术干货