编写第一个 Java 链代码程序
在上一节中,您已经熟悉了如何构建、运行、部署和调用链代码,但尚未编写任何 Java 代码。
在本节中,将会使用 Eclipse IDE、一个用于 Eclipse 的 Gradle 插件,以及一个名为 ChaincodeTutorial 的 Java 链代码框架项目,编写第一个 Java 链代码程序。您将从我为此教程创建的 GitHub 存储库中获取框架代码,将该代码导入 Eclipse 中,添加代码来让链代码智慧合同按要求生效,然后在 Eclipse IDE 内使用 Gradle 构建该代码。
您将执行的步骤如下:
安装适用于 Eclipse 的 Gradle Buildship 插件。
从 GitHub 克隆 ChaincodeTutorial 项目。
将该项目导入 Eclipse 中。
探索该链代码框架项目。
编写 Java 链代码。
构建 Java 链代码。 完成本节后,您的链代码就可以在本地区块链网络上运行了。
1.安装适用于 Eclipse 的 Gradle Buildship 插件
您使用自己喜欢的任何 IDE,但本教程中的说明是针对 Eclipse 的。备注:Buildship Gradle 插件有助于将 Gradle 与 Eclipse 集成,但仍然需要将 Gradle 安装在计算机上。
如果您一直在按照教程进行操作,那么您应该已经将 Gradle 安装在计算机上;如果尚未安装它,请立即安装。请参阅 “安装构建软件” 部分,了解如何将 Gradle 安装在计算机上。
在 Buildship Gradle Integration 下,单击 Install 按钮并按照提示进行操作。单击 Finish 后,将安装适用于 Eclipse 的 Buildship Gradle 插件,而且会要求您重启 Eclipse。
重新打开 Eclipse 后,Gradle 应该已经与 Eclipse IDE 全面集成。您现在已准备好从 GItHub 克隆 ChaincodeTutorial 存储库。
从 GitHub 克隆 ChaincodeTutorial 项目
配置 Eclipse IDE 和 Gradle集成后,将从 GitHub 克隆 ChaincodeTutorial 代码并将其导入 Eclipse 中。打开一个命令提示符或终端窗口,导航到 $GOPATH 并执行以下命令:
git clone https://github.com/makotogo/ChaincodeTutorial.git
命令输出应类似于:
$ export GOPATH=/Users/sperry/home/mychaincode
$ cd $GOPATH
$ git clone https://github.com/makotogo/ChaincodeTutorial.git
Cloning into 'ChaincodeTutorial'...
remote: Counting objects: 133, done.
remote: Compressing objects: 100% (90/90), done.
remote: Total 133 (delta 16), reused 118 (delta 1), pack-reused 0
Receiving objects: 100% (133/133), 9.39 MiB | 1.95 MiB/s, done.
Resolving deltas: 100% (16/16), done.
$ cd ChaincodeTutorial
$ pwd
/Users/sperry/home/mychaincode/ChaincodeTutorial
此命令将 Blockchain ChaincodeTutorial 存储库从 GitHub 克隆到 $GOPATH。它包含一个 Java 链代码框架项目,您可以在本地区块链网络中构建、运行和测试它。
但在执行所有这些操作之前,需要将该代码导入 Eclipse 中。
3.将该项目导入 Eclipse 中
在 Eclipse 中,转到 File > Import...> Gradle > Existing Gradle Project。这会打开一个向导对话框(参见图 9)。
单击 Next。在向导中随后出现的对话框中(参见图 10),浏览到 $GOPATH/ChaincodeTutorial,然后单击 Finish 导入该项目。
完成项目导入后,确保选择了 Java Perspective,您刚导入的 ChaincodeTutorial 项目会显示在 Project Explorer 视图中。
将代码导入 Eclipse 工作区后,就可以编写链代码了。
4.探索该链代码框架项目
在本节中,将探索该链代码项目,以便理解在编写任何 Java 代码前它应该如何运行。
作为开发人员,我们喜欢编写代码,所以我不想让您失去编写 Java 代码的机会。但是,项目设置可能很复杂,我不想让这些设置阻碍实现本教程的主要目的。为此,我提供了您所需的大部分代码。
首先让我们快速查看一下基类 AbstractChaincode,它位于 com.makotojava.learn.blockchain.chaincode 包中,如清单 1 所示。
清单 1. AbstractChaincode 类
package com.makotojava.learn.blockchain.chaincode;
import java.util.Arrays;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hyperledger.java.shim.ChaincodeBase;
import org.hyperledger.java.shim.ChaincodeStub;
public abstract class AbstractChaincode extend