使用Hyperledger Fabric Java SDK 构建和部署区块链网络(windows下)

在区块链解决方案中,区块链网络作为后端与应用程序前端一起使用SDK与网络通信。为了建立前端和后端之间的通信,Hyperledger Fabric社区为各种编程语言提供了许多SDK,如NodeJS SDK和Java SDK。此代码模式解释了使用Hyperledger Fabric SDK Java创建,部署和测试区块链网络的方法。
此模式将提供由两个组织组成的Hyperledger Fabric 1.1网络,每个组织维护两个对等节点,每个组织有两个证书颁发机构(CA)和一个单独订购服务。以下方面将在此代码模式中演示:
1、创建并初始化频道。
2、安装并实例化链代码。
3、注册并接收用户。
4、在区块链网络上执行调用和查询。
注意:此代码模式构建Hyperledger Fabric 1.1网络并使用Hyperledger Fabric SDK java 1.0.0。

以下全部是在虚拟机上的操作:
1.设置区块链网络
使用以下命令 clone repo。
$ git clone https://github.com/IBM/blockchain-application-using-fabric-java-sdk
要构建区块链网络,第一步是使用cryptogen和configtx为对等体和频道生成工件。在下载的模式中,已经生成了用于网络的对等体和信道的所有所需工件,并且提供这些工件以按原样使用。工件位于:
network_resources/crypto-config
network_resources/config
构建网络的自动脚本在network下提供。network / docker-compose.yaml文件定义了区块链网络拓扑。此模式提供了一个由两个组织组成的Hyperledger Fabric 1.1网络,每个组织维护两个对等节点,每个组织有两个证书颁发机构和一个独立订购服务。需要按如下方式运行脚本来构建网络。
启动网络命令:(每次调试时需保证网络是启动状态)
$ cd blockchain-application-using-fabric-java-sdk/network
chmod +x build.sh
./build.sh
要停止正在运行的网络,请运行以下脚本。
chmod +x stop.sh
./stop.sh
要完全删除网络,需要执行以下脚本。
chmod +x teardown.sh
./teardown.sh

2.基于Fabric Java SDK构建客户端
java客户端源存在于repo的文件夹java中。
在执行下一步之前检查你的环境。确保你能够正确运行mvn命令。如果mvn命令失败,请参阅安装maven的先决条件。
要使用Hyperledger Fabric SDK java 1.0.0使用已部署的网络,请执行以下步骤。
打开命令终端并导航到repo中的java目录。运行命令mvn install。
cd …/java
mvn install
构建了一个jar文件blockchain-java-sdk-0.0.1-SNAPSHOT-jar-with- dependen cies.jar,可以在target文件夹下找到。可以将此jar重命名为blockchain-client.jar以保持名称的简短。
cd target
cp blockchain-java-sdk-0.0.1-SNAPSHOT-jar-with-dependencies.jar blockchain-client.jar
将此构建的jar复制到network_resources目录中。这是必需的,因为java代码可以在执行期间访问所需的工件。
cp blockchain-client.jar …/…/network_resources

3.创建并初始化频道
在这个代码模式中,我们创建了一个由所有四个对等体连接的频道mychannel。可以在src/main/java/org/app/network/CreateChannel.java中看到java源代码。要创建和初始化频道,请运行以下命令。
cd network_resources
java -cp blockchain-client.jar org.example.network.CreateChannel
输出显示为:
使用Hyperledger Fabric Java SDK 构建和部署区块链网络(windows下)_第1张图片

4.部署并实例化链代码
此代码模式使用示例链代码fabcar来演示Hyperledger Fabric SDK Java API的使用。要部署和实例化链代码,请执行以下命令。
java -cp blockchain-client.jar org.example.network.DeployInstantiateChaincode
注:若是显示实例化链码失败,则尝试关闭网络,重新启动,启动后重复第3步和第4步。要保证链码实例化成功,才能继续后续步骤。
输出显示为:
使用Hyperledger Fabric Java SDK 构建和部署区块链网络(windows下)_第2张图片

5.注册并接收用户
可以注册新用户并将其注册到MSP。执行以下命令注册新用户并注册到Org1MSP。
java -cp blockchain-client.jar org.example.user.RegisterEnrollUser
输出显示为:
使用Hyperledger Fabric Java SDK 构建和部署区块链网络(windows下)_第3张图片

6.在网络上执行调用和查询
区块链网络已完全设置并可随时使用。现在我们可以通过在网络上执行调用和查询来测试网络。fabcar链码允许我们创建一个新的资产,这是一辆汽车。出于测试目的,执行调用操作以在网络中创建新资产,并且执行查询操作以列出网络的资产。执行以下步骤以检查相同的步骤。
java -cp blockchain-client.jar org.example.chaincode.invocation.InvokeChaincode
输出显示为:
使用Hyperledger Fabric Java SDK 构建和部署区块链网络(windows下)_第4张图片

查询输入:
java -cp blockchain-client.jar org.example.chaincode.invocation.QueryChaincode
输出显示为:
使用Hyperledger Fabric Java SDK 构建和部署区块链网络(windows下)_第5张图片

以下全部是在IntelliJ IDEA上的操作:
需要maven:3.5以上版本;java:1.8以上
1.下载 fabric-sdk-java
同时重新下载开发使用的fabric-sdk-java到虚拟机和本机中(mac或者windows),为什么一个fabric-sdk-java要git clone两遍,因为真正的开发环境中,我们需要用sdk启动fabric项目,所以,在fabric-sdk-java有一个命令是需要启动linux中的fabric环境的,同时也要启动java运行在fabric环境,所以要同时下载两次fabric-sdk-java。

2.使用idea打开下载的fabric-sdk-java
这里以
git clone https://github.com/IBM/blockchain-application-using-fabric-java-sdk为例。
使用Hyperledger Fabric Java SDK 构建和部署区块链网络(windows下)_第6张图片

3.更改config文件,链接虚拟机网络

打开config文件,将文件里http和grpc地址全部改为虚拟机端口。
使用Hyperledger Fabric Java SDK 构建和部署区块链网络(windows下)_第7张图片
4.后续的创建通道,实例化链码,添加peer节点和Invok以及Query操作都可在Java中通过编程实现,网上有很多代码可以参考,但必须保证虚拟机上的网络已经成功运行起来。
QueryChaincode查询结果如下:

使用Hyperledger Fabric Java SDK 构建和部署区块链网络(windows下)_第8张图片

你可能感兴趣的:(区块链学习之路)