chaincode java_基于Hyperledger Fabric交易系统帐户的钱包模型的java Chaincode实例

这是Hyperledger Fabric Java Chaincode的教程。还有Go和NodeJS Chaincodes,我们将来可能会讨论它们。此外,我采用基于帐户的钱包模型作为示例,我们将使用Hyperledger Fabric构建你的第一个网络(BYFN,build your first network),作为我们的测试环境(v1.4网络)。

如果你不知道如何启动BYFN网络,我也会提供步骤,不用担心。但是如果你想了解BYFN是如何工作的,你可以参考:

基于帐户的钱包模型

基于帐户的钱包模型是交易系统的实现之一,一般而言系统中存在一些钱包,并且每个钱包包含可用于转账的一些值或代币。当然,实现的细节有很多变化,例如代币交换和多代币功能。

特征

在Java Chaincode中,我们将实现:

1.用户钱包创建。

2.用户钱包查询。

3.钱包代币转账(即从一个钱包发送钱或代币到另一个钱包)。

[可选] Hyperledger Fabric中有两个数据库选项用于保存超级账本的world state:LevelDB和CouchDB,在本教程中,为了简单起见,我将使用LevelDB。

[可选]在上面,world state(或全局状态)不是超级账本本身,而是与超级账本分开,虽然它是派生的,可以随时从超级账本中恢复。此外,世界状态存储在数据库中以表示超级账本,使得这些节点不需要总是搜索超级账本以进行数据检索,并且可以更快地从数据库中检索数据(状态)。

[可选]在我的负载测试和一些关于Hyperledger Fabric性能的论文中,LevelDB的性能优于CouchDB。但与LevelDB中的简单键值查询相比,CouchDB可以支持可用于构建更复杂查询的丰富查询。

IDE——Java Chaincode开发工具

我们使用IntelliJ IDEA。此外,你需要JDK。请安装它们。

当然,如果你有自己的Java IDE,也可以使用它。但在本教程中,我们使用IntelliJ。

第1步,准备开发

让我们打开IntelliJ。

在IntelliJ中创建新项目Create New Project:

c3c4c29021f60cf1154dad86066cd63b.png

选择左边的Gradle,然后:

922e017cff14e01a873d132157c19f39.png

输入你的GroupId和ArtifactId。就我而言,我使用java_account_model_cc。接下来:

ddb625dc75567b1a6127b4bae6620d04.png

然后现在,你应该配置自己的项目位置。就我而言,我使用/Desktop/java_account_model_cc。单击完成Finish。

1.1 settings.gradle

在左侧的项目文件中,你应该看到settings.gradle。让我们双击打开它:

ddb625dc75567b1a6127b4bae6620d04.png

输入以下内容:

rootProject.name = 'fabric-chaincode-gradle'

1.2 build.gradle

在左侧的项目文件面板中,可以看到build.gradle。让我们双击打开它:

然后,输入以下内容:

plugins {

id 'com.github.johnrengelman.shadow' version '2.0.3'

id 'java'

}

group 'org.hyperledger.fabric-chaincode-java'

version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {

mavenLocal()

mavenCentral()

}

dependencies {

compile group: 'org.hyperledger.fabric-chaincode-java', name: 'fabric-chaincode-shim', version: '1.+'

compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.6'

testCompile group: 'junit', name: 'junit', version: '4.12'

}

shadowJar {

baseName = 'chaincode'

version = null

classifier = null

manifest {

attributes 'Main-Class': 'org.hyperledger.fabric.chaincode.AccountBasedChaincode'

}

}

如果IntelliJ右下角有一个需要导入的Gradle项目Gradle project needs to be imported的弹出窗口,请选择导入更改Import Changes。

1.3 Chaincode文件

在左侧的项目文件面板中,在src>main>java下,右键单击它并选择New>Java Class:

95f6acbd5433eacb4499ea27a19b91b7.png

在Name字段中输入org.hyperledger.fabric.chaincode.AccountBasedChaincode:

5e5628880d8bf758cef748867eeb1d4b.png

然后,应该看到以下内容:

74aa00c58e35996f0536cac38f25daac.png

上面的AccountBasedChaincode(.java)是我们在Java中编写Chaincode的地方。

第2步——需求分析

在我们开始编码之前,让我们组织我们需要编码的内容。

如特性部分所述,在Java Chaincode中,我们将实现:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值