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

本主题包含有关将 Hyperledger Fabric 组织加入 Oracle Blockchain Platform 网络的信息。

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

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

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

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

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

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

创建网状结构网络组织的证书文件

要使光纤网络组织加入 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 - 指定光纤网络组织的名称。

  • 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 管理员角色的组织证书文件的内容。如果不需要 admin 角色,则可以使用 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"
    }
  }
} 
    

准备 Fabric 环境以使用 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