我有我的chaincode,4個同伴和一個訂購者準備就緒。我可以通過CLI查詢鏈式代碼,但是如何使用API查詢它,以及如何將其部署爲web應用程序。有人可以評論嗎?如何部署Hyperledger Fabric應用程序
1
A
回答
1
以下是轉到tutorial的文檔,其中顯示瞭如何通過Node.js SDK編寫查詢Fabric分類帳的應用程序。
3
提供了幾個SDK,因此您可以在應用程序中使用它們。
你可以選擇其中一個到你的方便,比如你在這裏,你可以如何使用Java SDK的一個簡短的例子查詢鏈碼:
// Get an instance of Hyperledger Fabric client
final HFClient client = HFClient.createNewInstance();
// Set default crypto suite for HF client
client.setCryptoSuite(CryptoSuite.Factory.getCryptoSuite());
現在您需要設置用戶內容以提供標識組織中用戶的用戶名和加密材料。
// Set user context
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;
}
// Enrollment is an interface to retrieve certificate and private key of the user in context
public Enrollment getEnrollment() {
return new Enrollment() {
public PrivateKey getKey() {
return privateKey;
}
public String getCert() {
return certificate;
}
};
}
public String getMspId() {
return "Org1MSP";
}
});
接下來需要在上下文中創建通道實例。
// Create new channel
final Channel channel = client.newChannel("mychannel");
// Setup ordering service
channel.addOrderer(client.newOrderer("orderer0", "grpc://localhost:7050"));
// COnfigure endorsing peers
channel.addPeer(client.newPeer("peer0", "grpc://localhost:7051"));
// Finally initialize the channel
channel.initialize();
最後我們準備發送交易提案。
// Create transaction request
final TransactionProposalRequest proposalRequest = client.newTransactionProposalRequest();
final ChaincodeID chaincodeID = ChaincodeID.newBuilder()
.setName("myCC")
.setVersion("1.0")
.setPath("github.com/some_package/package/chaincode/myCC")
.build();
// chaincode name
proposalRequest.setChaincodeID(chaincodeID);
// chaincode function to execute
proposalRequest.setFcn("some_function");
// timeout
proposalRequest.setProposalWaitTime(TimeUnit.SECONDS.toMillis(10));
// arguments for chaincode function
proposalRequest.setArgs(// Set arguments based on CC);
// Sending transaction proposal
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());
與其他SDK代碼看起來非常相似,在這裏你可以採取類似Go SDK example看看。
相關問題
- 1. HyperLedger-Fabric ChainCode部署 - Base64錯誤
- 2. HyperLedger-Fabric ChainCode部署給解析錯誤
- 3. Hyperledger Fabric/Hyperledger Composer
- 4. 是否可以部署使用Fabric 3.4的應用程序?
- 5. Hyperledger Fabric Node SDK的示例應用程序
- 6. hyperledger fabric tutoral - 寫入第一個應用程序錯誤
- 7. 在Windows 10上部署Service Fabric應用程序
- 8. 在沒有命令行的情況下部署Hyperledger Fabric模型
- 9. 如何在Hyperledger Fabric中實施和部署可插拔ESCC或VSCC策略?
- 10. Hyperledger Fabric 1.0 Ubuntu 16.04
- 11. Hyperledger Fabric 0.6 pbft Consensus
- 12. Hyperledger Fabric內部表實現Chaincode
- 13. Hyperledger面料部署(實際網絡)
- 14. hyperledger-面料:chaincode部署連接錯誤
- 15. Monitoring Service Fabric部署
- 16. 如何部署.Net Windows應用程序
- 17. 如何部署Scala/Akka應用程序?
- 18. 如何部署mvc應用程序
- 19. 如何部署VB6應用程序?
- 20. 如何部署Adobe AIR應用程序
- 21. 如何自動部署應用程序
- 22. 如何部署dropwizard應用程序
- 23. 如何部署WPF應用程序?
- 24. 如何部署iPhone應用程序?
- 25. 如何部署ASP.net Web應用程序
- 26. 如何部署ASP.NET MVC3應用程序?
- 27. 如何爲php應用程序部署
- 28. 你如何部署Angular應用程序?
- 29. 如何部署MVVM應用程序?
- 30. 如何部署Java Swing應用程序
我會補充說,還有一個Python SDK。 https://github.com/hyperledger/fabric-sdk-py – christo4ferris
當然,謝謝提醒。增加:) –
@ArtemBarger你可以分享有關Fabric-Java-SDK的文檔的任何鏈接換句話說,我建議如何開始編寫Hyperledger-Fabric的Java代碼 –