无问题
docker tag 1.2.1镜像latest标签
order/peer加如下环境变量
GODEBUG=netdns=go
Error: error endorsing query: rpc error: code = Unknown desc = Failed evaluating policy on signed data during check policy on channel [mychannel] with policy [/Channel/Application/Writers]: [Failed to reach implicit threshold of 1 sub-policies, required 1 remaining] - proposal response:
通过搜索引擎找到了解决方案 修改policies:fabric1-2下e2e-cli问题记录
按提示修改 e2e_cli下的configtx.yaml,在Org3处进行添加Org3MSP.member,如下。
Policies:
Readers:
Type: Signature
Rule: "OR('Org3MSP.admin', 'Org3MSP.peer', 'Org3MSP.client', 'Org3MSP.member')"
Writers:
Type: Signature
Rule: "OR('Org3MSP.admin', 'Org3MSP.client', 'Org3MSP.member')"
Admins:
Type: Signature
Rule: "OR('Org3MSP.admin')"
域名改成公司分配域名,通道名改成bgihealth,mycc也相应变了下
先单纯更改域名启动改造后的e2e_cli-1.2.1项目
Error: got unexpected status: FORBIDDEN – Failed to reach implicit threshold of 1 sub-policies, required 1 remaining: permission denied
Evaluation Failed: Only 0 policies were satisfied, but needed 1 of
Failed to reach implicit threshold of 1 sub-policies, required 1 remaining: permission denied
对比yaml文件,发现EnableNodeOUs属性不同
更改yaml配置,重新生成证书和tx文件,问题解决
参考过的资料:
带旧数据升级时,因为1.1.1的证书生成没有使能EnableNodeOUs特性,
切换成1.2镜像时继续用1.0.6的证书,报错如下
Error: got unexpected status: BAD_REQUEST – cannot enable application capabilities without orderer support first
替换成1.2镜像时同时切换1.2证书,又报错如下
Error: got unexpected status: FORBIDDEN – Failed to reach implicit threshold of 1 sub-policies, required 1 remaining: permission denied
方法无效
注释掉
signConfigtxAsPeerOrg 1 config_update_in_envelope.pb
# Prepare to sign the update as the PeerOrg2.Admin
setGlobals 0 2
后
无用
只注释掉
signConfigtxAsPeerOrg 1 config_update_in_envelope.pb
时
比对1.0.6,1.1.1,1.2.1版本的configtx.yaml和crypto-config.yaml
考虑到crypto-config.yaml的1.1.1比1.0.6多了个EnableNodeOUs
还有1.2.1多了几个policies
后续突然想到导出升级过程中的config.json和modified_config.json,比对正常数据升级,发现旧数据还缺少V1_1的属性。
可能是搭建时用的是1.0.6版本工具创建的tx文件。
意识到一并升级V1_1属性和1.2看看
终于升级成功了。 测试读写也正常了
我本次问题的主要原因,是因为脚本从1.0.6修改过来,缺少了一些属性,例如polices 、EnableNodeOUs。这些属性影响到了tx文件、证书,最终写在了区块里。而我们要做的是修正yaml文件后再使这些属性生效:清除区块链数据重新搭建也可,保持旧数据更新配置块也可。
升级时保持旧版本即可。升级后创建新通道文件时要对应升级后的版本。
configtx.yaml crypto-config.yaml configtxgen的版本
恢复1.1.1环境,出错如下:zookeeper中执行不了 docker-entrypoint.sh
后来发现是kafka/zookeeper被本机生成编译过,latest标签对应了旧版1.0.6
先前复制了测试环境244服务器的旧数据,在213服务器上解决了升级属性的问题。然后切回244验证时,碰到如下问题
后对比两台服务器镜像,发现ccenv版本不同。213并没有1.2的版本,而244的latest标签页是打在1.4上。
将两台服务器的ccenv latest镜像对应到1.2后,启动并升级成功。