将网状结构网络组织添加到网络

本主题包含有关将超级账本架构组织加入 Oracle Blockchain Platform 网络的信息。

将 Fabric 组织加入 Oracle Blockchain Platform 网络的典型工作流

下面是 Fabric 组织和 Oracle Blockchain Platform 创始人组织在加入 Fabric 组织到 Oracle Blockchain Platform 网络时需要执行的任务。

任务 这是谁? 说明 更多信息
为 Fabric 组织创建证书文件 组织架构 查找 Fabric 组织的 "Admin"(管理)、"CA"(CA) 和 "TLS"(TLS) 证书信息,然后使用该信息编写 JSON 证书文件。 创建 Fabric 组织的证书文件
将 Fabric 组织的证书文件上载到 Oracle Blockchain Platform 网络 创始人组织 使用控制台上载和导入 Fabric 组织的证书文件以将 Fabric 组织添加到网络。 导入证书以将组织添加到网络
创建通道 创始人组织 创建新通道并将 Fabric 组织添加到其中。 创建通道
从创建者导出排序服务设置 创始人组织 将创始人的排序服务设置输出到 JSON 文件并将文件发送到 Fabric 组织。 加入参与方或扩展 OSN 到创始人的订购服务
编写排序器证书文件 组织架构 创建一个名为 orderer.pem 的文件,其中包含 tlscacert 信息。

转到导出的排序服务设置文件并复制 tlscacert 信息。将 tlscacert 信息粘贴到 orderer.pem 文件后,必须将 \n 的所有实例替换为换行符。

orderer.pem 文件必须采用以下格式:

-----BEGIN CERTIFICATE-----
... 
...
... 
-----END CERTIFICATE-----
创建 Fabric 组织的证书文件
提供订购服务设置 创始人组织 打开订购服务设置文件,查找订购服务的地址和端口,并将其提供给 Fabric 组织。例如:
"orderingServiceNodes": [
{
"address": "grpcs://example_address:7777",
...
}]
NA
将 Fabric 组织添加到网络 组织架构 Fabric 组织将证书复制到其环境中,设置环境变量,提取 genesis 块,加入通道,并安装链代码。 准备使用 Oracle Blockchain Platform Network 的 Fabric 环境

创建 Fabric 组织的证书文件

要使 Fabric 组织加入 Oracle Blockchain Platform 网络,它必须编写包含其管理证书、cacerts 和 tlscacerts 信息的证书文件。Oracle Blockchain Platform 创始人组织导入此文件以将 Fabric 组织添加到网络。

Fabric 证书信息存储在 Fabric 组织的 MSP 文件夹中的 PEM 文件中。例如,network_name_example/crypto-config/peerOrganizations/example_org.com/msp/

证书文件必须采用 JSON 编写,并且必须包含以下字段。对于所有证书,将证书信息复制到 JSON 文件中时,必须将每个新行替换为 \n ,以便信息都在一行中,不带空格,如下例所示。

  • mspid - 指定 Fabric 组织的名称。

  • type - 指示组织是网络参与者。此值必须是参与者
  • admincert - 包含组织的 Admin 证书文件的内容:Admin@example_org.com-cert.pem

  • cacert - 包含组织的 CA 证书文件的内容:ca.example_org-cert.pem

  • tlscacert - 包含组织的 TLS 证书文件的内容:tlsca.example_org-cert.pem

  • intermediatecerts - 此可选元素包含中间 CA 证书文件的内容。除非有中间 CA 证书文件,否则不要指定此元素。
  • nodeouidentifiercert - 本节包含用于标识节点 OU 角色的证书。
  • adminouidentifiercert - 包含用于标识节点 OU 管理员角色的组织证书文件的内容。如果不需要管理员角色,则可以使用 cacert 文件内容或中间证书文件内容作为管理员标识符内容。

  • clientouidentifiercert - 包含用于标识节点 OU 客户机角色的组织证书文件的内容。

  • ordererouidentifiercert - 包含组织证书文件的内容,该文件用于标识节点 OU 排序器角色。如果不需要排序器角色,则可以使用 cacert 文件内容或中间证书文件内容作为排序器内容。

  • peerouidentifiercert - 包含用于标识节点 OU 对等角色的组织证书文件的内容。

将文件结构化,类似于以下示例:
{
  "mspID": "examplemspID",
  "type":  "Participant",
  "certs": { 
   "admincert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n",
   "cacert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n",
   "tlscacert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n"
   "nodeouidentifiercert": {
      "adminouidentifiercert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n",
      "clientouidentifiercert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n",
      "ordererouidentifiercert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n",
      "peerouidentifiercert": "-----BEGIN CERTIFICATE-----\nexample_certificate\nexample_certificate==\n-----END CERTIFICATE-----\n"
    }
  }
} 
    

准备使用 Oracle Blockchain Platform 网络的网状结构网络环境

必须先修改 Fabric 组织的环境,然后才能使用 Oracle Blockchain Platform 网络。

确认以下先决条件任务已完成。有关更多信息,请参见 Typical Workflow to Join a Fabric Organization to an Oracle Blockchain Platform Network

  • Fabric 组织的证书文件已创建并发送至 Oracle Blockchain Platform 网络创始人。

  • 网络创建者上载了证书文件以将 Fabric 组织添加到网络。

  • 网络创始人创建了一个新通道,并将 Fabric 组织添加到其中。

  • 网络创始人下载了其订购服务设置并将其发送到 Fabric 组织。

  • Fabric 组织创建了排序器证书文件。

  • 网络创始人将订购服务地址和端口提供给 Fabric 组织。

必须添加 Fabric 组织并安装和测试链代码。

  1. 导航到 Fabric 网络目录并启动对等容器。

  2. 使用以下命令获取通道的 genesis 块:

    peer channel fetch 0 mychannel.block -o ${orderer_addr}:${orderer_port} -c mychannel --tls --cafile orderer.pem --logging-level debug  

    其中:

    • {orderer_addr} 是创始人的排序地址。

    • {orderer_port} 是创始人的端口号。

    • -c mychannel 是建立者创建的渠道的名称。这是 Fabric 组织在 Oracle Blockchain Platform 网络上发送和接收事务处理的渠道。

    • orderer.pem 是创始人的排序器证书文件。

  3. 使用以下命令加入该通道:

    peer channel join -b mychannel.block -o ${orderer_addr}:${orderer_port} --tls --cafile orderer.pem --logging-level debug
  4. 使用以下命令安装链代码:

    peer chaincode install -n mycc -v 1.0 -l "golang" -p ${CC_SRC_PATH}

    其中 CC_SRC_PATH 是包含链代码的文件夹。

  5. 使用以下命令实例化链代码:

    peer chaincode instantiate -o  ${orderer_addr}:${orderer_port} --tls --cafile orderer.pem -C mychannel -n mycc -l golang -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P <policy_string> --logging-level debug
  6. 使用以下命令调用链代码:

    peer chaincode invoke -o ${orderer_addr}:${orderer_port}  --tls true --cafile orderer.pem -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}' --logging-level debug
  7. 使用以下命令查询链代码:

    peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'  --logging-level debug