将网状结构网络组织添加到网络
本主题包含有关将超级账本架构组织加入 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 文件必须采用以下格式:
|
创建 Fabric 组织的证书文件 |
提供订购服务设置 | 创始人组织 | 打开订购服务设置文件,查找订购服务的地址和端口,并将其提供给 Fabric 组织。例如:
|
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 组织并安装和测试链代码。
-
导航到 Fabric 网络目录并启动对等容器。
-
使用以下命令获取通道的 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 是创始人的排序器证书文件。
-
-
使用以下命令加入该通道:
peer channel join -b mychannel.block -o ${orderer_addr}:${orderer_port} --tls --cafile orderer.pem --logging-level debug
-
使用以下命令安装链代码:
peer chaincode install -n mycc -v 1.0 -l "golang" -p ${CC_SRC_PATH}
其中 CC_SRC_PATH 是包含链代码的文件夹。
-
使用以下命令实例化链代码:
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
-
使用以下命令调用链代码:
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
-
使用以下命令查询链代码:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}' --logging-level debug