搭建区块链

参考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,迷茫中加油吧

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Fabric是一个开源的区块链平台,可以用于搭建区块链项目。它具有许多强大的功能和特性,适用于企业级应用。 在搭建Fabric区块链项目时,首先需要设计网络拓扑结构。Fabric采用了多通道的概念,可以在同一个网络中创建多个独立的通道,并对每个通道进行权限控制。这样可以实现不同业务之间的隔离和保密。 接下来,需要定义网络中的组织和节点。组织是网络中的参与者,节点负责维护账本和执行智能合约。可以根据实际需求创建不同的组织和节点,实现灵活的合作模式。 然后,需要定义链码(智能合约)。链码是在Fabric网络中运行的代码,用于封装业务逻辑。链码可以使用多种编程语言编写,如Go、Java等。通过链码,可以实现各种复杂的业务流程和交易逻辑。 在搭建Fabric项目时,还需要考虑安全性和权限控制。Fabric提供了灵活的身份验证和访问控制机制,可以实现基于角色的权限管理。此外,Fabric还支持加密技术,确保交易和数据的机密性和完整性。 最后,需要考虑网络中的共识机制。Fabric支持多种共识算法,如Solo、Kafka等。可以根据实际需求选择合适的共识机制,确保网络的稳定性和可靠性。 总之,Fabric是一个功能强大的区块链平台,可以用于搭建各种类型的区块链项目。通过合理的设计和配置,可以实现高效、安全和可扩展的区块链应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值