Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 09f676f

Browse files
committed
fix bug
1 parent af938e7 commit 09f676f

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
import static java.nio.charset.StandardCharsets.UTF_8;
44

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

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

@@ -30,13 +23,10 @@
3023
public class FabricCAApp
3124
{
3225
private static Logger logger = Logger.getLogger(FabricCAApp.class);
33-
public static String CHAINCODENAME = "epointchaincodecommon";
34-
public static String CHAINCODEVERSION = "0.1";
35-
3626
public static HFClient client = null;
3727
public static CryptoSuite cs = CryptoSuite.Factory.getCryptoSuite(); //使用的加密库
38-
public static ChaincodeID cid = ChaincodeID.newBuilder().setName(CHAINCODENAME).setVersion(CHAINCODEVERSION).build();
39-
28+
public static ChaincodeID cid = null;
29+
private static Channel CHANNEL;
4030

4131
/**
4232
*
@@ -48,27 +38,23 @@ public class FabricCAApp
4838
* @throws org.hyperledger.fabric_ca.sdk.exception.InvalidArgumentException
4939
* @throws TransactionException
5040
*/
51-
public static void init(User fabricuser,String peerUrl,String ordererUrl,String channelname) throws CryptoException, InvalidArgumentException, MalformedURLException, EnrollmentException,org.hyperledger.fabric_ca.sdk.exception.InvalidArgumentException, TransactionException {
41+
public static void init(User fabricuser,String peerUrl,String ordererUrl,String channelname,String chaincodename,String chaincodeversion) throws CryptoException, InvalidArgumentException, TransactionException {
5242
// 创建一个Client客户端
5343
client = HFClient.createNewInstance();
5444
client.setCryptoSuite(cs);
5545
client.setUserContext(fabricuser);
56-
InitChannel(peerUrl, ordererUrl, channelname);
57-
}
58-
59-
private static Channel CHANNEL;
60-
/**
61-
* 初使化通道,因为一个节点可以加入到多个通道中
62-
*/
63-
public static void InitChannel(String peerUrl, String ordererUrl,String channelname)throws InvalidArgumentException, TransactionException {
64-
CHANNEL = FabricCAApp.client.newChannel(channelname);
46+
CHANNEL = FabricCAApp.client.newChannel(channelname);
6547
for (String item : 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(new String[] {key });
80-
// System.out.println("Querying for " + key);
8166
Collection<ProposalResponse> resps = CHANNEL.queryByChaincode(req);
82-
8367
for (ProposalResponse resp : resps) {
8468
String payload = new String(resp.getChaincodeActionResponsePayload());
8569
logger.debug("response: " + payload);
@@ -91,7 +75,7 @@ public static String querykv(String key) throws Exception {
9175
/**
9276
* 调用链码添加KV结构
9377
*/
94-
public static boolean addKV(String key, String value) throws ProposalException, InvalidArgumentException {
78+
public static boolean addKV(String key, String value) throws ProposalException, InvalidArgumentException, IOException, ChaincodeEndorsementPolicyParseException {
9579
TransactionProposalRequest req = 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 (ProposalResponse resp : resps) {
10995
String payload = new String(resp.getChaincodeActionResponsePayload());
11096
logger.debug("response: " + payload);
11197
}
98+
11299
CHANNEL.sendTransaction(resps);
113100
return true;
114101
}
115-
116102
/**
117103
* 调用链码更新
118104
*/
119-
public static void updateKV(String key, String value)
120-
throws ProposalException, InvalidArgumentException {
105+
public static void updateKV(String key, String value) throws ProposalException, InvalidArgumentException {
121106
TransactionProposalRequest req = 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+
package ijarvis.intelliq.Fabric;
2+
3+
import org.apache.log4j.Logger;
4+
import org.hyperledger.fabric.protos.common.MspPrincipal;
5+
import org.hyperledger.fabric.protos.common.Policies;
6+
import org.hyperledger.fabric.sdk.ChaincodeEndorsementPolicy;
7+
import org.hyperledger.fabric.sdk.exception.ChaincodeEndorsementPolicyParseException;
8+
import org.junit.Test;
9+
10+
import java.io.File;
11+
import java.io.IOException;
12+
import java.util.List;
13+
14+
/**
15+
* 链码背书策略测试
16+
*/
17+
18+
19+
public class ChaincodeEndorsementPolicyTest {
20+
private static Logger logger=Logger.getLogger(ChaincodeEndorsementPolicyTest.class);
21+
22+
23+
@Test
24+
public void TestLoadFromYaml() throws IOException, ChaincodeEndorsementPolicyParseException {
25+
26+
ChaincodeEndorsementPolicy chaincodeEndorsementPolicy = new ChaincodeEndorsementPolicy();
27+
chaincodeEndorsementPolicy.fromYamlFile(new File("/Users/ijarvis/IdeaProjects/FabricJavaSDKExamples/src/test/resources/chaincodeendorsementpolicy.yaml"));
28+
Policies.SignaturePolicyEnvelope sigPolEnv = Policies.SignaturePolicyEnvelope.parseFrom(chaincodeEndorsementPolicy.getChaincodeEndorsementPolicyAsBytes());
29+
List<MspPrincipal.MSPPrincipal> identitiesList = sigPolEnv.getIdentitiesList();
30+
31+
for (MspPrincipal.MSPPrincipal ident : 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
public class FabricAppTestCaseWithCA {
1515
private static Logger logger=Logger.getLogger(FabricAppTestCaseWithCA.class);
1616
//LedgeVersion1 和 LedgeVersion2 是账本中实际记录的数据
17-
private static LedgerRecord LedgeVersion1=new LedgerRecord("liuwenru","基础设置支持部");
18-
private static LedgerRecord LedgeVersion2=new LedgerRecord("liuwenru","创新技术研究中心");
17+
private static LedgerRecord LedgeVersion1=new LedgerRecord("epoint1","test1111111233333333223231");
18+
private static LedgerRecord LedgeVersion2=new LedgerRecord("epoint1","test2");
1919
private static SampleUserCA peeruser=null;
2020

2121
// 构建测试环境
2222
@Before
2323
public void setup() throws MalformedURLException, InvalidArgumentException, EnrollmentException, CryptoException, org.hyperledger.fabric.sdk.exception.InvalidArgumentException, TransactionException {
2424
peeruser=new SampleUserCA(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
public void TestEpointChainCodeAddKV()throws Exception{

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-
public static String CHAINCODENAME="epointchaincodecommon3"; // 当前的链码名称
27+
public static String CHAINCODENAME="epointchaincodecommon10"; // 当前的链码名称
2828
public static String CHAINCODEVERSION="0.1"; // 当前的链码版本
2929
public static String CHANNELNAME="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/[email protected]

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/[email protected]

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)