0

我正在尝试将我的 Hyperledger Fabric 网络从 v1.4.7 升级到 v2.1。升级对等节点和排序节点很顺利,并且已经实例化的链码运行良好。(通道功能仍然保留 v1.x。)但是,当我尝试升级我的链代码的新版本时,它一直失败。

在 v1.4.7 中,我使用 Fabric SDK v1.4.x 构建了一个服务器来安装/实例化/升级链代码。但是,我发现所有与安装/实例化/升级链码相关的 API 都已从 Fabric SDK v2.1 中删除。因此,正如文档所说,我尝试使用peerCLI 升级链代码。

peer lifecycle chaincode ...首先,我使用命令打包了我的链代码。此时,我设置FABRIC_CFG_PATH为一个core.yamlinfabric-samples文件夹(我不明白为什么我这样做只是为了打包一个链码,但无论如何我做了文档所说的)。我设置CORE_PEER_MSPCONFIGPATH为我的管理员用户 msp 文件夹。

在我得到我的链码包后,我peer0.identity.bpl使用docker exec -it peer0.identity.bpl /bin/sh命令连接到我的第一个对等点。我的docker容器在生产模式下没有对外开放端口,所以需要在里面连接容器。

然后,我输入了以下命令并收到错误消息:

/artifacts # peer lifecycle chaincode install identity_cc_v1.2.0.tar.gz

Error: chaincode install failed with status: 500 - Failed to authorize invocation due to failed ACL check: Failed verifying that proposal's creator satisfies local MSP principal during channelless check policy with policy [Admins]: [The identity is not an admin under this MSP [BPLMSP]: The identity does not contain OU [ADMIN], MSP: [BPLMSP]]

所以,我认为我需要一些“管理员”身份,所以我将我的管理员 msp 文件夹复制到了这个对等方。然后,我设置CORE_PEER_MSPCONFIGPATH到这个复制的 admin msp 文件夹。然后我得到:

/artifacts # export CORE_PEER_MSPCONFIGPATH=/artifacts/org-admin/msp
/artifacts # peer lifecycle chaincode install identity_cc_v1.2.0.tar.gz

2020-05-26 07:21:47.020 UTC [main] InitCmd -> ERRO 001 Cannot run peer because error when setting up MSP of type bccsp from directory /artifacts/org-admin/msp: administrators must be declared when no admin ou classification is set

现在,我想也许 OU 设置有问题。所以,我从config.yaml文件中禁用了 OU 设置。但是,我又收到了同样的错误信息。

所以,我CORE_PEER_MSPCONFIGPATH再次将设置更改为原始设置,但现在它说这不是管理员身份。

/artifacts # export CORE_PEER_MSPCONFIGPATH=/artifacts/msp
/artifacts # peer lifecycle chaincode install identity_cc_v1.2.0.tar.gz

Error: chaincode install failed with status: 500 - Failed to authorize invocation due to failed ACL check: Failed verifying that proposal's creator satisfies local MSP principal during channelless check policy with policy [Admins]: [This identity is not an admin]

我明白。此身份只是对等身份,而不是管理员身份。因此,我尝试在此对等方中注册管理员,但此fabric-peerdocker 映像不包含fabric-ca-client二进制文件。所以,我认为我做错了什么,这不是预期的方式。

此时,如何安装和实例化新版本的链代码?

4

1 回答 1

0

在我将 OU 配置设置为复制到对等方的管理 msp 后,所有问题都已解决,并且安装/提交链代码效果很好。

于 2020-05-27T08:25:45.390 回答