将网状结构网络组织添加到网络
本主题包含有关将超级账本架构组织加入 Oracle Blockchain Platform 网络的信息。
将网状结构网络组织加入 Oracle Blockchain Platform 网络的典型工作流
Fabric 组织和 Oracle Blockchain Platform 创始人组织必须完成以下任务才能将 Fabric 组织加入 Oracle Blockchain Platform 网络。
| 任务 | 这是谁? | 说明 | 更多信息 |
|---|---|---|---|
| 为 Fabric 组织创建证书文件 | Fabric 组织 | 查找 Fabric 组织的 Admin、CA 和 TLS 证书信息,并使用该信息编写 JSON 证书文件。 | 创建 Fabric 组织的证书文件 |
| 将 Fabric 组织的证书文件上载到 Oracle Blockchain Platform 网络 | 创始人组织 | 使用控制台上载和导入 Fabric 组织的证书文件,以将 Fabric 组织添加到网络。 | 导入证书以将组织添加到网络 |
| 创建渠道 | 创始人组织 | 创建通道并将 Fabric 组织添加到该通道中。 | 创建渠道 |
| 从创建者导出订购服务设置 | 创始人组织 | 将创始人的排序服务设置写入 JSON 文件并将文件发送到 Fabric 组织。 | 加入参与者或扩展 OSN 以获得创始人的订购服务 |
| 编写 orderer 证书文件 | Fabric 组织 | 创建一个名为 orderer.pem 的文件,其中包含 tlscacert 信息。
转到导出的订购服务设置文件并复制
|
创建 Fabric 组织的证书文件 |
| 提供排序服务设置 | 创始人组织 | 打开排序服务设置文件并查找排序服务的地址和端口,并将其提供给 Fabric 组织,如以下示例所示: |
NA |
| 将 Fabric 组织添加到网络 | Fabric 组织 | Fabric 组织将证书复制到其环境中,设置环境变量,提取 Genesis 块,加入通道,并安装链代码。 | 准备 Fabric 环境以使用 Oracle Blockchain Platform 网络 |
创建 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 - 指定网状结构网络组织的名称。
- 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 文件内容或中间证书文件内容作为 adminouidentifier 内容。
-
clientouidentifiercert - 包含用于标识节点 OU 客户机角色的组织证书文件的内容。
-
ordererouidentifiercert - 包含用于标识节点 OU 排序器角色的组织证书文件的内容。如果不需要 orderer 角色,则可以使用 cacert 文件内容或中间证书文件内容作为 ordererouidentifier 内容。
-
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 组织创建了 orderer 证书文件。
-
网络创建者将订购服务地址和端口提供给 Fabric 组织。
必须添加 Fabric 组织并安装和测试链代码。
-
导航到 Fabric 网络目录并启动对等容器。
-
使用以下命令提取通道的 genesis block:
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