- Notifications
You must be signed in to change notification settings - Fork13
liuwenru/FabricJavaSDKExamples
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Fabric JAVA SDK测试样例
├── pom.xml├── src│ ├── main│ │ ├── java│ │ │ └── ijarvis│ │ │ └── intelliq│ │ │ ├── FabricApp.java# 初始化Fabric Client对象以及连接组织信息│ │ │ ├── LedgerRecord.java# 链码中数据结构Bean│ │ │ └── SampleUser.java# 抽象超级账本中用户信息(实际就是MSP下user文件夹中生成的用户身份文件)│ │ └── resources│ │ └── log4j.xml │ └──test│ ├── java│ │ └── ijarvis│ │ └── intelliq│ │ └── AppTest.java# Junit测试代码文件│ └── resources│ ├── crypto-config# 测试环境下所有证书以及MSP文件集合│ │ ├── ordererOrganizations│ │ │ └── example.com│ │ └── peerOrganizations│ │ ├── org1.example.com│ │ └── org2.example.com│ └── log4j.xml
由于调用链码调用初始化需要初始化fhclient
等等一系列的对象,所以建议使用Junit
运行代码。
使用SDk
调用链码主要的步骤是:
- 1、初始化HFClient
- 2、实例化已经实现接口
User
的类加载已有的证书文件以及连接用户的私钥文件 - 3、调用
client.setUserContext(peer0org1);
方法更新client
的配置文件 - 4、通过
client
获取通道对象(channel
),客户端设置发起交易需要使用的Orderer
以及Peer
对象 - 5、通过
channel
对象设置调用链码的名称参数等等信息发起调用链码
packageijarvis.intelliq.Fabric;// 省略相关的包导入publicclassSampleUserimplementsUser {privatefinalStringcertFolder;privatefinalStringuserName;publicSampleUser(StringcertFolder,StringuserName) {this.certFolder =certFolder;this.userName =userName; }//省略相关Set和Get方法/** * * 重要实现方法,不使用CA需要自己实现如何加载私钥以及证书信息 */@OverridepublicEnrollmentgetEnrollment() {returnnewEnrollment() {@OverridepublicPrivateKeygetKey() {try {returnloadPrivateKey(Paths.get(certFolder,"/keystore/ea2db84973c9c54436c47d7e10b9b63420f654ecd7c541fab14646e976294393_sk")); }catch (Exceptione) {returnnull; } }@OverridepublicStringgetCert() {try {returnnewString(Files.readAllBytes(Paths.get(certFolder,"/signcerts/Admin@org1.example.com-cert.pem"))); }catch (Exceptione) {return""; } } }; }//测试代码所以固定写死相关的MSPID@OverridepublicStringgetMspId() {return"Org1MSP"; }/*** * 实现加载证书服务 */publicstaticPrivateKeyloadPrivateKey(PathfileName)throwsIOException,GeneralSecurityException {PrivateKeykey =null;InputStreamis =null;try {is =newFileInputStream(fileName.toString());BufferedReaderbr =newBufferedReader(newInputStreamReader(is));StringBuilderbuilder =newStringBuilder();booleaninKey =false;for (Stringline =br.readLine();line !=null;line =br.readLine()) {if (!inKey) {if (line.startsWith("-----BEGIN ") &&line.endsWith(" PRIVATE KEY-----")) {inKey =true; }continue; }else {if (line.startsWith("-----END ") &&line.endsWith(" PRIVATE KEY-----")) {inKey =false;break; }builder.append(line); } }//byte[]encoded =DatatypeConverter.parseBase64Binary(builder.toString());PKCS8EncodedKeySpeckeySpec =newPKCS8EncodedKeySpec(encoded);KeyFactorykf =KeyFactory.getInstance("ECDSA");key =kf.generatePrivate(keySpec); }finally {is.close(); }returnkey; }}
如果觉得所给测试用例代码不够明确,可以参考官方网站此处的代码示例本代码只是将官方代码进行简化方便做实验以及测试。
About
Fabric JAVA SDK测试样例
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published