Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit17ff75e

Browse files
committed
fix bug
1 parentd4b5bcd commit17ff75e

File tree

8 files changed

+116
-102
lines changed

8 files changed

+116
-102
lines changed

‎src/main/java/ijarvis/intelliq/Fabric/FabricApp.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
packageijarvis.intelliq.Fabric;
22

3-
importijarvis.intelliq.FabricCA.SampleUserCA;
43
importijarvis.intelliq.LedgerRecord;
54
importorg.apache.log4j.Logger;
65
importorg.hyperledger.fabric.sdk.*;
@@ -24,7 +23,7 @@ public class FabricApp{
2423
publicstaticHFClientclient=null;
2524
publicstaticCryptoSuitecs =CryptoSuite.Factory.getCryptoSuite();
2625
publicstaticHashMap<String,SampleOrg>orgHashMap=null;
27-
publicstaticChaincodeIDcid =ChaincodeID.newBuilder().setName(ijarvis.intelliq.FabricCA.TestConfigure.CHAINCODENAME).setVersion(ijarvis.intelliq.FabricCA.TestConfigure.CHAINCODEVERSION).build();
26+
publicstaticChaincodeIDcid =ChaincodeID.newBuilder().setName(ijarvis.intelliq.TestConfigure.CHAINCODENAME).setVersion(ijarvis.intelliq.TestConfigure.CHAINCODEVERSION).build();
2827
publicstaticUserpeer0org1=null;
2928
/**
3029
* 初始化超级账本的客户端等相关属性

‎src/main/java/ijarvis/intelliq/FabricCA/FabricCAApp.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
packageijarvis.intelliq.FabricCA;
2+
/**
3+
* 负责实际测试时干活的类,负责调用链上的链码
4+
*/
5+
26

3-
importijarvis.intelliq.Fabric.FabricApp;
4-
importijarvis.intelliq.Fabric.SampleUser;
57
importijarvis.intelliq.LedgerRecord;
8+
importijarvis.intelliq.TestConfigure;
69
importorg.apache.log4j.Logger;
710
importorg.hyperledger.fabric.sdk.*;
811
importorg.hyperledger.fabric.sdk.exception.CryptoException;
@@ -50,6 +53,7 @@ public static void addKV(Channel channel, LedgerRecord record) throws ProposalEx
5053
logger.debug("response: " +payload);
5154
}
5255
channel.sendTransaction(resps);
56+
5357
}
5458
/**
5559
* 调用链码更新

‎src/main/java/ijarvis/intelliq/FabricCA/SampleOrg.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,7 @@ public class SampleOrg {
2929
privateSampleUseradmin;
3030
privateStringcaLocation;
3131
privatePropertiescaProperties =null;
32-
3332
privateSampleUserpeerAdmin;
34-
35-
3633
privateStringdomainName;
3734

3835
publicSampleOrg(Stringname,Stringmspid) {
Lines changed: 48 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,84 @@
11
packageijarvis.intelliq.FabricCA;
22

3+
importijarvis.intelliq.TestConfigure;
34
importorg.hyperledger.fabric.sdk.Enrollment;
45
importorg.hyperledger.fabric.sdk.User;
6+
importorg.hyperledger.fabric.sdk.security.CryptoSuite;
7+
importorg.hyperledger.fabric_ca.sdk.HFCAClient;
8+
importorg.hyperledger.fabric_ca.sdk.HFCAEnrollment;
9+
importorg.hyperledger.fabric_ca.sdk.exception.EnrollmentException;
10+
importorg.hyperledger.fabric_ca.sdk.exception.InvalidArgumentException;
511

6-
importjavax.xml.bind.DatatypeConverter;
7-
importjava.io.*;
8-
importjava.nio.file.Files;
9-
importjava.nio.file.Path;
10-
importjava.nio.file.Paths;
11-
importjava.security.GeneralSecurityException;
12-
importjava.security.KeyFactory;
13-
importjava.security.PrivateKey;
14-
importjava.security.spec.PKCS8EncodedKeySpec;
15-
importjava.util.HashSet;
12+
importjava.net.MalformedURLException;
1613
importjava.util.Set;
1714

1815
publicclassSampleUserCAimplementsUser {
19-
20-
privatefinalStringcertFolder;
21-
privatefinalStringuserName;
22-
privateStringkeyname;
23-
privateStringcert;
24-
25-
publicSampleUserCA(StringcertFolder,StringuserName) {
26-
this.certFolder =certFolder;
16+
privateStringuserName="";
17+
privateStringuserPass="";
18+
privateStringMSPID="";
19+
privateEnrollmentenrollment;
20+
publicSampleUserCA(StringuserName,StringuserPass,StringMSPID)throwsMalformedURLException,InvalidArgumentException,EnrollmentException {
2721
this.userName =userName;
22+
this.userPass =userPass;
23+
this.MSPID =MSPID;
24+
//调用Fabric的接口获取到注册用户的证书信息
25+
HFCAClientclient=HFCAClient.createNewInstance("epointca",TestConfigure.Fabric_CA_Server,null);
26+
client.setCryptoSuite(CryptoSuite.Factory.getCryptoSuite());
27+
this.enrollment=client.enroll(this.userName,this.userPass);
28+
2829
}
2930

3031
@Override
3132
publicStringgetName() {
32-
returnuserName;
33+
returnthis.userName;
3334
}
3435

3536
@Override
3637
publicSet<String>getRoles() {
37-
returnnewHashSet<String>();
38+
returnnull;
3839
}
3940

4041
@Override
4142
publicStringgetAccount() {
42-
return"";
43+
returnnull;
4344
}
4445

4546
@Override
4647
publicStringgetAffiliation() {
47-
return"";
48+
returnnull;
4849
}
4950

5051
@Override
5152
publicEnrollmentgetEnrollment() {
52-
returnnewEnrollment() {
53-
54-
@Override
55-
publicPrivateKeygetKey() {
56-
try {
57-
returnloadPrivateKey(Paths.get(certFolder,"/caen.key"));
58-
}catch (Exceptione) {
59-
returnnull;
60-
}
61-
}
62-
@Override
63-
publicStringgetCert() {
64-
try {
65-
returnnewString(Files.readAllBytes(Paths.get(certFolder,"/cert.pem")));
66-
}catch (Exceptione) {
67-
return"";
68-
}
69-
}
70-
};
53+
returnthis.enrollment;
7154
}
7255

7356
@Override
7457
publicStringgetMspId() {
75-
return"Org1MSP";
58+
returnthis.MSPID;
7659
}
77-
/***
78-
* loading private key from .pem-formatted file, ECDSA algorithm
79-
* (from some example on StackOverflow, slightly changed)
80-
* @param fileName - file with the key
81-
* @return Private Key usable
82-
* @throws IOException
83-
* @throws GeneralSecurityException
84-
*/
85-
publicstaticPrivateKeyloadPrivateKey(PathfileName)throwsIOException,GeneralSecurityException {
86-
PrivateKeykey =null;
87-
InputStreamis =null;
88-
try {
89-
is =newFileInputStream(fileName.toString());
90-
BufferedReaderbr =newBufferedReader(newInputStreamReader(is));
91-
StringBuilderbuilder =newStringBuilder();
92-
booleaninKey =false;
93-
for (Stringline =br.readLine();line !=null;line =br.readLine()) {
94-
if (!inKey) {
95-
if (line.startsWith("-----BEGIN ") &&line.endsWith(" PRIVATE KEY-----")) {
96-
inKey =true;
97-
}
98-
continue;
99-
}else {
100-
if (line.startsWith("-----END ") &&line.endsWith(" PRIVATE KEY-----")) {
101-
inKey =false;
102-
break;
103-
}
104-
builder.append(line);
105-
}
106-
}
107-
//
108-
byte[]encoded =DatatypeConverter.parseBase64Binary(builder.toString());
109-
PKCS8EncodedKeySpeckeySpec =newPKCS8EncodedKeySpec(encoded);
110-
KeyFactorykf =KeyFactory.getInstance("ECDSA");
111-
key =kf.generatePrivate(keySpec);
112-
}finally {
113-
is.close();
114-
}
115-
returnkey;
60+
61+
publicStringgetUserName() {
62+
returnuserName;
63+
}
64+
65+
publicvoidsetUserName(StringuserName) {
66+
this.userName =userName;
67+
}
68+
69+
publicStringgetUserPass() {
70+
returnuserPass;
71+
}
72+
73+
publicvoidsetUserPass(StringuserPass) {
74+
this.userPass =userPass;
75+
}
76+
77+
publicStringgetMSPID() {
78+
returnMSPID;
79+
}
80+
81+
publicvoidsetMSPID(StringMSPID) {
82+
this.MSPID =MSPID;
11683
}
11784
}

