文章目录
- 1. 任务背景
- 2. 任务目标
- 3. 相关知识点
- 4. 任务实操
- 4.1 新建合约文件
- 4.2 编写合约代码
- 4.3 保存、编译、部署合约
- 4.4 调用合约
- 5. 任务总结
1. 任务背景
FISCO BCOS运用智能合约进行归纳资产管理、规则定义和价值交换等操作,所以我们需要学习如何使用智能合约。
2. 任务目标
开发一个最基本的HelloWorld智能合约。
3. 相关知识点
智能合约概念:
智能合约概念于1995年由Nick Szabo首次提出,指以数字形式定义的能自动执行条款的合约,数字形式意味着合约必须用计算机代码实现,因为只要参与方达成协定,智能合约建立的权利和义务,就会被自动执行,且结果不能被否认。
智能合约生命周期:
智能合约的生命周期为设计,开发,测试,部署,运行,升级,销毁等几个步骤。开发人员根据需求,进行智能合约代码的编写,编译,单元测试。合约开发语言可包括solidity, C++, java, go, javascript, rust等,语言的选择根据平台虚拟机选型而定。
智能合约开发语言Solidity:
Solidity 是 Ethereum 的一种契约型编程语言,其语法与 JavaScript 类似。
4. 任务实操
上面说的多少有点抽象,接下来我们开始实操。
4.1 新建合约文件
在合约管理-合约IDE中点击红圈中的新建文件按钮
合约名称设置为HelloWorld后确认
4.2 编写合约代码
右侧编写HelloWorld合约,该合约提供两个接口,分别是get()和set(),用于获取/设置合约变量name。合约内容如下:
pragma solidity ^0.4.24;
contract HelloWorld {
string name;
function HelloWorld() {
name = "Hello, World!";
}
function get()constant returns(string) {
return name;
}
function set(string n) {
name = n;
}
}
4.3 保存、编译、部署合约
依次点击保存、编译、部署合约按钮。
注意点击部署后,需要联动新增用户。
输入用户名即可:
部署注意合约地址信息,可以点击红圈中按钮复制合约地址。
4.4 调用合约
点击合约调用按钮,调用刚刚复制的地址(即为部署的HelloWorld合约),调用其set方法,同时传入参数先定个小目标赚他一个亿
。最后点击确认。
点击后提示成功,如下图:
此处发现一枚彩蛋,上面这个提示成功提示框,不是Element框架里面的Message组件么哈哈。
然后我们再调用合约中的get方法,将name读取出来:
调用结果如下:
5. 任务总结
HelloWorld程序相对还是很简单,容易理解。
注意咱们上面编写的程序,跟之前的最大区别是。这个程序是部署到区块链上运行、调用的,所以它具备区块链系统的能力,不可小觑之。