如何通过Remix发布以太坊智能合约

以太坊社区开发并开源了非常好用的在线 Solidity 集成开发环境 Remix ,可以方便的在 Remix 中编写、部署、测试智能合约,Remix 提供了强大的自动完成,语法高亮,实时编译检查错误等。打开remix,界面如下:

在代码区输入一下合约代码:
 
 
 
 
pragma solidity ^0.4.21;

contract Phone {
    string public model;
    int64  price;

    function Phone (string initalModel, int64 initalPrice) public {
        model = initalModel;
        price = initalPrice;
    }
    function setModel(string newModel) public {
        model = newModel;
    }
    function getModel() public view returns (string) {
        return model;
    }
}

Solidity

以太坊上写智能合约,只要是用到了Solidity语言。Solidity官方文档如是说:
Solidity is a contract-oriented, high-level language for implementing smart contracts. It was influenced by C++, Python and JavaScript and is designed to target the Ethereum Virtual Machine (EVM).
翻译为中文就是:Solidity是面向合约的高级智能合约编程语言,其设计受到了 C++、Python、Javascript 语言的影响,运行环境是以太坊虚拟机(EVM)。
Solidity 属于强类型语言,内含的类型除了常见编程语言中的标准类型,还包括 address 等以太坊独有的类型,Solidity 源码文件通常以 .sol 作为扩展名。
通过solidity在代码区写好了代码之后,就可以进行部署了。

部署智能合约

接下来看看在remix中合约是如何部署,运行的。
首先是要编译,点击Compile下的“Start to compile”按钮。如果选择了“Auto compile”,就会自动编译,不需要这部操作。
如果程序编译出错,会直接在编译区抛出异常,如果无误,就会显示如上图的绿色区域。

然后切换到Run,remix会自动识别出要部署的合约实例。
部署智能合约时,需要注意的是:
  1. Environment选择Javascript VM,即把合约部署到运行在浏览器内存中的测试网络,不过运行在浏览器内存中的网络,页面刷新的话数据将会被重置,如果部署在主域 Rinkeby 测试网络上,数据就不会丢失;
  2. 部署时如果要传入字符串类型的参数,一定要加上双引号
  3. 点击“Deploy”部署
部署完成之后,就会显示出可被调用的合约方法:
可以看出程序中只有setModel和getModel方法,但是部署之后却多了一个model方法(但是没有price方法)。这就是 Solidity 为public类型的存储型变量生成的 getter 方法,实际上如果一个存储变量类型为public,就不需要手动为它写一个get方法了。

猜你喜欢

转载自blog.csdn.net/zengchen73/article/details/80996501