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

Commit09f676f

Browse files
committed
fix bug
1 parentaf938e7 commit09f676f

File tree

108 files changed

+91
-1270
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+91
-1270
lines changed

‎pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
<modelVersion>4.0.0</modelVersion>
44

55
<groupId>ijarvis.intelliq</groupId>
6-
<artifactId>FabricExample</artifactId>
6+
<artifactId>FabricJavaSDKExample</artifactId>
77
<version>1.0-SNAPSHOT</version>
88

99
<packaging>jar</packaging>
1010

11-
<name>FabricExample</name>
11+
<name>FabricJavaSDKExample</name>
1212
<url>http://maven.apache.org</url>
1313

1414
<properties>
@@ -29,7 +29,7 @@
2929
<dependency>
3030
<groupId>org.hyperledger.fabric-sdk-java</groupId>
3131
<artifactId>fabric-sdk-java</artifactId>
32-
<version>1.0.0</version>
32+
<version>1.0.1</version>
3333
</dependency>
3434
</dependencies>
3535
<build>

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

Lines changed: 21 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,16 @@
22

33
importstaticjava.nio.charset.StandardCharsets.UTF_8;
44

5+
importjava.io.File;
6+
importjava.io.IOException;
57
importjava.net.MalformedURLException;
68
importjava.util.Collection;
79
importjava.util.HashMap;
810
importjava.util.Map;
911

1012
importorg.apache.log4j.Logger;
11-
importorg.hyperledger.fabric.sdk.ChaincodeID;
12-
importorg.hyperledger.fabric.sdk.Channel;
13-
importorg.hyperledger.fabric.sdk.HFClient;
14-
importorg.hyperledger.fabric.sdk.ProposalResponse;
15-
importorg.hyperledger.fabric.sdk.QueryByChaincodeRequest;
16-
importorg.hyperledger.fabric.sdk.TransactionProposalRequest;
17-
importorg.hyperledger.fabric.sdk.User;
18-
importorg.hyperledger.fabric.sdk.exception.CryptoException;
19-
importorg.hyperledger.fabric.sdk.exception.InvalidArgumentException;
20-
importorg.hyperledger.fabric.sdk.exception.ProposalException;
21-
importorg.hyperledger.fabric.sdk.exception.TransactionException;
13+
importorg.hyperledger.fabric.sdk.*;
14+
importorg.hyperledger.fabric.sdk.exception.*;
2215
importorg.hyperledger.fabric.sdk.security.CryptoSuite;
2316
importorg.hyperledger.fabric_ca.sdk.exception.EnrollmentException;
2417

@@ -30,13 +23,10 @@
3023
publicclassFabricCAApp
3124
{
3225
privatestaticLoggerlogger =Logger.getLogger(FabricCAApp.class);
33-
publicstaticStringCHAINCODENAME ="epointchaincodecommon";
34-
publicstaticStringCHAINCODEVERSION ="0.1";
35-
3626
publicstaticHFClientclient =null;
3727
publicstaticCryptoSuitecs =CryptoSuite.Factory.getCryptoSuite();//使用的加密库
38-
publicstaticChaincodeIDcid =ChaincodeID.newBuilder().setName(CHAINCODENAME).setVersion(CHAINCODEVERSION).build();
39-
28+
publicstaticChaincodeIDcid =null;
29+
privatestaticChannelCHANNEL;
4030

4131
/**
4232
*
@@ -48,27 +38,23 @@ public class FabricCAApp
4838
* @throws org.hyperledger.fabric_ca.sdk.exception.InvalidArgumentException
4939
* @throws TransactionException
5040
*/
51-
publicstaticvoidinit(Userfabricuser,StringpeerUrl,StringordererUrl,Stringchannelname)throwsCryptoException,InvalidArgumentException,MalformedURLException,EnrollmentException,org.hyperledger.fabric_ca.sdk.exception.InvalidArgumentException,TransactionException {
41+
publicstaticvoidinit(Userfabricuser,StringpeerUrl,StringordererUrl,Stringchannelname,Stringchaincodename,Stringchaincodeversion)throwsCryptoException,InvalidArgumentException,TransactionException {
5242
// 创建一个Client客户端
5343
client =HFClient.createNewInstance();
5444
client.setCryptoSuite(cs);
5545
client.setUserContext(fabricuser);
56-
InitChannel(peerUrl,ordererUrl,channelname);
57-
}
58-
59-
privatestaticChannelCHANNEL;
60-
/**
61-
* 初使化通道,因为一个节点可以加入到多个通道中
62-
*/
63-
publicstaticvoidInitChannel(StringpeerUrl,StringordererUrl,Stringchannelname)throwsInvalidArgumentException,TransactionException {
64-
CHANNEL =FabricCAApp.client.newChannel(channelname);
46+
CHANNEL =FabricCAApp.client.newChannel(channelname);
6547
for (Stringitem :peerUrl.split(","))
66-
CHANNEL.addPeer(FabricCAApp.client.newPeer("peer",item));
67-
48+
CHANNEL.addPeer(FabricCAApp.client.newPeer("peer",item));
6849
CHANNEL.addOrderer(FabricCAApp.client.newOrderer("orderer",ordererUrl));
50+
51+
cid=ChaincodeID.newBuilder().setName(chaincodename).setVersion(chaincodeversion).build();
6952
CHANNEL.initialize();
7053
}
7154

55+
56+
57+
7258
/**
7359
* 实现根绝给定的Key查询数据
7460
*/
@@ -77,9 +63,7 @@ public static String querykv(String key) throws Exception {
7763
req.setChaincodeID(cid);
7864
req.setFcn("query");
7965
req.setArgs(newString[] {key });
80-
// System.out.println("Querying for " + key);
8166
Collection<ProposalResponse>resps =CHANNEL.queryByChaincode(req);
82-
8367
for (ProposalResponseresp :resps) {
8468
Stringpayload =newString(resp.getChaincodeActionResponsePayload());
8569
logger.debug("response: " +payload);
@@ -91,7 +75,7 @@ public static String querykv(String key) throws Exception {
9175
/**
9276
* 调用链码添加KV结构
9377
*/
94-
publicstaticbooleanaddKV(Stringkey,Stringvalue)throwsProposalException,InvalidArgumentException {
78+
publicstaticbooleanaddKV(Stringkey,Stringvalue)throwsProposalException,InvalidArgumentException,IOException,ChaincodeEndorsementPolicyParseException {
9579
TransactionProposalRequestreq =client.newTransactionProposalRequest();
9680
req.setChaincodeID(cid);
9781
req.setFcn("addkv");
@@ -102,22 +86,23 @@ public static boolean addKV(String key, String value) throws ProposalException,
10286
tm2.put("method","TransactionProposalRequest".getBytes(UTF_8));
10387
tm2.put("result",":)".getBytes(UTF_8));
10488
req.setTransientMap(tm2);
105-
89+
//TODO 链码调用策略指定说明
90+
//ChaincodeEndorsementPolicy chaincodeEndorsementPolicy = new ChaincodeEndorsementPolicy();
91+
//chaincodeEndorsementPolicy.fromYamlFile(new File("/Users/ijarvis/IdeaProjects/FabricJavaSDKExamples/src/test/resources/chaincodeendorsementpolicy.yaml"));
92+
//req.setChaincodeEndorsementPolicy(chaincodeEndorsementPolicy);
10693
Collection<ProposalResponse>resps =CHANNEL.sendTransactionProposal(req);
107-
10894
for (ProposalResponseresp :resps) {
10995
Stringpayload =newString(resp.getChaincodeActionResponsePayload());
11096
logger.debug("response: " +payload);
11197
}
98+
11299
CHANNEL.sendTransaction(resps);
113100
returntrue;
114101
}
115-
116102
/**
117103
* 调用链码更新
118104
*/
119-
publicstaticvoidupdateKV(Stringkey,Stringvalue)
120-
throwsProposalException,InvalidArgumentException {
105+
publicstaticvoidupdateKV(Stringkey,Stringvalue)throwsProposalException,InvalidArgumentException {
121106
TransactionProposalRequestreq =client.newTransactionProposalRequest();
122107
req.setChaincodeID(cid);
123108
req.setFcn("updatekv");
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
packageijarvis.intelliq.Fabric;
2+
3+
importorg.apache.log4j.Logger;
4+
importorg.hyperledger.fabric.protos.common.MspPrincipal;
5+
importorg.hyperledger.fabric.protos.common.Policies;
6+
importorg.hyperledger.fabric.sdk.ChaincodeEndorsementPolicy;
7+
importorg.hyperledger.fabric.sdk.exception.ChaincodeEndorsementPolicyParseException;
8+
importorg.junit.Test;
9+
10+
importjava.io.File;
11+
importjava.io.IOException;
12+
importjava.util.List;
13+
14+
/**
15+
* 链码背书策略测试
16+
*/
17+
18+
19+
publicclassChaincodeEndorsementPolicyTest {
20+
privatestaticLoggerlogger=Logger.getLogger(ChaincodeEndorsementPolicyTest.class);
21+
22+
23+
@Test
24+
publicvoidTestLoadFromYaml()throwsIOException,ChaincodeEndorsementPolicyParseException {
25+
26+
ChaincodeEndorsementPolicychaincodeEndorsementPolicy =newChaincodeEndorsementPolicy();
27+
chaincodeEndorsementPolicy.fromYamlFile(newFile("/Users/ijarvis/IdeaProjects/FabricJavaSDKExamples/src/test/resources/chaincodeendorsementpolicy.yaml"));
28+
Policies.SignaturePolicyEnvelopesigPolEnv =Policies.SignaturePolicyEnvelope.parseFrom(chaincodeEndorsementPolicy.getChaincodeEndorsementPolicyAsBytes());
29+
List<MspPrincipal.MSPPrincipal>identitiesList =sigPolEnv.getIdentitiesList();
30+
31+
for (MspPrincipal.MSPPrincipalident :identitiesList) {
32+
logger.debug(ident.toString());
33+
}
34+
}
35+
36+
37+
38+
}

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,19 @@
1414
publicclassFabricAppTestCaseWithCA {
1515
privatestaticLoggerlogger=Logger.getLogger(FabricAppTestCaseWithCA.class);
1616
//LedgeVersion1 和 LedgeVersion2 是账本中实际记录的数据
17-
privatestaticLedgerRecordLedgeVersion1=newLedgerRecord("liuwenru","基础设置支持部");
18-
privatestaticLedgerRecordLedgeVersion2=newLedgerRecord("liuwenru","创新技术研究中心");
17+
privatestaticLedgerRecordLedgeVersion1=newLedgerRecord("epoint1","test1111111233333333223231");
18+
privatestaticLedgerRecordLedgeVersion2=newLedgerRecord("epoint1","test2");
1919
privatestaticSampleUserCApeeruser=null;
2020

2121
// 构建测试环境
2222
@Before
2323
publicvoidsetup()throwsMalformedURLException,InvalidArgumentException,EnrollmentException,CryptoException,org.hyperledger.fabric.sdk.exception.InvalidArgumentException,TransactionException {
2424
peeruser=newSampleUserCA(TestConfigure.CA1PeerUserName,TestConfigure.CA1PeerUserPass,"city1MSP",TestConfigure.CA1ServerLocation);
25-
FabricCAApp.init(peeruser,TestConfigure.City1Peer0Url,TestConfigure.Orderer1Url,TestConfigure.CHANNELNAME);
25+
//全节点都发送广播策略
26+
FabricCAApp.init(peeruser,TestConfigure.City1peersUrl+","+TestConfigure.City2peersUrl,TestConfigure.Orderer1Url,TestConfigure.CHANNELNAME,TestConfigure.CHAINCODENAME,TestConfigure.CHAINCODEVERSION);
27+
28+
//只发送单个节点策略
29+
//FabricCAApp.init(peeruser, TestConfigure.City1Peer1Url, TestConfigure.Orderer1Url, TestConfigure.CHANNELNAME,TestConfigure.CHAINCODENAME,TestConfigure.CHAINCODEVERSION);
2630
}
2731
@Test
2832
publicvoidTestEpointChainCodeAddKV()throwsException{

‎src/test/java/ijarvis/intelliq/TestConfigure.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class TestConfigure {
2424

2525

2626
//TODO 需要调研一下如果通过代码获取到链码名称和版本,这样以后可以选择运行指定的智能合约
27-
publicstaticStringCHAINCODENAME="epointchaincodecommon3";// 当前的链码名称
27+
publicstaticStringCHAINCODENAME="epointchaincodecommon10";// 当前的链码名称
2828
publicstaticStringCHAINCODEVERSION="0.1";// 当前的链码版本
2929
publicstaticStringCHANNELNAME="epointchannel";
3030

‎src/test/resources/FabricCAcert/caen.key

Lines changed: 0 additions & 5 deletions
This file was deleted.

‎src/test/resources/FabricCAcert/cert.pem

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#
2+
# Copyright IBM Corp. All Rights Reserved.
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
#
6+
---
7+
# A Shotgun policy xx
8+
identities:# list roles to be used in the policy
9+
user1:{"role": {"name": "member", "mspId": "Org1MSP"}}# role member in org with mspid Org1MSP
10+
user2:{"role": {"name": "member", "mspId": "Org2MSP"}}
11+
admin1:{"role": {"name": "admin", "mspId": "Org1MSP"}}# admin role.
12+
admin2:{"role": {"name": "admin", "mspId": "Org2MSP"}}
13+
14+
policy:# the policy .. could have been flat but show grouping.
15+
# 1-of: # signed by one of these groups can be <n>-of where <n> is any digit 2-of, 3-of etc..
16+
# - 1-of:
17+
# - signed-by: "user1" # a reference to one of the identities defined above.
18+
# - signed-by: "admin1"
19+
# - 1-of:
20+
# - signed-by: "user2"
21+
# - signed-by: "admin2"

‎src/test/resources/crypto-config/ordererOrganizations/example.com/ca/31f543b6921c48f1bcc26b751c48383592b8452d23a746a1986b6d0469bb617c_sk

Lines changed: 0 additions & 5 deletions
This file was deleted.

‎src/test/resources/crypto-config/ordererOrganizations/example.com/ca/ca.example.com-cert.pem

Lines changed: 0 additions & 14 deletions
This file was deleted.

‎src/test/resources/crypto-config/ordererOrganizations/example.com/msp/admincerts/Admin@example.com-cert.pem

Lines changed: 0 additions & 13 deletions
This file was deleted.

‎src/test/resources/crypto-config/ordererOrganizations/example.com/msp/cacerts/ca.example.com-cert.pem

Lines changed: 0 additions & 14 deletions
This file was deleted.

‎src/test/resources/crypto-config/ordererOrganizations/example.com/msp/tlscacerts/tlsca.example.com-cert.pem

Lines changed: 0 additions & 14 deletions
This file was deleted.

‎src/test/resources/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/admincerts/Admin@example.com-cert.pem

Lines changed: 0 additions & 13 deletions
This file was deleted.

‎src/test/resources/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem

Lines changed: 0 additions & 14 deletions
This file was deleted.

‎src/test/resources/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/keystore/f2c87360bb9e2cd7d0fba29d6f91c2fe0e2787ab5353e7a1e7f3167ad56c44aa_sk

Lines changed: 0 additions & 5 deletions
This file was deleted.

‎src/test/resources/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/signcerts/orderer.example.com-cert.pem

Lines changed: 0 additions & 13 deletions
This file was deleted.

‎src/test/resources/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp