本示例项目基于 Java SDK + Maven + Spring Boot 来调用智能合约。该项目仅适配 FISCO BCOS 3.0.x 版本,如果需要适配其他版本,请修改 pom.xml 文件中的 fisco-java-sdk 版本号。
搭建 FISCO BCOS 单群组区块链(Air 版本),具体步骤请参考这里。
注意: 节点 rc4 版本以后才支持 Table 的 CRUD 接口,之前的版本只能用 KV 接口的功能。
克隆仓库:
$ git clone https://github.com/your-repo/spring-boot-crud.git
$ cd spring-boot-crud将节点目录 nodes/${ip}/sdk 下的 ca.crt、sdk.crt 和 sdk.key 文件拷贝到项目的 src/main/resources/conf 目录下供 SDK 使用(FISCO BCOS 2.1 以前,证书为 ca.crt、node.crt 和 node.key)。
假设节点路径为 ~/fisco/nodes/127.0.0.1,可使用以下命令拷贝 SDK 证书:
# 创建证书存放路径
$ mkdir -p src/main/resources/conf
# 拷贝 SDK 证书
$ cp ~/fisco/nodes/127.0.0.1/sdk/* src/main/resources/conf/项目包含 SDK 配置文件(位于 src/main/resources/applicationContext.xml 路径)和 WebServer 配置文件(位于 src/main/resources/application.yml 路径)。
根据区块链节点的 IP 和端口相应配置 applicationContext.xml 的 network.peers 配置项:
<property name="network">
<map>
<entry key="peers">
<list>
<value>127.0.0.1:20200</value>
<value>127.0.0.1:20201</value>
</list>
</entry>
<entry key="defaultGroup" value="group0" />
</map>
</property>在 applicationContext.xml 中更新账户地址和密钥路径:
<property name="account">
<map>
<entry key="keyStoreDir" value="account" />
<entry key="accountAddress" value="0x36685008b15fdabdb9016562e21f6aa2af56d32d" />
<entry key="accountFileFormat" value="pem" />
<entry key="password" value="" />
<entry key="accountFilePath" value="accounts/0x36685008b15fdabdb9016562e21f6aa2af56d32d.pem" />
</map>
</property>关于 SDK 配置的详细说明请参考这里。
在 application.yml 中更新 WebServer 的监听端口(默认为 45000):
server:
port: 45000可以使用 IntelliJ IDEA 导入并编译和安装该项目,也可使用提供的 mvnw 脚本在命令行编译项目:
# 编译项目
$ bash mvnw compile
# 安装项目,安装完毕后,在 target/ 目录下生成 fisco-bcos-spring-boot-crud-0.0.1-SNAPSHOT.jar 的 JAR 包
$ bash mvnw install方法一:使用 IntelliJ IDEA
导入项目至 IntelliJ IDEA,编译并运行 AppApplication.java 启动 Spring Boot 服务。
方法二:使用命令行
使用生成的 JAR 包启动服务:
# 启动 Spring Boot CRUD 服务
$ java -jar ./target/fisco-bcos-spring-boot-crud-0.0.1-SNAPSHOT.jar服务启动后,可以通过配置的端口(默认是 45000)进行访问。
此 README 提供了设置和运行基于 Spring Boot 的 CRUD 项目的简要指南。