赞
踩
参考B站FISCO BCOS(十八) java SDK与区块链交互_哔哩哔哩_bilibili 林中有神君
一、搭建第一个区块链网络
根据官方文档搭建:搭建第一个区块链网络 — FISCO BCOS v2.9.0 文档 (fisco-bcos-documentation.readthedocs.io)
使用javajdk 控制台2.6之后 本处是2.9.2
- transaction hash: 0x5634e95394bf611b87afd3fcee0ac65f677a37b4a6e1947ac0793ee109dd7b86
- contract address: 0xae05a7fc9a1182d0900dbaf84b6cfa9ede873bea
- currentAccount: 0x909903c7cfb7b82968f6b386ed28b4565a9367f6
合约sol文件和编译生成的Java文件位置如下
走完之后开始项目连接区块链
二、先安装环境jdk1.8
-在windows下下载linux版本下的jdk1.8
-复制到虚拟机中
- cp -r jdk-8u371-linux-x64.tar.gz /usr/local
- cd /usr/local/
- tar -zxvf jdk-8u371-linux-x64.tar.gz
-改名字mv jdk1.8.0_371/ jdk1.8
- export JAVA_HOME=/usr/local/jdk1.8
- export PATH=$JAVA_HOME/bin:$PATH
- export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-source /etc/profile 让环境生效
三、新建IDea项目选择Gradle
file》setting
File》Project Structure》语言选择Java8
-在Idea里面导入fiscobcos依赖包
implementation ('org.fisco-bcos.java-sdk:fisco-bcos-java-sdk:2.9.1')
四、ssh远程连接虚拟机及使用SFTP文件传输
1、打开虚拟机
查看虚拟机ip
2、使用idea自带远程连接工具
出现错误连接失败,是因为Ubuntu里边没有ssh服务,下载该服务就可以
sudo apt-get install openssh-server
另外虚拟机用户名在创建时用了自己的名字wym,所以不是root
成功之后在idea下边,连接上了虚拟机
-使用idea自带的文件传输工具SFTP
点击三个小点确认连接的ip
一直选ok退出
让虚拟机的文件目录在右侧出现
五、编译智能合约
已经下好控制台的情况下
1、启动节点bash start_all.sh
2、启动控制台bash start.sh
3、 查看自带智能合约
4、生成调用该智能合约的Java类
bash sol2java.sh -p com.wym.fisco
sol2java.sh:编译脚本
com.wym.fisco:指定产生的Java类所属的包名
5、查看编译结果,可以看到已经生成的java类
6、根据虚拟机的目录修改Idea的目录结构
在src/main/jsva下新建com/wym/fisco,再将org/example下的Main移到fisco下,删除org/example
7、将编译结果拖到项目当中
再将虚拟机下的abi和bin拖到idea下的resources
再将config-example.toml移到resource下
再将java文件拖过来
8、以使用Java SDK调用群组1的getBlockNumber
接口获取群组1最新块高,并向群组1部署和调用HelloWorld
合约为例
在test下新建文件包
新建Javaclass-BcosSDKTest
BcosSDKTest是在官网上复制的
快速入门 — FISCO BCOS v2.9.0 文档 (fisco-bcos-documentation.readthedocs.io)
- public class BcosSDKTest
- {
- // 获取配置文件路径
- public final String configFile = BcosSDKTest.class.getClassLoader().getResource("config-example.toml").getPath();
- public void testClient() throws ConfigException {
- // 初始化BcosSDK
- BcosSDK sdk = BcosSDK.build(configFile);
- // 为群组1初始化client
- Client client = sdk.getClient(Integer.valueOf(1));
-
- // 获取群组1的块高
- BlockNumber blockNumber = client.getBlockNumber();
-
- // 向群组1部署HelloWorld合约
- CryptoKeyPair cryptoKeyPair = client.getCryptoSuite().getCryptoKeyPair();
- HelloWorld helloWorld = HelloWorld.deploy(client, cryptoKeyPair);
-
- // 调用HelloWorld合约的get接口
- String getValue = helloWorld.get();
-
- // 调用HelloWorld合约的set接口
- TransactionReceipt receipt = helloWorld.set("Hello, fisco");
- }
- }
文件中爆红是没有导入相应包,按ALT+enter导入包,不再爆红
在该java文件下绿色三角显示灰色,无法运行
9、运行程序,在Main.java中绿色三角运行
做完了,不知道做的什么,没有实现数据上链,只是调用了智能合约,2023/7/6,迷茫中加油吧
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。