Remix 是一个开源的 Solidity 智能合约开发环境,提供基本的编译、部署至本地或测试网络、执行合约等功能。Solidity 是 以太坊Ethereum 官方设计和支持的开发语言,专门用于编写智能合约。web
本文但愿将一个很简单的代币合约(只能发行和转帐),部署在本地和测试网络上,测试下它的功能。编程
详细描述使用 Remix 的步骤及使用上可能碰到的问题。浏览器
以前开发过以太坊Ethereum智能合约,但没有记录过开发的过程和碰到的问题,以为挺惋惜。此次从新开始,从最基础开始,一步步学习。微信
不须要安裝,直接在任何浏览器启动 Remix。网络
代币合约的范例不少,Ethereum 官网有提供一个最小可执行的代币合约(MINIMUM VIABLE TOKEN):app
pragma solidity ^0.4.0; contract MyToken { /* This creates an array with all balances */ mapping (address => uint256) public balanceOf; /* Initializes contract with initial supply tokens to the creator of the contract */ function MyToken(uint256 initialSupply) public { balanceOf[msg.sender] = initialSupply; // Give the creator all initial tokens } /* Send coins */ function transfer(address _to, uint256 _value) public { require(balanceOf[msg.sender] >= _value); // Check if the sender has enough require(balanceOf[_to] + _value >= balanceOf[_to]); // Check for overflows balanceOf[msg.sender] -= _value; // Subtract from the sender balanceOf[_to] += _value; // Add the same to the recipient } }
这个 MyToken 合约真的很简单,只能作两件事:工具
至于一个完整的代币合约,可参考ERC20 Token使用手冊。学习
1.设置网络 点选左上的 run。区块链
Environment 选择 JavaScript VM 表明全部资料都是存在本地(功能相似 testrpc)。它会提供 5 个虚拟帐户每一个有 100 ETH,随便选择一个帐户(要记住后面一直要用)。开发工具
2.发送交易部署合约 选择 MyToken。能够看到 create 按钮。且已根据合约內容显示必须输入 initialSupply(也就是要发行的代币数量)。输入一个数目点create,就能够发送交易部署合约。
合约部署成功后,能够看到合约的使用界面。Remix 会自动根据合约的內容,产生对应的合约使用界面。能够看到合约有两个功能:balanceOf(查询余额) 和 transfer(转移代币)。
底下能够看到 log(记录每一次的操做)。实际上部署合约是经过一个 Ethereum 交易完成,点 Details 能够看到这笔交易详细资料。
1.选择刚刚发起合约的帐户
能够点右边的按钮复制
2.输入帐户 注意要用 “” 把帐户括起來,示例:
"0xca35b7d915458ef540ade6068dfe2f44e8fa733c"
3.点击 balanceOf
能够看到执行结果,也就是目前这个帐户的代币余额。
可能的错误情況
说明一点,由于数据传输是用 JSON 格式,因此要加上 “”。若是忘了 “” 就会在 log 中看到错误提示:
1.选择要输出的帐户 选择刚刚发起的合约的帐户。
2.输入要转入的帐户 选择並复制另外一个帐户。在合约界面 transfer 后面的输入位置,输入转入帐户和要转移的代币数量。帐户一样须要用 “” 括起來,示例:
"0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db", 10
3.点击 transfer 点击 transfer,成功后会看到 log 更新。
4.确认余额更新 这时在查询转入帐户的余额,就能够看到代币余额增长啦!
错误情況 若是选择要转出的帐户代币余额不足,这个交易就会失败,会在 log 看到错误提示。
1.安裝 MetaMask 首先,要连到测试网络,这就要安裝 MetaMask。它是浏览器端的 Ethereum 钱包,能够连結 Ethereum 公共和测试网络。安装后须要创建 Ethereum 帐号,这个这里就不细讲了。
成功启动后是这样的。
咱们选择 Ropsten Test Net
2.选择测试网络
回到 Remix,此次 Environment 选择 Injected Web3,Remix 会自动链接 MetaMask。
成功链接后会看到和 MetaMask 相同帐号和 Ether 余额
3.部署合约 接着用一样的方式,按 create 部署合约,就会看到 MetaMask 的弹出窗口。直接按 submit 发送交易。
稍等片刻(须要等交易被确认),部署成功后合约的使用界面就会出来。
ok,如今能够用一样的方式使用合约啦!
Remix 提供一个 Solidity 智能合约的开发环境,能够方便的编译、部署、执行甚至找错,适合编程经验很少的初学者。但没法作到版本控制、测试及和其余开发工具一块儿使用等,实际上要开发 DApp,使用 Truffle三、Ganache、web3.js 来编译和部署合约比较方便和专业些更适合开发人员。
推荐一个适合区块链新手的以太坊DApp开发教程:
http://xc.hubwiz.com/course/5a952991adb3847553d205d1
若是想加入以太坊技术开发群能够加微信:cuixuebin2,拉你入群聊。