‎src/main/java/ijarvis/intelliq/FabricCA/TestConfigure.javarenamed to‎src/main/java/ijarvis/intelliq/TestConfigure.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
packageijarvis.intelliq.FabricCA;
1+
packageijarvis.intelliq;
22

33
/**
44
* 实现初始化调用Fabric-CA模块以及Fabric
@@ -8,6 +8,7 @@
88

99

1010

11+
importijarvis.intelliq.FabricCA.SampleOrg;
1112
importorg.hyperledger.fabric.sdk.security.CryptoSuite;
1213
importorg.hyperledger.fabric_ca.sdk.HFCAClient;
1314
importorg.hyperledger.fabric_ca.sdk.exception.InvalidArgumentException;
@@ -16,26 +17,28 @@
1617
importjava.util.HashMap;
1718

1819
publicclassTestConfigure {
19-
publicstaticStringCHAINCODENAME="epointchaincodecommon";
20-
publicstaticStringCHAINCODEVERSION="0.1";
21-
publicstaticStringCHANNLNAME="epointchannel";
20+
publicstaticStringCHAINCODENAME="epointchaincodecommon";//链码名称
21+
publicstaticStringCHAINCODEVERSION="0.1";//链码版本
22+
publicstaticStringCHANNLNAME="epointchannel";//链码通道名称
23+
publicstaticStringFabric_CA_NAME="epoint";
24+
publicstaticStringFabric_CA_PASS="epoint";
25+
publicstaticStringFabric_CA_Server="http://192.168.186.151:7054";
2226
publicstaticHashMap<String,SampleOrg>getConfigure()throwsMalformedURLException,InvalidArgumentException {
2327
HashMap<String,SampleOrg>orgHashMap=newHashMap<>();
2428
SampleOrgorg1=newSampleOrg("city1","city1MSP");
2529
org1.addPeerLocation("peer0city1","grpc://192.168.186.153:7051");
2630
org1.addPeerLocation("peer1city1","grpc://192.168.186.154:7051");
27-
org1.addOrdererLocation("orderer","grpc://192.168.186.152:7050");
31+
org1.addOrdererLocation("orderer1","grpc://192.168.186.152:7050");
2832
org1.setCALocation("http://192.168.186.151:7054");
2933
org1.setCAClient(HFCAClient.createNewInstance(org1.getCALocation(),null));
3034
org1.getCAClient().setCryptoSuite(CryptoSuite.Factory.getCryptoSuite());
3135

3236
SampleOrgorg2=newSampleOrg("city2","city2MSP");
3337
org2.addPeerLocation("peer0city2","grpc://192.168.186.155:7051");
3438
org2.addPeerLocation("peer1city2","grpc://192.168.186.156:7051");
35-
org2.addOrdererLocation("orderer","grpc://192.168.186.152:7050");
39+
org2.addOrdererLocation("orderer1","grpc://192.168.186.152:7050");
3640
//org2.setCALocation("http://192.168.188.110:8054");//Org2的CA模块未启用所以暂时不提供
3741

38-
3942
orgHashMap.put("city1",org1);
4043
orgHashMap.put("city2",org2);
4144
returnorgHashMap;

‎src/test/java/ijarvis/intelliq/Fabric/AppTest.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
packageijarvis.intelliq.Fabric;
22

33

4-
importijarvis.intelliq.FabricCA.FabricCAApp;
5-
importijarvis.intelliq.FabricCA.TestConfigure;
4+
importijarvis.intelliq.TestConfigure;
65
importijarvis.intelliq.LedgerRecord;
76
importorg.apache.log4j.Logger;
87
importorg.hyperledger.fabric.sdk.Channel;
9-
importorg.hyperledger.fabric.sdk.exception.CryptoException;
10-
importorg.hyperledger.fabric.sdk.exception.InvalidArgumentException;
118
importorg.junit.Before;
129
importorg.junit.Ignore;
1310
importorg.junit.Test;
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
packageijarvis.intelliq.FabricCA;
2+
3+
4+
importijarvis.intelliq.LedgerRecord;
5+
importijarvis.intelliq.TestConfigure;
6+
importorg.apache.log4j.Logger;
7+
importorg.hyperledger.fabric.sdk.Channel;
8+
importorg.hyperledger.fabric.sdk.exception.CryptoException;
9+
importorg.hyperledger.fabric_ca.sdk.HFCAClient;
10+
importorg.hyperledger.fabric_ca.sdk.exception.EnrollmentException;
11+
importorg.hyperledger.fabric_ca.sdk.exception.InvalidArgumentException;
12+
importorg.junit.Before;
13+
importorg.junit.Test;
14+
15+
importjava.net.MalformedURLException;
16+
importjava.util.HashMap;
17+
18+
publicclassFabricCATestCaseWithCAServer {
19+
privatestaticLoggerlogger=Logger.getLogger(FabricCATestCaseWithCAServer.class);
20+
HashMap<String,SampleOrg>orgHashMap=newHashMap<>();
21+
privatestaticLedgerRecordPERSONINFO=newLedgerRecord("liuwenru","基础设置支持部");
22+
@Before
23+
publicvoidSetup()throwsEnrollmentException,InvalidArgumentException,CryptoException,org.hyperledger.fabric.sdk.exception.InvalidArgumentException,MalformedURLException {
24+
logger.debug("Fabric CA Test Start.......");
25+
orgHashMap=TestConfigure.getConfigure();
26+
FabricCAAppfabricCAApp=newFabricCAApp();
27+
SampleUserCAuser1=newSampleUserCA("city1user0","epoint","city1MSP");
28+
HFCAClienthfcaClient=orgHashMap.get("city1").getCAClient();
29+
FabricCAApp.init(user1);
30+
}
31+
@Test
32+
publicvoidTestEpointChainCodeAddKV()throwsException{
33+
logger.debug("链码测试........向链码中添加KV");
34+
Channelchannel =FabricCAApp.client.newChannel(TestConfigure.CHANNLNAME);
35+
channel.addPeer(FabricCAApp.client.newPeer("peer",orgHashMap.get("city1").getPeerLocation("peer0city1")));
36+
channel.addOrderer(FabricCAApp.client.newOrderer("orderer1",orgHashMap.get("city1").getOrdererLocation("orderer1")));
37+
channel.initialize();
38+
FabricCAApp.addKV(channel,PERSONINFO);
39+
}
40+
@Test
41+
publicvoidTestEpointChainCodeQuery()throwsException{
42+
logger.debug("链码测试........向链码查询key值");
43+
Channelchannel =FabricCAApp.client.newChannel(TestConfigure.CHANNLNAME);
44+
channel.addPeer(FabricCAApp.client.newPeer("peer",orgHashMap.get("city1").getPeerLocation("peer0city1")));
45+
channel.addOrderer(FabricCAApp.client.newOrderer("orderer1",orgHashMap.get("city1").getOrdererLocation("orderer1")));
46+
channel.initialize();
47+
FabricCAApp.querykv(channel,PERSONINFO.getKey());
48+
}
49+
}

‎src/test/java/ijarvis/intelliq/FabricCA/FabricCATestUseCAServer.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
packageijarvis.intelliq.FabricCA;
22

3-
importijarvis.intelliq.Fabric.FabricApp;
43
importijarvis.intelliq.LedgerRecord;
4+
importijarvis.intelliq.TestConfigure;
55
importorg.apache.log4j.Logger;
66
importorg.hyperledger.fabric.sdk.Channel;
77
importorg.hyperledger.fabric.sdk.exception.CryptoException;
8-
importorg.hyperledger.fabric.sdk.exception.TransactionException;
9-
importorg.hyperledger.fabric.sdk.security.CryptoSuite;
108
importorg.hyperledger.fabric_ca.sdk.HFCAClient;
119
importorg.hyperledger.fabric_ca.sdk.exception.EnrollmentException;
1210
importorg.hyperledger.fabric_ca.sdk.exception.InvalidArgumentException;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp