教练,我“只”想学`solidity`

Smart Contract(智能合约)才是Dapp(去中心化应用)的核心,不是nodejs

如果你想要研究Solidity,但沒碰过nodejs,那么本篇是专门为你而写的。只需要使用网页面的Solidity编辑器(https://ethereum.github.io/browser-solidity),以及安装MetaMask就可以开心的编写、部署、测试智能合约。

想写这篇文章的原因是这样的,当初我想学如何写Solidity,作为一个初学者大概就是直接安装Ethereum官网提供的Wallet,使用它内建的编辑器来开发,但是部署的时候会经常失败,也找不到原因,区块同步又非常缓慢,实在是不太好用。

耗费一番功夫google之后,发现testrpc+truffle也是不错的开发工具组合,然而我就是这个时候开始被nodejs绑架的XD,写完contract之后要再花费很多力气写nodejs才能测试啊。不管你的Solidity学习路径如何,总是会碰到nodejs,实在是一件非常奇怪的事情。

1. 安装MetaMask

这是一个Chrome的套件,所以你要先安装Chrome,再安装MetaMask,裝完之后Chrome右上角就会有只狐狸跑出來,如下图所示。

教练,我“只”想学`solidity`

点击红色箭头指向的图片,一步一步注册账号。

  • 第一步,Accept
  • 第二步,输入密码
  • 第三步,拷贝恢复账号的安全码,一共是12个单词,切记,这一步很重要,一定要把这个安全码记录下来方便恢复账号。

教练,我“只”想学`solidity`

  • 下面是安装完后的界面效果图

    • 可以很方便的查看钱包地址
    • 将地址转换为二维码
    • 买入以太币
    • 发送以太币

教练,我“只”想学`solidity`

2. 配置MetaMask的Test Net

  • 从Main Ethereum Network切换到Ropsten Test Network
    教练,我“只”想学`solidity`

教练,我“只”想学`solidity`

  • 购买以太币

教练,我“只”想学`solidity`

教练,我“只”想学`solidity`

教练,我“只”想学`solidity`

教练,我“只”想学`solidity`

3. 使用网页版的Solidity编辑器

step 1. 打开browser-solidity网页https://ethereum.github.io/browser-solidity

第一次打开网页会默认载入一个案例,如下入所示:

教练,我“只”想学`solidity`

step 2. 为了容易示范首先换个简单的案例,然后确认有选择Injected Web3选项,之后按下Create就会自动通过MetaMask发送部署Contract的交易。

拷贝如下代码,替换掉原代码:

pragma solidity ^0.4.11;

contract SimpleStorage {
    uint data;
    
    function setData(uint x) {
        
        data = x;
    }
    
    function getData() constant returns (uint) {
        
        return data;
    }
}

教练,我“只”想学`solidity`

点击Create按钮后会弹出MetaMask界面,如下图所示:

教练,我“只”想学`solidity`

接下来点击SUBMIT按钮,在下图中,本次部署失败,如下图所示:
教练,我“只”想学`solidity`

教练,我“只”想学`solidity`

重新运行程序,点击Create,重新部署,下图是合约部署成功:

教练,我“只”想学`solidity`

step 3. 回到browser-solidity,就可以看到多了两个contract定义的function可以使用,constant function可以直接使用,就像下面的图中的get,其他的function一样会通过MetaMask发出交易,如下面图的set。

教练,我“只”想学`solidity`
教练,我“只”想学`solidity`
教练,我“只”想学`solidity`
教练,我“只”想学`solidity`
教练,我“只”想学`solidity`
教练,我“只”想学`solidity`

补充:在browser-solidity下入中的value位置可以设定要转发多少ether給contract,这可以用来测试payable function。

教练,我“只”想学`solidity`

技术交流

  • 区块链技术交流QQ群:348924182
  • 「区块链部落」官方公众号

教练,我“只”想学`solidity`

上一篇:比特币钱包BitPay使用教程


下一篇:手把手教你搭建智能合约测试环境、开发、编译、部署以及如何通过JS调用合约方法