学习以太坊部署智能合约(四) — Remix编写第一个智能合约(ubuntu20.04)

今天我们用Ubuntu中Remix来写第一个合约:

在前面博客中我们在本地部署了智能合约开发环境,现在打开终端输入remix-ide启动本地部署的智能合约开发环境。

学习以太坊部署智能合约(四) — Remix编写第一个智能合约(ubuntu20.04)_第1张图片

创建文件

我们在首页中File中选择New File,创建一个新文件,solidity文件是以.sol结尾的。

开始写代码:

这个智能合约的作用是在区块连链上存储一个变量,任何人都可以调用set()函数设置改变值(覆盖之前的数字),可以调用get()函数获取值

pragma solidity ^0.4.0; 

 contract SimpleStorage { 
    
    uint storedData; 
    
    function set(uint x) public { 
        
        storedData = x;
        
    }
    
    function get() public constant returns (uint) {
        
        return storedData;
        
    }
    
}

下面我们解读这个函数:

pragma solidity ^0.4.0; 

关键字pragma 用来告诉编译器如何编译这段代码,〈表示这里需要Solidity0.4.0 及以上版本(在合约版本声明章节中会进一步说明,版本号的第3 部分可以变〉。

contract SimpleStorage 

这行代码定义了一个合约, 合约的名字为SimpleStorage ( 这和其他语言如JavaScript 及Python 中定义一个类很相似,只不过class 关键字变成了contract )。一个合约通常由一组代码(合约的函数)和数据(合约的状态)组成。一个合约被存储在以太坊区块链上, 对应一个特殊地址。

 uint storedData; 

这行代码声明了一个变量,在智能合约中称为“状态变量”。这个状态变量名为storedData , 类型为uint (一个256 位的无符号整数) ,可以把它理解为数据库里面的一个存储单元。

    function set(uint x) public { 
        
        storedData = x;

上面的代码定义了一个函数set() 。在Solidity 中通过function 关键字来定义函数,并且函数的可见性修饰符要写在函数名字及参数之后( 这和大部分常见语言不一样),这里set()函数的作用是修改变量storedData 的值。

 function get() public constant returns (uint) {
        
        return storedData;

上面的代码定义了一个函数get(), 用来读取变量storedData 的值。这个函数通过returns来指定返回值。returns 返回值要放在所有函数修饰符之后、函数体之前。和大多数语言有点不一样,函数在访问状态变量时,不需要像其他语言那样添加前缀this 。
所有的标识符如合约名称、函数名称、变量名称等都只能使用ASCII 字符集里的字符,但是字符串变量中可以存储UTF- 8 编码的数据。

如何在运行本地部署的Remix

学习以太坊部署智能合约(四) — Remix编写第一个智能合约(ubuntu20.04)_第2张图片
上图是我选择solidity compiler进去的界面,注意我画红线的地方,这个地方是选择solidity的版本,这要和你编写的代码一致。选择之后我们可以点击下方蓝色按钮编译,如果出现报错,一般都会提示的很详细,大家可以进行调试。
然后我们选择DEPLOY & RUN TRANSACTIONS界面:

学习以太坊部署智能合约(四) — Remix编写第一个智能合约(ubuntu20.04)_第3张图片
首先注意选择我在图中写的数字1,这里要选择 JavaScript VM,选择好之后我们选择图中数字2(Deploy)选择,进行部署(关于上面参数我们后续再进行详细讲解),部署之后,我们发现出现图中数字3的部分,点开可以调用合约中的方法。

第一个智能合约部署结束,喜欢的点点关注!后续继续更新…

你可能感兴趣的:(智能合约,区块链,智能合约,以太坊)