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

Commit0f84a27

Browse files
committed
add CA Server Support
1 parentd53d8c7 commit0f84a27

File tree

7 files changed

+395
-2
lines changed

7 files changed

+395
-2
lines changed

‎pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<dependency>
3030
<groupId>org.hyperledger.fabric-sdk-java</groupId>
3131
<artifactId>fabric-sdk-java</artifactId>
32-
<version>1.0.1</version>
32+
<version>1.0.0</version>
3333
</dependency>
3434
</dependencies>
3535
<build>
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
packageijarvis.intelliq.FabricCA;
2+
3+
importijarvis.intelliq.Fabric.FabricApp;
4+
importijarvis.intelliq.Fabric.SampleUser;
5+
importorg.apache.log4j.Logger;
6+
importorg.hyperledger.fabric.sdk.*;
7+
importorg.hyperledger.fabric.sdk.exception.CryptoException;
8+
importorg.hyperledger.fabric.sdk.exception.InvalidArgumentException;
9+
importorg.hyperledger.fabric.sdk.security.CryptoSuite;
10+
11+
importjava.util.Collection;
12+
13+
publicclassFabricCAApp {
14+
privatestaticLoggerlogger=Logger.getLogger(FabricCAApp.class);
15+
publicstaticHFClientclient=null;
16+
publicstaticCryptoSuitecs =CryptoSuite.Factory.getCryptoSuite();
17+
publicstaticvoidinit(UserCAUSER)throwsCryptoException,InvalidArgumentException {
18+
client =HFClient.createNewInstance();
19+
client.setCryptoSuite(cs);
20+
client.setUserContext(CAUSER);
21+
}
22+
/*
23+
* 实现根绝给定的Key查询数据
24+
* */
25+
publicstaticvoidqueryFabcar(Channelchannel,Stringkey)throwsException {
26+
QueryByChaincodeRequestreq =client.newQueryProposalRequest();
27+
ChaincodeIDcid =ChaincodeID.newBuilder().setName("epointchaincodezzk").setVersion("0.1").build();
28+
req.setChaincodeID(cid);
29+
req.setFcn("query");
30+
req.setArgs(newString[] {key });
31+
System.out.println("Querying for " +key);
32+
Collection<ProposalResponse>resps =channel.queryByChaincode(req);
33+
for (ProposalResponseresp :resps) {
34+
Stringpayload =newString(resp.getChaincodeActionResponsePayload());
35+
System.out.println("response: " +payload);
36+
}
37+
}
38+
}
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
packageijarvis.intelliq.FabricCA;
2+
3+
importorg.hyperledger.fabric.sdk.Peer;
4+
importorg.hyperledger.fabric.sdk.User;
5+
importorg.hyperledger.fabric_ca.sdk.HFCAClient;
6+
7+
importjava.util.*;
8+
9+
/*
10+
* 从官方的Fabric-SDK的test代码中抽象出来的描述fabric组织机构的Bean对象
11+
*/
12+
13+
/**
14+
* Sample Organization Representation
15+
*
16+
* Keeps track which resources are defined for the Organization it represents.
17+
*
18+
*/
19+
publicclassSampleOrg {
20+
finalStringname;
21+
finalStringmspid;
22+
HFCAClientcaClient;
23+
24+
Map<String,User>userMap =newHashMap<>();
25+
Map<String,String>peerLocations =newHashMap<>();
26+
Map<String,String>ordererLocations =newHashMap<>();
27+
Map<String,String>eventHubLocations =newHashMap<>();
28+
Set<Peer>peers =newHashSet<>();
29+
privateSampleUseradmin;
30+
privateStringcaLocation;
31+
privatePropertiescaProperties =null;
32+
33+
privateSampleUserpeerAdmin;
34+
35+
36+
privateStringdomainName;
37+
38+
publicSampleOrg(Stringname,Stringmspid) {
39+
this.name =name;
40+
this.mspid =mspid;
41+
}
42+
43+
publicSampleUsergetAdmin() {
44+
returnadmin;
45+
}
46+
47+
publicvoidsetAdmin(SampleUseradmin) {
48+
this.admin =admin;
49+
}
50+
51+
publicStringgetMSPID() {
52+
returnmspid;
53+
}
54+
55+
publicStringgetCALocation() {
56+
returnthis.caLocation;
57+
}
58+
59+
publicvoidsetCALocation(StringcaLocation) {
60+
this.caLocation =caLocation;
61+
}
62+
63+
publicvoidaddPeerLocation(Stringname,Stringlocation) {
64+
65+
peerLocations.put(name,location);
66+
}
67+
68+
publicvoidaddOrdererLocation(Stringname,Stringlocation) {
69+
70+
ordererLocations.put(name,location);
71+
}
72+
73+
publicvoidaddEventHubLocation(Stringname,Stringlocation) {
74+
75+
eventHubLocations.put(name,location);
76+
}
77+
78+
publicStringgetPeerLocation(Stringname) {
79+
returnpeerLocations.get(name);
80+
81+
}
82+
83+
publicStringgetOrdererLocation(Stringname) {
84+
returnordererLocations.get(name);
85+
86+
}
87+
88+
publicStringgetEventHubLocation(Stringname) {
89+
returneventHubLocations.get(name);
90+
91+
}
92+
93+
publicSet<String>getPeerNames() {
94+
95+
returnCollections.unmodifiableSet(peerLocations.keySet());
96+
}
97+
98+
99+
publicSet<String>getOrdererNames() {
100+
101+
returnCollections.unmodifiableSet(ordererLocations.keySet());
102+
}
103+
104+
publicSet<String>getEventHubNames() {
105+
106+
returnCollections.unmodifiableSet(eventHubLocations.keySet());
107+
}
108+
109+
publicHFCAClientgetCAClient() {
110+
111+
returncaClient;
112+
}
113+
114+
publicvoidsetCAClient(HFCAClientcaClient) {
115+
116+
this.caClient =caClient;
117+
}
118+
119+
publicStringgetName() {
120+
returnname;
121+
}
122+
123+
publicvoidaddUser(SampleUseruser) {
124+
userMap.put(user.getName(),user);
125+
}
126+
127+
publicUsergetUser(Stringname) {
128+
returnuserMap.get(name);
129+
}
130+
131+
publicCollection<String>getOrdererLocations() {
132+
returnCollections.unmodifiableCollection(ordererLocations.values());
133+
}
134+
135+
publicCollection<String>getEventHubLocations() {
136+
returnCollections.unmodifiableCollection(eventHubLocations.values());
137+
}
138+
139+
publicSet<Peer>getPeers() {
140+
returnCollections.unmodifiableSet(peers);
141+
}
142+
143+
publicvoidaddPeer(Peerpeer) {
144+
peers.add(peer);
145+
}
146+
147+
publicvoidsetCAProperties(PropertiescaProperties) {
148+
this.caProperties =caProperties;
149+
}
150+
151+
publicPropertiesgetCAProperties() {
152+
returncaProperties;
153+
}
154+
155+
156+
publicSampleUsergetPeerAdmin() {
157+
returnpeerAdmin;
158+
}
159+
160+
publicvoidsetPeerAdmin(SampleUserpeerAdmin) {
161+
this.peerAdmin =peerAdmin;
162+
}
163+
164+
publicvoidsetDomainName(StringdomainName) {
165+
this.domainName =domainName;
166+
}
167+
168+
publicStringgetDomainName() {
169+
returndomainName;
170+
}
171+
}
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
packageijarvis.intelliq.FabricCA;
2+
3+
importio.netty.util.internal.StringUtil;
4+
importorg.bouncycastle.util.encoders.Hex;
5+
importorg.hyperledger.fabric.sdk.Enrollment;
6+
importorg.hyperledger.fabric.sdk.User;
7+
8+
importjava.io.*;
9+
importjava.util.Set;
10+
11+
/*
12+
* 从官方的Fabric-SDK的test代码中抽象出来的描述fabric组织机构的Bean对象
13+
*/
14+
15+
16+
publicclassSampleUserimplementsUser,Serializable {
17+
privatestaticfinallongserialVersionUID =8077132186383604355L;
18+
privateStringname;
19+
privateSet<String>roles;
20+
privateStringaccount;
21+
privateStringaffiliation;
22+
privateStringorganization;
23+
privateStringenrollmentSecret;
24+
Enrollmentenrollment =null;//need access in test env.
25+
privateStringkeyValStoreName;
26+
27+
SampleUser(Stringname,Stringorg) {
28+
this.name =name;
29+
this.organization =org;
30+
}
31+
@Override
32+
publicStringgetName() {
33+
returnthis.name;
34+
}
35+
36+
@Override
37+
publicSet<String>getRoles() {
38+
returnthis.roles;
39+
}
40+
41+
publicvoidsetRoles(Set<String>roles) {
42+
this.roles =roles;
43+
}
44+
45+
@Override
46+
publicStringgetAccount() {
47+
returnthis.account;
48+
}
49+
50+
publicvoidsetAccount(Stringaccount) {
51+
this.account =account;
52+
}
53+
54+
@Override
55+
publicStringgetAffiliation() {
56+
returnthis.affiliation;
57+
}
58+
59+
publicvoidsetAffiliation(Stringaffiliation) {
60+
this.affiliation =affiliation;
61+
}
62+
63+
@Override
64+
publicEnrollmentgetEnrollment() {
65+
returnthis.enrollment;
66+
}
67+
68+
69+
publicbooleanisRegistered() {
70+
return !StringUtil.isNullOrEmpty(enrollmentSecret);
71+
}
72+
73+
74+
publicbooleanisEnrolled() {
75+
returnthis.enrollment !=null;
76+
}
77+
78+
publicStringgetEnrollmentSecret() {
79+
returnenrollmentSecret;
80+
}
81+
82+
publicvoidsetEnrollmentSecret(StringenrollmentSecret) {
83+
this.enrollmentSecret =enrollmentSecret;
84+
}
85+
86+
publicvoidsetEnrollment(Enrollmentenrollment) {
87+
this.enrollment =enrollment;
88+
}
89+
90+
@Override
91+
publicStringgetMspId() {
92+
returnmspId;
93+
}
94+
95+
StringmspId;
96+
97+
publicvoidsetMspId(StringmspID) {
98+
this.mspId =mspID;
99+
}
100+
101+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
packageijarvis.intelliq.FabricCA;
2+
3+
//实现初始化调用Fabric-CA模块以及Fabric
4+
5+
importorg.hyperledger.fabric.sdk.security.CryptoSuite;
6+
importorg.hyperledger.fabric_ca.sdk.HFCAClient;
7+
importorg.hyperledger.fabric_ca.sdk.exception.InvalidArgumentException;
8+
9+
importjava.net.MalformedURLException;
10+
importjava.util.HashMap;
11+
12+
publicclassTestConfigure {
13+
publicstaticHashMap<String,SampleOrg>getConfigure()throwsMalformedURLException,InvalidArgumentException {
14+
HashMap<String,SampleOrg>orgHashMap=newHashMap<>();
15+
SampleOrgorg1=newSampleOrg("org1","Org1MSP");
16+
org1.addPeerLocation("peer0org1","grpc://192.168.188.112:7051");
17+
org1.addPeerLocation("peer1org1","grpc://192.168.188.113:7051");
18+
org1.addOrdererLocation("orderer","grpc://192.168.188.111:7050");
19+
org1.setCALocation("http://192.168.188.110:7054");
20+
org1.setCAClient(HFCAClient.createNewInstance(org1.getCALocation(),null));
21+
org1.getCAClient().setCryptoSuite(CryptoSuite.Factory.getCryptoSuite());
22+
23+
24+
SampleOrgorg2=newSampleOrg("org2","Org2MSP");
25+
org2.addPeerLocation("peer0org2","grpc://192.168.188.114:7051");
26+
org2.addPeerLocation("peer1org2","grpc://192.168.188.115:7051");
27+
org2.addOrdererLocation("orderer","grpc://192.168.188.111:7050");
28+
//org2.setCALocation("http://192.168.188.110:8054");//Org2的CA模块未启用所以暂时不提供
29+
30+
31+
orgHashMap.put("org1",org1);
32+
orgHashMap.put("org2",org2);
33+
returnorgHashMap;
34+
}
35+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp