Fabric-sdk-java尝试编写自己的调用逻辑
2019-03-12 本文已影响0人
Tan_Cc
前期准备
1.将Aberic整合的代码加到原来的项目中
具体代码解析就不多详述了,链接的博客上都有
遇到的一点点问题这里也记录一下
- 有部分代码需要注意安全性问题——需要添加try-catch语句
2.将FabricManager类添加入项目
这里说一下自己遇到的一些问题:
- 导入lombok,就是安装一个插件再在pom文件添加依赖
- 还要在slf4j的依赖,否则debug会报红
开始尝试
- 编写一个小测试类
public class FabricManagerTest {
@Test
public void test1() throws IOException, NoSuchAlgorithmException, InvocationTargetException, NoSuchMethodException, InstantiationException, InvalidKeySpecException, CryptoException, InvalidArgumentException, IllegalAccessException, NoSuchProviderException, TransactionException, ClassNotFoundException, InterruptedException, ExecutionException, TimeoutException, ProposalException {
ChaincodeManager manager = FabricManager.obtain().getManager();
String fcn = "move" ;
String[] arguments = new String[]{"a","b","200"}; manager.invoke(fcn, arguments);
fcn = "query" ;
arguments = new String[]{"b"};
manager.query(fcn, arguments);}
}
- 修改FabricManager配置,因为我所有的东西都在本机中,所以全部都是localhost
config.setChaincode(getChaincode("foo", "example_cc_go", "github.com/example_cc", "1"));
orderer.setOrdererDomainName("example.com");
orderer.addOrderer("orderer.example.com", "grpc://localhost:7050");
peers.setOrgName("org1");
peers.setOrgMSPID("org1MSP");
peers.setOrgDomainName("org1.example.com");
peers.addPeer("peer0.org1.example.com", "peer0.org1.example.com", "grpc://localhost:7051", "grpc://localhost:7053", "http://localhost:7054");
-
把证书和通道配置文件等复制到本地环境
这里我自己用工具重新生成了证书和配置文件,然后放到了这个位置
image.png
这里说说期间遇到的问题:
在生成orderer.block的时候出现了报错——说什么 anchor “applicationcapabilities1_2” 不能识别大概是这个意思
解决办法:我把configtx.yaml文件复制了一份放至到我新建的v1.1文件中,并把configtx.yaml文件里的这两块内容删掉就可以了

- 启动Fabric网络
- 调用测试类,然后报错。。。。
org.hyperledger.fabric.sdk.exception.ProposalException: org.hyperledger.fabric.sdk.exception.TransactionException: org.hyperledger.fabric.sdk.exception.ProposalException: getConfigBlock for channel foo failed with peer peer0.org1.example.com. Status FAILURE, details: Sending proposal to peer0.org1.example.com failed because of: gRPC failure=Status{code=UNKNOWN, description=access denied: channel [foo] creator org [org1MSP], cause=null}
暂时不能解决。。