我可以在没有ca-server的情况下将REST API部署到Hyperledger Fabric吗?

问题描述

我已成功遵循此存储库fabric-network-on-swarm的说明,并创建了一个蜂群网络,并成功安装并实例化了自己已经用convector创建的链代码

我还基于此存储库创建了一个convector-rest-api

在我的设置中,我使用cryptogen创建了证书,而没有使用fabric-ca-serverfabric-ca-client

方法,我无法找到将剩余api注入容器的方法>

-编辑-

(1)我可以这样创建自己的network-profile.yaml吗?:

name: "Network"
version: "1.0"

channels:
  mychannel:
    orderers:
      - orderer.example.com
    peers:
      peer0.org1.example.com:
        endorsingPeer: true
        chaincodeQuery: true
        ledgerQuery: true
        eventSource: true

organizations:
  Org1:
    mspid: Org1MSP
    peers:
      - peer0.org1.example.com
    adminPrivateKey:
      path: test/fixtures/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/keystore/9022d671ceedbb24af3ea69b5a8136cc64203df6b9920e26f48123fcfcb1d2e9_sk
    signedCert:
      path: test/fixtures/channel/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/signcerts/Admin@org1.example.com-cert.pem


orderers:
  orderer.example.com:
    url: grpcs://localhost:7050
    grpcoptions:
      ssl-target-name-override: orderer.example.com
      grpc-max-send-message-length: 4194304
    tlsCACerts:
      path: test/fixtures/channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tlscacerts/example.com-cert.pem

peers:
  peer0.org1.example.com:
    url: grpcs://localhost:7051
    grpcoptions:
      ssl-target-name-override: peer0.org1.example.com
      grpc.keepalive_time_ms: 600000
    tlsCACerts:
      path: test/fixtures/channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tlscacerts/org1.example.com-cert.pem

是否不添加有关我的certificateAuthorities的信息?

(2)使用crytogenorderer和我的peer生成加密材料。 我应该使用哪个证书作为keyStore来连接我的api?

解决方法

如果您还想注册身份并颁发证书,则需要fabric-ca。但是,如果您将自己的CA用作cryptogen,则不需要在API上使用fabric-ca。取而代之的是,您应该定义将用于连接的证书以及区块链网络的URL。您在下面的link中有一个示例。

---编辑---

为回答@StPaulis提出的两个新问题,添加了以下答案。

  1. 是的,您可以创建自己的network-profile.yaml。而且,您必须执行此操作。
  2. 您应该使用的凭据是与您为拥有对等方的组织生成的用户之一相关的凭据,例如admin密钥库和signcert。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...