Fisco Bcos 2.11.0配置console控制台2.10.0及部署调用智能合约
文章目录
- Fisco Bcos 2.11.0配置console控制台2.10.0及部署调用智能合约
- 前言
- 版本适配
- 一、启动FIsco Bcos区块链网络
- 二、获取控制台文件
- 三、配置控制台
- 3.1 执行download_console.sh脚本
- 3.2 拷贝控制台配置文件
- 3.3 修改控制台配置文件(如果channel端口发生变化)
- 3.4 配置控制台证书
- 四、启动控制台
- 五、使用控制台部署调用智能合约
- 5.1 查看内置合约
- 5.2 部署Hello World合约
- 5.3调用合约方法
- 进阶知识点
前言
-
Fisco Bcos Console命令行交互控制台
,是FISCO BCOS 2.0重要的交互式客户端工具,拥有丰富的命令,能够在连接Fisco Bcos区块链节点后,实现查询区块链信息和状态、部署和调用智能合约、管理区块链节点等功能。 -
Console2.6版本之后基于Java SDK实现(java JDK版本适配,请查看版本适配),请自行检查JAVA JDK版本或进行安装。
-
Console控制台的配置和使用,基于Fisco Bcos区块链网络搭建及成功运行之后。搭建区块链网络请查看博客:
Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络)
-
console 2.11.0 目前正处于
Pre-release
版本,所以本篇博客将在ubuntu系统中,使用Java 14进行Console控制台v2.10.0版本的配置及使用
版本适配
- FISCO-BCOS支持Java版本的SDK,并且大量的示例、周边项目都是基于JavaSDK,下列版本是官方已经验证的
JDK
版本:
JDK | 推荐版本 |
---|---|
OracleJDK | 1.8.0_141、1.8.0_202、11.0.2、14.0.2、15.0.2 |
OpenJDK | 11.0.2、14.0.2、15.0.2 |
- Fisco Bcos 2.x版本仅可部署console1.x和2.x版本的控制台,请检查并确定Fisco Bcos区块链的版本是否为2.x版本
一、启动FIsco Bcos区块链网络
bash nodes/127.0.0.1/start_all.sh
首先,进入fisco目录,执行上面的指令,启动区块链网络
如果没有搭建区块链网络请查看此博客文章:Fisco Bcos 2.11.0通过网络和本地二进制文件搭建单机节点联盟链网络(搭建你的第一个区块链网络)
如果已启动网络则会提示node is running
二、获取控制台文件
下载地址1:(国内用户推荐使用这个地址)
curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh
下载地址2:
curl -#LO https://github.com/FISCO-BCOS/console/releases/download/v2.9.2/download_console.sh
三、配置控制台
3.1 执行download_console.sh脚本
bash download_console.sh
执行完成后会增加console压缩包和console两个文件
接下来的操作都在console
文件中进行
3.2 拷贝控制台配置文件
cd console
cp -n conf/config-example.toml conf/config.toml
3.3 修改控制台配置文件(如果channel端口发生变化)
- 如果是按照作者专栏中的博客进行搭建的区块链网络,或者搭建区块链网络时采用的节点默认端口号,则跳过这一步
- 如果在搭建区块链网络节点时,channel端口没有采用默认的20200端口,请进入
config.toml
中修改端口
cd conf
vim config.toml
3.4 配置控制台证书
cp -r ../nodes/127.0.0.1/sdk/* ./conf/
四、启动控制台
bash start.sh
如果想要退出控制台,请在控制台内输入quit或exit
五、使用控制台部署调用智能合约
接下来的操作都在console
控制台中进行,所以请保证控制台处于启动状态
5.1 查看内置合约
为了方便用户快速体验,Fisco Bcos官方在控制台中已经内置了一个HelloWorld,位于控制台目录下
contracts/solidity/HelloWorld.sol
,大家可以直接部署
合约具体内容:
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合约提供两个接口,分别是get()
和set()
,用于获取/设置合约变量name
5.2 部署Hello World合约
deploy HelloWorld
复制好 contract address 地址(每个人的地址都不一样):后面调用合约需要用到
5.3调用合约方法
- 调用合约get方法
call HelloWorld 0x5c3754edd1835ce0f26300e24cadeead17adb77d get
合约的返回值为Hello,World!
- 调用合约set方法
call HelloWorld 0x5c3754edd1835ce0f26300e24cadeead17adb77d set "Hi,FISCO BCOS"
返回状态:成功
这时候可以再次调用get方法,会发现此时合约的返回值已经发生了改变为Hi,FISCO BCOS
进阶知识点
查看当前区块链的块高命令
getBlockNumber
调用合约的get接口,并不会更改账本的状态
调用合约的set接口,会在账本中存储一个新的值,再此查看区块链的当前块高,会发现块高会增加,表示已出块,账本状态已更改