文章目录
- 区块链开荒
- 技术文档:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/index.html
- 2. 配置及使用控制台
- 准备依赖
- 启动并使用控制台
- 3. 部署及调用HelloWorld合约
- 编写HelloWorld合约(此处不需要编写,控制台已内置)
- 部署HelloWorld合约
- 调用HelloWorld合约
区块链开荒
技术文档:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/index.html
2. 配置及使用控制台
在控制台链接FISCO BCOS节点,实现查询区块链状态、部署调用合约等功能
准备依赖
- 安装java (推荐使用java 14).
# ubuntu系统安装java
sudo apt install -y default-jdk
此处安装时间较长。安装完成后查看java版本。
查看版本:java -version
示例:
- 获取控制台并回到fisco目录
cd ~/fisco
curl -LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh && bash download_console.sh
上面的速度较慢,推荐使用:
cd ~/fisco
curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh && bash download_console.sh
示例:
- 拷贝控制台配置文件
若节点未采用默认端口,请将文件中的20200替换成节点对应的channel端口。
# 最新版本控制台使用如下命令拷贝配置文件
cp -n console/conf/config-example.toml console/conf/config.toml
- 配置控制台证书
cp -r nodes/127.0.0.1/sdk/* console/conf/
启动并使用控制台
- 启动
cd ~/fisco/console && bash start.sh
示例:
-
用控制台获取信息
# 获取客户端版本 [group:1]> getNodeVersion # 获取节点信息 [group:1]> getPeers
示例:
3. 部署及调用HelloWorld合约
编写HelloWorld合约(此处不需要编写,控制台已内置)
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;
}
}
部署HelloWorld合约
为了方便用户快速体验,HelloWorld合约已经内置于控制台中,位于控制台目录下contracts/solidity/HelloWorld.sol
,参考下面命令部署即可。
# 在控制台输入以下指令 部署成功则返回合约地址
[group:1]> deploy HelloWorld
transaction hash: 0xd0305411e36d2ca9c1a4df93e761c820f0a464367b8feb9e3fa40b0f68eb23fa
contract address:0xb3c223fc0bf6646959f254ac4e4a7e355b50a344
示例:
调用HelloWorld合约
# 查看当前块高
[group:1]> getBlockNumber
# 调用get接口获取name变量 此处的合约地址是deploy指令返回的地址
[group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get
# 查看当前块高,块高不变,因为get接口不更改账本状态
[group:1]> getBlockNumber
1
# 调用set设置name
[group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 set "Hello, FISCO BCOS"
# 再次查看当前块高,块高增加表示已出块,账本状态已更改
[group:1]> getBlockNumber
2
# 调用get接口获取name变量,检查设置是否生效
[group:1]> call HelloWorld 0xb3c223fc0bf6646959f254ac4e4a7e355b50a344 get
# 退出控制台
[group:1]> quit
示例:
到这你已经完成了控制台搭建和,控制台基本使用、智能合约调用。