目录
一、搭建 FISCO BCOS 链
1、安装 openssl, curl 依赖
2、安装 build_chain 脚本
二、配置控制台
1、下载java jdk
2、安装控制台
3、拷贝配置文件以及证书
4、启动控制台
三、Java-SDK(idea版)
1、创建 project
2、引入 Java-SDK依赖
3、sol2java.sh
4、导入所需资源
5、创建测试类
参考 FISCO BCOS 官方文档 v2.8.0
一、搭建 FISCO BCOS 链
1、安装 openssl, curl 依赖
sudo yum install -y openssl openssl-devel
2、安装 build_chain 脚本
在 home 目录下新建 fasco 文件夹,并切换到 fisco 目录下
cd ~ && mkdir -p fisco && cd fisco
下载脚本
curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v2.8.0/build_chain.sh
修改 build_chain 脚本文件为可执行文件
chmod u+x build_chain.sh
生成一条单群组4节点的FISCO链
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545
其中 -p 选项指定起始端口,分别是p2p_port(30300),channel_port(20200),jsonrpc_port(8545)
执行成功后,在 fabric 路径下生成nodes目录,nodes目录下包含生成的节点和证书
启动链
bash nodes/127.0.0.1/start_all.sh
二、配置控制台
1、下载java jdk
sudo yum install -y java java-devel
2、安装控制台
cd ~/fisco && curl -#LO https://gitee.com/FISCO-BCOS/console/raw/master-2.0/tools/download_console.sh
3、拷贝配置文件以及证书
注:客户端的启动需要 fasco bcos 链的相关配置文件以及生成链时产生的 ca
cp -n console/conf/config-example.toml console/conf/config.toml
cp -r nodes/127.0.0.1/sdk/* console/conf/
4、启动控制台
cd ~/fisco/console && bash start.sh
控制台的相关说明参考官方文档(包含编译高于0.4.25版本solidity合约的解决方法方法)控制台2.6+版本https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/console/console_of_java_sdk.html
三、Java-SDK(idea版)
Java SDK 提供了访问 FISCO BCOS 节点的Java API,支持节点状态查询、部署和调用合约等功能,基 于Java SDK可开发区块链应用。
首先确保已经启动一条 FISCO BCOS 链
本示例以 FISCO BCOS 自带的
1、创建 project
在idea下创建一个Spring Boot项目
2、引入 Java-SDK依赖
在 pom.xml 中导入 Java-SDK 的 Maven 坐标
org.fisco-bcos.java-sdkfisco-bcos-java-sdk2.8.0
3、sol2java.sh
注:sol2java.sh 不仅可以编译出ABI和BIN文件,还可以自动生成一个与编译的智能合约同名的合约Java类
进入到 ~/fisco/console使用 sol2java.sh,具体代码如下
bash sol2java.sh -p org.fisco.bcos
生成的 .java 文件保存在 -p 设置的包路径下 (org.fisco.bcos)
4、导入所需资源
包括:证书、配置文件、abi、bin、JavaBean
其中,证书可从 ~/fisco/nodes/127.0.0.1/sdk 中拷贝出,放至 src/main/resources/conf 目录下
配置文件可从 ~/fisco/console/conf 中拷贝出,放至 src/main/resources目录下,config-example.toml 文件中的 IP地址需要由 127.0.0.1,改为虚拟机的 IP地址
注:solidity语言编写的链码需要编译成 ABI 和 BIN 文件才能使用 Java-SDK 部署至区块链网络上
abi、bin文件可从 ~/fisco/console/contracts/sdk/ 路径下复制
JavaBean 从~/fisco/console/contracts/sdk/java/org/fisco/bcos/ 路径下复制
5、创建测试类
在 test 目录下创建对应的包,在包内创建BcosSDKTest.java
核心代码:
// 获取配置文件路径public final String configFile = BcosSDKTest.class.getClassLoader().getResource("config-example.toml").getPath();@Testpublic void testClient() throws ConfigException {// 初始化BcosSDKBcosSDK sdk =BcosSDK.build(configFile);// 为群组1初始化clientClient client = sdk.getClient(Integer.valueOf(1));// 向群组1部署HelloWorld合约CryptoKeyPair cryptoKeyPair = client.getCryptoSuite().getCryptoKeyPair();HelloWorld helloWorld = null;try {helloWorld = HelloWorld.deploy(client, cryptoKeyPair);} catch (ContractException e) {e.printStackTrace();}
可以通过 client对象获取链上信息,通过 helloworld对象操作链码