以太坊DApp开发入门教程

本课程面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个 基于以太坊的完整去中心化应用 —— 区块链投票系统。

通过本课程的学习,你将掌握:

以太坊区块链的基本知识

开发和部署以太坊合约所需的软件环境

使用高级语言(solidity)编写以太坊合约

使用NodeJS编译、部署合约并与之交互

使用Truffle框架开发分布式应用

使用控制台或网页与合约进行交互

前序知识要求

为了顺利完成本课程,最好对以下技术已经有一些基本了解:

一种面向对象的开发语言,例如:Python,Ruby,Java...

前端开发语言:HTML/CSS/JavaScript

Linxu命令行的使用

数据库的基本概念

课程的所有代码均已在Ubuntu(Trusty、Xenial)和 macOS 上测试过。

在本课程中,我们将会构建一个去中心化的()投票应用。利用这个投票应用, 用户可以在不可信()的分布环境中对特定候选人投票,每次投票都会被记录在区块 链上:

所谓去中心化应用(:Dcentralized Application),就是一个不存在中心服务器 的应用。在网络中成百上千的电脑上,都可以运行该应用的副本,这使得它几乎不可能 出现宕机的情况。

基于区块链的投票是完全去中心化的,因此无须任何中心化机构的存在

课程摘录——使用Node.js开发Dapp之投票合约设计

了解如何运行节点仿真器ganache之后,可以开始设计我们的第一个合约了。

我们使用语言来编写合约。如果你熟悉面向对象的开发和,那么学习 应该非常简单。可以将合约类比于的类:合约中的属性用来声明合约的状态,而合约中的方法则提 供修改状态的访问接口。下图给出了投票合约的主要接口:

基本上,投票合约包含以下内容:

构造函数,用来初始化候选人名单。

投票方法,每次执行就将指定的候选人得票数加 1

得票查询方法,执行后将返回指定候选人的得票数

有两点需要特别指出:

合约状态是持久化到区块链上的,因此对合约状态的修改需要消耗以太币。

只有在合约部署到区块链的时候,才会调用构造函数,并且只调用一次。

与 web 世界里每次部署代码都会覆盖旧代码不同,在区块链上部署的合约是不可改变的,也就是说,如果你更新 合约并再次部署,旧的合约仍然会在区块链上存在,并且合约的状态数据也依然存在。新的部署将会创建合约的一 个新的实例。

语言的详细介绍可以在博客找到。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20190101G0HI8N00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券