当前位置: 首页 > 面试题库 >

在Hyperledger Fabric V1.0的本地开发环境中使用REST API支持

袁单鹗
2023-03-14
问题内容

我已经建立了 HyperLedger面料V1.0网络4个组织 各有1对
通过以下步骤建立你的第一个网络。

我现在有

  1. **org1.example.com-peer peer0.org1.example.commsp

    Org1MSP**
  2. **org2.example.com-peer peer0.org2.example.commsp
    Org2MSP**
  3. **org3.example.com-peer peer0.org3.example.commsp
    Org3MSP**
  4. **org4.example.com-peer peer0.org4.example.commsp
    Org4MSP**

现在,我可以将链码安装到对等端,并在通道上实例化链码。我还可以能够调用,并通过使用命令查询链代码中提到这里像

调用
对等链代码调用-o orderer.example.com:7050 –tls $ CORE_PEER_TLS_ENABLED –cafile
/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer
.example.com / msp / tlscacerts / tlsca.example.com-cert.pem -C $
CHANNEL_NAME -n mycc -c’{“ Args”:[“ invoke”,“ a”,“ b”,“ 10”] }’

查询
对等链码查询-C $ CHANNEL_NAME -n mycc -c’{“ Args”:[“ query”,“ a”]}’

我以前使用的是IBM
Bluemix提供的Hyperledger
Fabric V0.6服务,而我的Java应用程序则通过 Rest API 调用链代码。

我如何使用 docker image* 在此 本地网络 设置中在此处使用 Rest API ,然后我的
Java应用程序 可以与我的链码进行交互。 由于我对 本地网络 设置不太熟悉,因此请建议我如何使它工作。 __ __
*
__

注意:
我正在使用 Windows 7机器, 并且通过在 Docker快速入门终端中 运行命令来设置网络 __

提前致谢..


问题答案:

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() {

        html" target="_blank">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 ChaincodeID chaincodeID = ChaincodeID.newBuilder()
            .setName("myCC")
            .setVersion("1.0")
            .setPath("github.com/yourpackage/chaincode/")
            .build();

    proposalRequest.setChaincodeID(chaincodeID);
    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());


 类似资料:
  • 我已经设置了一个HyperLedger Fabric V1.0网络,其中有4个组织,每个组织有1个对等体,通过以下步骤构建您的第一个网络。 现在我有 org1.example.com-对等项:peer0.org1.example.com和msp:org1msp org2.example.com-对等项:peer0.org2.example.com和msp:org2msp org3.example.

  • 注意:本文停止更新,请直接转到kubernetes-vagrant-centos-cluster仓库浏览最新版本。 当我们需要在本地开发时,更希望能够有一个开箱即用又可以方便定制的分布式开发环境,这样才能对Kubernetes本身和应用进行更好的测试。现在我们使用Vagrant和VirtualBox来创建一个这样的环境。 部署时需要使用的配置文件和vagrantfile请见:https://git

  • 问题内容: Kubernetes似乎只不过是将容器部署到集群云中。似乎没有碰到的是开发和暂存环境(或类似环境)。 在开发过程中,您希望通过一些重要更改尽可能接近生产环境: 本地部署(或至少在 您只有您可以访问的地方 ) 在页面刷新时使用 最新的源代码 (假设它是一个网站;理想情况下,在本地文件保存上页面自动刷新,如果您挂载源代码并使用诸如Yeoman之类的东西就可以完成)。 同样,人们可能希望非公

  • 简介 Xiaomi Cloud-ML也支持基于GPU的开发环境,用法与训练任务相同,可参考 使用GPU训练 。 开发环境的GPU数量大于0时,开启GPU加速。系统为开启GPU的开发环境分配GPU,并且镜像内安装相应软件包。 使用命令行启用GPU 用户在使用命令行创建开发环境时,可以使用参数指定需要的GPU个数。 cloudml dev create -n mydev -p mypassword -

  • 我有一个长期的项目,是使用与redis和一个问题,已经开始,我相信只有升级到sidkiq 3。 问题是,如果不先启动redis服务器,我就无法运行正在开发的rails(4.1.4)应用程序。我在启动rails服务器时遇到的错误与我在没有首先启动redis的情况下运行bundle exec sidekiq时遇到的错误相同。在没有运行redis的情况下运行我的rails应用程序以前从来都不是问题,即使

  • Zack Tollmanz为WordPress编写了一个新的Memcached对象缓存库。这个库基于Ryan Boren开发的WordPress Memcache插件。 WordPress带有一个默认的对象缓存。可以通过将一个名为object-cache.php文件的文件复制到wp-content文件夹的根目录中来替换这个默认缓存。object-cache.php文件将包含替换对象缓存的实现。 T