零手续费以太零DAPP开发指南

什么是以太零?以太零(etherzero,简称etz)是新一代智能合约平台,是一款能够在区块链上实现智能合约、开源的底层系统。具有零交易手续费,即时交易,高并发,主节点仲裁,双层网络等特点。

在以太零网络上开发DAPP可以完全与以太坊相兼容。与以太坊相比,在以太零平台上开发DAPP最大的优势就是零手续费!!!零手续费!!!零手续费!!!重要的事情说三遍!!!

当你玩以太猫撸猫,手续费比一只猫的价格还要贵的时候;当你遇到以太坊网络堵塞,发送一次简单的交易就要耗费你上百RMB的时候;当你辛辛苦苦开发出来的游戏,因为用户付不起高昂的gas费用而慢慢流失,最终游戏衰竭死去而心痛不已的时候……

你是否会希望有一个零手续费的底层公链作为你开发的坚强支撑?现在,她就在这里,让我们开启零手续费的以太零DAPP开发之旅吧!

 

1   开发准备

以太零节点

在每个以太零全节点中,都保存有完整的区块链数据。以太零不仅将交易数据保存在链上,编译后的合约代码同样也保存在链上。以太零全节点中,提供了一个虚拟机来执行合约代码。

交易数据

以太零中每笔交易都存储在区块链上。当你部署合约时,一次部署就是一笔交易。当你为候选者投票时,一次投票又是另一笔交易。所有的这些交易都是公开的,每个人都可以看到并进行验证。这个数据永远也无法篡改。

合约代码

以太零不仅仅在链上存储交易数据,它还可以在链上存储合约代码。在数据库层面,区块链的作用就是存储交易数据。以太零DApp开发可以使用Solidity语言来编写业务逻辑/应用代码(也就是合约:Contract), 然后将合约代码编译为以字节码,并将字节码部署到区块链上。编写合约代码也可以使用其他的语言,不过Solidity是到目前为止最流行的选择。

虚拟机

以太零区块链每个节点中包含一个虚拟机来执行合约代码。

web3.js

web3.js封装了以太零节点的API协议,从而让开发者可以轻松地连接到区块链节点而不必编写繁琐的RPC协议包。所以我们可以在常用的JS框架中直接引入该库来构建去中心化应用:


网页通过(HTTP上的)远程过程调用(RPC:RemoteProcedure Call)与区块链节点进行通信。web3.js已经封装了以太零规定的全部RPC调用,因此利用它就可以与区块链进行交互。

2   使用Remix在线开发

Remix是一个开源的Solidity智能合约开发环境,提供基本的编译、部署至本地或测试网络、执行合约等功能。Solidity是以太零官方支持的开发语言,专门用于编写智能合约。http://remix.etherzero.org,Remix作为在线的开发环境,不需要安裝,可以直接在任何浏览器启动Remix

下面将介绍基于Remix的以太零Dapp开发过程,首先搭建以太零私有链,然后在以太零私有链上部署智能合约,最后介绍如何在以太零正式网络上部署智能合约。

2.1 搭建以太零私有链

安装Geth客户端

Windows操作系统用户,可以在github下载编译好的geth客户端。下载网址:https://github.com/etherzero-org/go-etherzero/releases/tag/v1.0.0

下载for.windows.geth.exe.zip,解压后就得到geth.exe客户端。

Linux和Mac操作系统用户,先安装go(要求1.7到1.9版本的)和C编译器。然后输入gitclone https://github.com/etherzero-org/go-etherzero,下载以太零工程源码,在go-etherzero目录下执行make geth,编译出可执行的geth客户端。

启动测试链

进入到geth客户端所在的目录,执行geth  --rpc --rpcvhosts "*"  --rpccorsdomain "*" --testnet   --rpcport 9646  console

Geth。启动之后会打印启动信息,然后停留在命令行输入的地方,如下图所示。


创建两个账户

personal.newAccount("******")

启动挖矿

miner.start()

如下图,当出现“Mined potential block”这样的字眼时,表明挖矿成功。


 

将账户解锁

personal.unlockAccount(eth.accounts[0], "******",0),0代表长期解锁。

查看账户余额

eth.getBalance(eth.accounts[0])

查询账号余额转换为以太零个数

web3.fromWei(eth.getBalance(eth.accounts[0]),"ether")

2.2 使用 Remix编译合约

点右上角 + 新增一个合约

名称任意只要扩展名是 “.sol”

以一个简单的锁币合约为例,编写相应的代码內容到该合约并编译。合约使用的solidity语法学习可以参考官方学习网站http://solidity.readthedocs.io/en/v0.4.24/

Remix 默认设置会自动编译,只要旁边没有弹出红色的 error 提示就代表编译成功。 

 

2.3 在以太零私有链部署合约

代码编译没有错误后,在Remix中选择Run选项卡,然后在Environment中选择Web3Provider。


在弹出的对话框中选择OK


修改本地连接端口为http://localhost:9646

 

此时,Remix就可以连接上我们在2.1节搭建的以太零私有网络,可以在Account对话框中查看到以太零私有网络各个账户的余额,是不是很神奇?让我们继续编写一个真正的以太零DAPP吧。


点击Deploy,就可以将合约部署到以太零的私有网络。稍等片刻(需要等交易被确认),部署成功后合约的使用界面就会出来。


选择一个账户,然后在Value中选则相应的以太零数目,就可以向合约充值。


在以太零私有链的客户端窗口,查询刚刚部署的合约余额

eth.getBalance("0x6a3c6d7ed624387abaa638aa36b407041fadee8b")

 

2.4 在以太零主网部署合约

当你的智能合约在以太零私有链测试通过的时候,就可以将智能合约部署到以太零主网了。在以太零主网上部署智能合约需要用到以太零开发的插件钱包—GoETZ。以Chrome为例,在网上应用商店中搜索goetz,就可以查询到该钱包插件。点击添加至CHROME。



打开GoETZ,默认连接上以太零主网,可以显示你账户中的ETZ余额。


 Remix中选择Injected Web3,会自动将GoETZ插件钱包中的地址导入进来。使用时需要将MetaMask启用关闭。



点击Deploy发送交易,就可以将合约部署到以太零主网。合约部署到以太零主网上时,请确保你GoETZ插件钱包中至少有0.01ETZ的余额。ETZ可以到数字币、C网、Coin918等平台购买。

3   参考资料

相关资源链接:

  • 以太零白皮书:https://etherzero.org/ETZ_WhitePaper_cn2.0.pdf
  • Solidity语言手册:http://solidity.readthedocs.io/en/develop/
  • 以太零官方网站:https://etherzero.org/
  • 以太零githubhttps://github.com/etherzero-org/go-etherzero

猜你喜欢

转载自blog.csdn.net/supstar/article/details/80516504
今日推荐