什么是以太零?以太零(etherzero,简称ETZ)是新一代智能合约平台,是一款能够在区块链上实现智能合约、开源的底层系统。具有零交易手续费,即时交易,高并发,创新的MPOS共识机制等特点。在以太零网络上开发DAPP可以完全与以太坊相兼容。与以太坊相比,在以太零平台上开发DAPP最大的优势就是零手续费!
由于以太零具有零手续费、即时交易等众多优点,使其成为最适合DAPP开发的公有链。
以太零节点
在每个以太零全节点中,都保存有完整的区块链数据。以太零不仅将交易数据保存在链上,编译后的合约代码同样也保存在链上。以太零全节点中,提供了一个虚拟机来执行合约代码。
交易数据
以太零中每笔交易都存储在区块链上。当你部署合约时,一次部署就是一笔交易。当你为候选者投票时,一次投票又是另一笔交易。所有的这些交易都是公开的,每个人都可以看到并进行验证。这个数据永远也无法篡改。
合约代码
以太零不仅仅在链上存储交易数据,它还可以在链上存储合约代码。在数据库层面,区块链的作用就是存储交易数据。以太零DApp开发可以使用Solidity语言来编写业务逻辑/应用代码(也就是合约:Contract), 然后将合约代码编译为以字节码,并将字节码部署到区块链上。编写合约代码也可以使用其他的语言,不过Solidity是到目前为止最流行的选择。
虚拟机
以太零区块链每个节点中包含一个虚拟机来执行合约代码。
web3.js
web3.js封装了以太零节点的API协议,从而让开发者可以轻松地连接到区块链节点而不必编写繁琐的RPC协议包。所以我们可以在常用的JS框架中直接引入该库来构建去中心化应用:网页通过(HTTP上的)远程过程调用(RPC:Remote Procedure Call)与区块链节点进行通信。web3.js已经封装了以太零规定的全部RPC调用,因此利用它就可以与区块链进行交互。
GoETZ插件钱包
在以太零主网上部署智能合约需要用到以太零开发的插件钱包—GoETZ。以Chrome浏览器为例,在网上应用商店中搜索GoETZ,就可以查询到该钱包插件。点击添加至CHROME。
对于以太零的能量系统,清参考上一篇文章中所描述以太零能量系统详解。
Remix是一个开源的Solidity智能合约开发环境,提供基本的编译、部署至本地或测试网络、执行合约等功能。Solidity是以太零官方支持的开发语言,专门用于编写智能合约。http://remix. etherzero.org ,Remix作为在线的开发环境,不需要安裝,可以直接在任何浏览器启动Remix。网站第一次打开加载能容较多,需要耐心等待一段时间,之后打开会很快。
下面将介绍基于Remix的以太零Dapp的开发过程,描述如何在以太零正式网络上部署测试智能合约。
点右上角 + 新增一个合约
名称任意只要扩展名是 “.sol”。
以一个简单的锁币合约为例,编写相应的代码內容到该合约并编译。合约使用的solidity语法学习可以参考官方学习网站http://solidity.readthedocs.io/en/v0.4.24/。
Remix默认设置会自动编译,只要旁边没有弹出红色的 error 提示就代表编译成功。
打开GoETZ,默认连接上以太零主网,可以显示你账户中的ETZ余额。
代码编译没有错误,在Remix中选择Injected Web3,会自动将GoETZ插件钱包中的地址导入进来。
点击Deploy发送交易,就可以将合约部署到以太零网络。稍等片刻,部署成功后合约的使用界面就会出来,这样你就完成了一个以太零平台智能合约的部署,是不是很简单。
如果点击Deploy发送交易后,remix报如下错误,则表示该交易的Power值不够,这种情况下,可以将发送交易的GasPrice调低,比如调整为1或者2,再进行尝试。
在网络拥堵的情况下,较低的GasPrice可能需要等待较长的时间,这时候也可以通过增加账户以太零余额的方式来满足要求。
由于以太零是完全免手续费的,调试合约发送交易完全没有任何损失,不像以太坊开发那样还要有较多的花费。所以建议开发者直接在以太零主网上进行测试开发,不需要本地搭建私有网络,这样可以节省代码迁移测试的时间,极大的提高开发效率。
ETZ可以到数字币、C网、Coin918等平台购买。您也可以联系我们(QQ 20643011),我们将会无偿赠送您部分ETZ,以资助您进行智能合约的开发。
相关资源链接:
以太零白皮书:http://etherzero.org/ETZ_WhitePaper_cn2.0.pdf
Solidity语言手册:http://solidity.readthedocs.io/en/develop/
以太零官方网站:https://etherzero.org/
以太零github:https://github.com/etherzero-org/go-etherzero