1、最适合DAPP开发的公有链
以太零(etherzero,简称ETZ)是新一代智能合约平台,是一款能够在区块链上实现智能合约、开源的底层公链系统。具有零交易手续费,即时交易,高TPS,创新的MPOS共识机制等特点。由于以太零具有零手续费、即时交易等众多优点,使其成为最适合DAPP开发的公有链。DAPP包含智能合约和前端设计,这里我们主要讲解在以太零平台上开发部署一个智能合约。
2. 安装GoETZ插件钱包
在以太零主网上开发智能合约需要用到网页插件钱包—GoETZ。以Chrome浏览器为例,在网上应用商店中搜索GoETZ,就可以查询到该钱包插件,点击添加至CHROME。
无法登陆谷歌商店的用户,请从下面github网址下载最新版本的GoETZ,进行解压。然后打开浏览器的开发者模式,点击加载已解压的扩展程序,将GoETZ添加到浏览器的扩展程序中。
https://github.com/etherzero-org/GoETZ/releases/download/GoETZ_v1.1.8/GoETZ-chrome-1.1.8.zip
3. Remix在线开发
以太零Remix是一个开源的Solidity智能合约开发环境,提供在线编译、部署、执行合约等功能。网址http://remix.etherzero.org。网站第一次打开加载的内容比较多,需要耐心等待一段时间,之后打开会很快。
下面将介绍基于Remix的以太零智能合约的开发,在正式主网上部署测试智能合约。
3.1 使用 Remix编译合约
以一个发币的智能合约为例,点右上角 + 新增一个合约
创建一个智能合约文件,名称“mytoken.sol”。将如下合约源码拷贝到浏览器的编辑区。
pragma solidity ^0.4.24;
interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; }
contract Token {
// Public variables of the token
string public name;
string public symbol;
uint8 public decimals=18;// 18 decimals
uint256 public totalSupply;
mapping (address => uint256) public balanceOf;
/*Initializes contract */
function Token(
uint256 initialSupply,
string tokenName,
string tokenSymbol
) public {
totalSupply = initialSupply * 10 ** uint256(decimals);
balanceOf[msg.sender] = totalSupply;
name = tokenName;
symbol = tokenSymbol;
}
// Internal transfer, only can be called by this contract
function _transfer(address _from, address _to, uint _value) internal {
require(balanceOf[_from] >= _value);
require(balanceOf[_to] + _value > balanceOf[_to]);
uint previousBalances = balanceOf[_from] + balanceOf[_to];
balanceOf[_from] -= _value;
balanceOf[_to] += _value;
assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
}
/* Transfer tokens*/
function transfer(address _to, uint256 _value) public {
_transfer(msg.sender, _to, _value);
}
}
点击Compile中的Start to compile,可以对智能合约代码进行编译,旁边的编译栏没有弹出红色的 error 提示,代表编译成功。
3.2 智能合约部署
打开GoETZ,默认连接上以太零主网,可以显示你账户中的ETZ余额。在Remix中选择Injected Web3,会自动将GoETZ插件钱包中的地址导入进来。
在Remix中选择Token合约,填写合约参数,"21000000","BTC Token","BTC",标识我们将发行一个名称为ABC Token的代币,总计数量21000000个,代币符号BTC。点击Deploy发送交易,就可以将合约部署到以太零网络。
稍等片刻,部署成功后合约的使用界面就会出来,你可以在智能合约函数调用页面查询相关的代币信息,或者执行转账操作。
这样,你就完成了在以太零平台部署完成了一个发行BTC的智能合约。
3.3 合约部署问题
在合约需要gas较大,或者账户余额比较小的情况下,点击Deploy发送交易后,remix有可能报如下错误,该现象表示该交易的Power值不够。这种情况下,可以将发送交易的GasPrice调低,比如调整为1进行尝试,也可以通过增加账户以太零余额的方式来满足要求。
4. 以太零获取
由于以太零是完全免手续费的,调试合约发送交易完全没有任何损失,不像以太坊开发那样还要有较多的花费。所以建议开发者直接在以太零主网上进行测试开发,不需要本地搭建私有网络,这样可以节省代码迁移测试的时间,提高开发效率。
ETZ可以到数字币、C网、Coin918等平台购买。欢迎加入我们的官方开发群(705895394),找到开发者同伴,获得我们的支持。