2017-07-31 8 views
1

チェーンコード、4人のピア、1人の発注者が準備しています。 CLIでチェーンコードを照会することはできますが、APIを使用してクエリを実行するにはどうすればいいですか?また、Webアプリケーションとして展開するにはどうすればよいですか。誰でもコメントしていただけますか?Hyperledgerファブリックアプリケーションのデプロイ方法

答えて

1

Fabric元帳を照会するNode.js SDK経由でアプリケーションを作成する方法を示すドキュメントのgo-to tutorialです。

3

アプリケーションに活用できるように、いくつかのSDKが用意されています。あなたがここに例あなたはJava SDKを使用する方法の短い例えば、便利にこれらのいずれかを拾うことができ

  • Go SDK
  • Python SDK
    1. Node SDK
    2. Java SDK
    3. クエリチェーンコード:

      // 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の表情を取ることができ、かなり似ています。

    +0

    私は、Python SDKもあると付け加えます。 https://github.com/hyperledger/fabric-sdk-py – christo4ferris

    +0

    本当にありがとうございます。追加: –

    +0

    @ArtemBarger Fabric-Java-SDKに関するドキュメントのリンクを共有できますか?言い換えれば、Hyperledger-FabricのJavaコードの作成方法を教えてください。 –

    関連する問題