Hyperledger Fabric v.1.0.0中没有REST API,但是有Java
SDK可用于与对等方进行交互。您可以使用以下Maven依赖项来设置Java项目:
<dependency> <groupId>org.hyperledger.fabric-sdk-java</groupId> <artifactId>fabric-sdk-java</artifactId> <version>1.0.0</version></dependency>
现在,您可以使用SDK API来调用/查询您的链码:
获取HF客户端实例
final HFClient client = HFClient.createNewInstance();
为客户设置加密资料
// Set default crypto suite for HF client client.setCryptoSuite(CryptoSuite.Factory.getCryptoSuite()); client.setUserContext(new User() { public String getName() { return "testUser"; } public Set<String> getRoles() { return null; } public String getAccount() { return null; } public String getAffiliation() { return null; } public Enrollment getEnrollment() { return new Enrollment() { public PrivateKey getKey() { // Load your private key } public String getCert() { // Read client certificate } }; } public String getMspId() { return "Org1MSP"; } });现在通道配置:
final Channel channel = client.newChannel("mychannel"); channel.addOrderer(client.newOrderer("orderer0", "grpc://localhost:7050")); channel.addPeer(client.newPeer("peer0", "grpc://localhost:7051")); channel.initialize();创建交易建议:
final TransactionProposalRequest proposalRequest = client.newTransactionProposalRequest(); final ChainpreID chainpreID = ChainpreID.newBuilder() .setName("myCC") .setVersion("1.0") .setPath("github.com/yourpackage/chainpre/") .build(); proposalRequest.setChainpreID(chainpreID); proposalRequest.setFcn("fcn"); proposalRequest.setProposalWaitTime(TimeUnit.SECONDS.toMillis(10)); proposalRequest.setArgs(new String[]{"arg1", "arg2"});发送提案
final Collection<ProposalResponse> responses = channel.sendTransactionProposal(proposalRequest); CompletableFuture<BlockEvent.TransactionEvent> txFuture = channel.sendTransaction(responses, client.getUserContext()); BlockEvent.TransactionEvent event = txFuture.get(); System.out.println(event.toString());



