写点什么

控制台的安装与使用 | 联盟链开发(二)

用户头像
李大狗
关注
发布于: 2021 年 03 月 21 日
控制台的安装与使用 | 联盟链开发(二)

在上一讲中,我们谈到了 FISCO BCOS 节点的安装。现在,只要再安装控制台,我们就能开始 FISCO BCOS 区块链应用的开发了。


控制台:命令行交互控制台 (简称“控制台”) 是 FISCO BCOS 2.0 重要的交互式客户端工具,它通过 [Java SDK](https://fisco-bcos-documentation.readthedocs.io/zhCN/latest/docs/sdk/javasdk/index.md) 与区块链节点建立连接,实现对区块链节点数据的读写访问请求。控制台拥有丰富的命令,包括查询区块链状态、管理区块链节点、部署并调用合约等。此外,控制台提供一个合约编译工具,用户可以方便快捷的将 Solidity 合约文件编译为 Java 合约文件。


控制台的安装


安装很简单,官方文档地址如下:


https://fisco-bcos-documentation.readthedocs.io/zhCN/latest/docs/console/consoleof_java_sdk.html


  1. 获取控制台


这里推荐通过 Gitee 的方法获取:


curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master/tools/download_console.sh && bash download_console.sh


  1. 配置控制台


  • conf目录下的config-example.toml文件重命名为config.toml文件。


```

# 确保在 fisco 目录下,也即 console 与 nodes 的上级目录

mv console/conf/config_example.toml console/conf/config.toml

```


  • 将节点 sdk 目录下的ca.crtsdk.crtsdk.key文件拷贝到conf目录下。


```

# 确保在 fisco 目录下,也即 console 与 nodes 的上级目录

cp nodes/127.0.0.1/sdk/* console/conf

```


  • 多个环境下的控制台配置


如果控制台需要应对多个区块链网络的话(例如测试环境网络和正式环境网络),那么我们可以通过软链接的方式复制配置文件。


首先我们把多个环境下的conf文件夹放在 console 目录下,命名为conf_*,如conf_mainconf_test


创建软链接:


```

ln -s conf_* conf

```


要切换环境时,更新软链接即可:


```

ln -snf conf_* conf

```


  1. 运行控制台


先确保所有脚本权限足够:


chmod u+x *.sh
复制代码


执行start.sh


./start.sh
复制代码



出现这个页面,就说明你控制台安装成功了!


控制台的使用


具体的命令列表查看:


https://fisco-bcos-documentation.readthedocs.io/zhCN/latest/docs/console/consoleof_java_sdk.html


这里枚举一些最常见的命令:


1 查看帮助


```

h

```


2 数据查看类操作


- 查看区块高度


```

getBlockNumber

```


- 根据高度/哈希查看区块/根据高度查哈希


```

根据哈希查看区块:

getBlockByHash [Hash]

根据高度查看区块:

getBlockByNumber [Num]

根据高度获取对应哈希:

getBlockHashByNumber [Num]

```


- 根据哈希查看交易


> 小 Tips:区块中的交易可通过查看区块看到


```

getTransactionByHash [Hash]

```


3 账户类操作


- 新建账户


```

newAccount

```


- 列出账户


```

listAccount

```


- 切换账户


```

loadAccount [addr]

```


4 智能合约类操作


合约存放目录为:console/contracts/solidity


4.1 查看 ABI


ABI 内包含函数(Method)接口描述与事件(Event)接口描述。


```

listAbi [ContractName]

```


如:


```

listAbi HelloWorld

```



Method List:


其中,name 是函数名,constant 标识该函数是否会改写区块链状态,methodId 是函数 id,Signature 是该函数的用法。


Event List:


同理,name 是事件名,topic 是 Event Signature(即后一个字段 Signature) 的哈希(数字指纹),Signature 是该事件的用法。


4.2 合约部署


包含普通部署/CNS 部署两种部署方式。


a)普通部署


deploy [contractName or contractPath]
复制代码


例子:


deploy HelloWorld
复制代码


会返回交易地址与合约哈希。



b)CNS 部署


CNS(Contract Name Service)通过提供链上合约名称与合约地址映射关系的记录及相应的查询功能,方便调用者通过记忆简单的合约名来实现对链上合约的调用。


deployByCNS contractNameOrPath contractVersion
复制代码


例子:


deployByCNS HelloWorld 1.0
复制代码


4.3 合约调用


a)通过普通方式调用


对应普通方式部署:


call [contractNameOrPath] [contractAddress] [function] [parameters]
复制代码


例子:


call HelloWorld 0xbad9906c55e8762fe5c18e2beb37d7d8db177578 set "HappyNewYear!"
复制代码



b)通过 CNS 方式调用


对应 CNS 方式部署:


callByCNS contractNameOrPath:contractVersion function parameters
复制代码


例子:


callByCNS HelloWorld:1.0 set "HappyNewYear!"
复制代码



发布于: 2021 年 03 月 21 日阅读数: 15
用户头像

李大狗

关注

还未添加个人签名 2018.08.07 加入

还未添加个人简介

评论

发布
暂无评论
控制台的安装与使用 | 联盟链开发(二)