Hyperledger Fabric 系统通道排序者更新错误 1.4

问题描述 投票:0回答:1

我正在尝试更新系统频道以添加新的订购者。

protobuf 由组织管理员签名,我看到它到达了我发送交易的订购者,但我在组织的其他 2 个通道上看不到任何其他相关日志。

如果需要的话我可以提供更多信息,谢谢。

当交易被拒绝时,这就是我在排序者日志中看到的内容。

2024-04-16 09:34:56.349 UTC [cauthdsl] func2 -> DEBU 10429ee3 0xc001d84cd0 principal evaluation succeeds for identity 0
2024-04-16 09:34:56.349 UTC [cauthdsl] func1 -> DEBU 10429ee4 0xc001d84cd0 gate 1713260096348359729 evaluation succeeds
2024-04-16 09:34:56.349 UTC [policies] Evaluate -> DEBU 10429ee5 Signature set satisfies policy /Channel/Orderer/OrgMSP/Writers
2024-04-16 09:34:56.349 UTC [policies] Evaluate -> DEBU 10429ee6 == Done Evaluating *cauthdsl.policy Policy /Channel/Orderer/OrgMSP/Writers
2024-04-16 09:34:56.349 UTC [policies] Evaluate -> DEBU 10429ee7 Signature set satisfies policy /Channel/Orderer/Writers
2024-04-16 09:34:56.349 UTC [policies] Evaluate -> DEBU 10429ee8 == Done Evaluating *policies.implicitMetaPolicy Policy /Channel/Orderer/Writers
2024-04-16 09:34:56.349 UTC [policies] Evaluate -> DEBU 10429ee9 Signature set satisfies policy /Channel/Writers
2024-04-16 09:34:56.349 UTC [policies] Evaluate -> DEBU 10429eea == Done Evaluating *policies.implicitMetaPolicy Policy /Channel/Writers
2024-04-16 09:34:56.350 UTC [common.configtx] addToMap -> DEBU 10429eeb Adding to config map: [Group]  /Channel
2024-04-16 09:34:56.350 UTC [common.configtx] addToMap -> DEBU 10429eec Adding to config map: [Group]  /Channel
2024-04-16 09:34:56.350 UTC [common.configtx] addToMap -> DEBU 10429eed Adding to config map: [Group]  /Channel/Consortiums
2024-04-16 09:34:56.350 UTC [common.configtx] addToMap -> DEBU 10429eee Adding to config map: [Group]  /Channel/Consortiums/OrgConsortium
2024-04-16 09:34:56.350 UTC [common.configtx] addToMap -> DEBU 10429eef Adding to config map: [Group]  /Channel/Consortiums/OrgConsortium/OrgMSP
2024-04-16 09:34:56.350 UTC [common.configtx] addToMap -> DEBU 10429ef0 Adding to config map: [Value]  /Channel/Consortiums/OrgConsortium/OrgMSP/MSP
2024-04-16 09:34:56.350 UTC [common.configtx] addToMap -> DEBU 10429ef1 Adding to config map: [Policy] /Channel/Consortiums/OrgConsortium/OrgMSP/Admins
2024-04-16 09:34:56.350 UTC [common.configtx] addToMap -> DEBU 10429ef2 Adding to config map: [Policy] /Channel/Consortiums/OrgConsortium/OrgMSP/Readers
2024-04-16 09:34:56.350 UTC [common.configtx] addToMap -> DEBU 10429ef3 Adding to config map: [Policy] /Channel/Consortiums/OrgConsortium/OrgMSP/Writers
2024-04-16 09:34:56.350 UTC [common.configtx] addToMap -> DEBU 10429ef4 Adding to config map: [Value]  /Channel/Consortiums/OrgConsortium/ChannelCreationPolicy
2024-04-16 09:34:56.351 UTC [common.configtx] addToMap -> DEBU 10429ef5 Adding to config map: [Policy] /Channel/Consortiums/Admins
2024-04-16 09:34:56.351 UTC [common.configtx] addToMap -> DEBU 10429ef6 Adding to config map: [Group]  /Channel/Orderer
2024-04-16 09:34:56.351 UTC [common.configtx] addToMap -> DEBU 10429ef7 Adding to config map: [Group]  /Channel/Orderer/OrgMSP
2024-04-16 09:34:56.351 UTC [common.configtx] addToMap -> DEBU 10429ef8 Adding to config map: [Value]  /Channel/Orderer/OrgMSP/MSP
2024-04-16 09:34:56.351 UTC [common.configtx] addToMap -> DEBU 10429ef9 Adding to config map: [Policy] /Channel/Orderer/OrgMSP/Admins
2024-04-16 09:34:56.351 UTC [common.configtx] addToMap -> DEBU 10429efa Adding to config map: [Policy] /Channel/Orderer/OrgMSP/Readers
2024-04-16 09:34:56.351 UTC [common.configtx] addToMap -> DEBU 10429efb Adding to config map: [Policy] /Channel/Orderer/OrgMSP/Writers
2024-04-16 09:34:56.351 UTC [common.configtx] addToMap -> DEBU 10429efc Adding to config map: [Value]  /Channel/Orderer/BatchSize
2024-04-16 09:34:56.351 UTC [common.configtx] addToMap -> DEBU 10429efd Adding to config map: [Value]  /Channel/Orderer/BatchTimeout
2024-04-16 09:34:56.352 UTC [common.configtx] addToMap -> DEBU 10429efe Adding to config map: [Value]  /Channel/Orderer/ChannelRestrictions
2024-04-16 09:34:56.353 UTC [common.configtx] addToMap -> DEBU 10429eff Adding to config map: [Value]  /Channel/Orderer/ConsensusType
2024-04-16 09:34:56.353 UTC [common.configtx] addToMap -> DEBU 10429f00 Adding to config map: [Policy] /Channel/Orderer/Readers
2024-04-16 09:34:56.353 UTC [common.configtx] addToMap -> DEBU 10429f01 Adding to config map: [Policy] /Channel/Orderer/Writers
2024-04-16 09:34:56.353 UTC [common.configtx] addToMap -> DEBU 10429f02 Adding to config map: [Policy] /Channel/Orderer/Admins
2024-04-16 09:34:56.353 UTC [common.configtx] addToMap -> DEBU 10429f03 Adding to config map: [Policy] /Channel/Orderer/BlockValidation
2024-04-16 09:34:56.353 UTC [common.configtx] addToMap -> DEBU 10429f04 Adding to config map: [Value]  /Channel/BlockDataHashingStructure
2024-04-16 09:34:56.353 UTC [common.configtx] addToMap -> DEBU 10429f05 Adding to config map: [Value]  /Channel/HashingAlgorithm
2024-04-16 09:34:56.353 UTC [common.configtx] addToMap -> DEBU 10429f06 Adding to config map: [Value]  /Channel/OrdererAddresses
2024-04-16 09:34:56.353 UTC [common.configtx] addToMap -> DEBU 10429f07 Adding to config map: [Policy] /Channel/Admins
2024-04-16 09:34:56.353 UTC [common.configtx] addToMap -> DEBU 10429f08 Adding to config map: [Policy] /Channel/Readers
2024-04-16 09:34:56.353 UTC [common.configtx] addToMap -> DEBU 10429f09 Adding to config map: [Policy] /Channel/Writers
2024-04-16 09:34:56.354 UTC [common.configtx] verifyDeltaSet -> DEBU 10429f0a Processing change to key: [Policy] /Channel/Orderer/OrgMSP/Admins
2024-04-16 09:34:56.354 UTC [orderer.common.broadcast] ProcessMessage -> WARN 10429f0b [channel: Orgsystem] Rejecting broadcast of config message from 172.33.13.79:58208 because of error: error applying config update to existing channel 'Orgsystem': error authorizing update: error validating DeltaSet: attempt to set key [Policy] /Channel/Orderer/OrgMSP/Admins to version 0, but key is at version 0
2024-04-16 09:34:56.354 UTC [orderer.common.server] func1 -> DEBU 10429f0c Closing Broadcast stream
2024-04-16 09:34:56.354 UTC [comm.grpc.server] 1 -> INFO 10429f0d streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=172.33.13.79:58208 grpc.code=OK grpc.call_duration=6.298844ms
2024-04-16 09:34:56.364 UTC [common.deliver] Handle -> WARN 10429f0e Error reading from 172.33.13.79:58194: rpc error: code = Canceled desc = context canceled
2024-04-16 09:34:56.364 UTC [grpc] infof -> DEBU 10429f0f transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2024-04-16 09:34:56.364 UTC [orderer.common.server] func1 -> DEBU 10429f10 Closing Deliver stream
2024-04-16 09:34:56.364 UTC [grpc] infof -> DEBU 10429f12 transport: loopyWriter.run returning. connection error: desc = "transport is closing"
2024-04-16 09:34:56.364 UTC [comm.grpc.server] 1 -> INFO 10429f11 streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=172.33.13.79:58194 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=23.411074ms

编辑: 我看到在通道配置中指定了版本:

            "Writers": {
              "mod_policy": "Admins",
              "policy": {
                "type": 3,
                "value": {
                  "rule": "ANY",
                  "sub_policy": "Writers"
                }
              },
              "version": "0"
            }

我需要更新所有这些版本吗?

在configtx的update.go上的hyperledger Fabric的源代码中,verifyDeltaSet方法有以下验证: https://github.com/hyperledger/fabric/blob/main/common/configtx/update.go#L67

        if value.version() != existing.version()+1 {
            return errors.Errorf("attempt to set key %s to version %d, but key is at version %d", key, value.version(), existing.version())
        }

那么,这个版本是否更新了自动创建pb文件的过程?或者有什么需要指定的吗?

谢谢你。

hyperledger-fabric hyperledger
1个回答
0
投票

因此,当尝试更新 Hyperledger Fabric 1.4 中的系统通道配置时,您的版本控制错误是:

error authorizing update: error validating DeltaSet: attempt to set key [Policy] /Channel/Orderer/OrgMSP/Admins to version 0, but key is at version 0

含义:正在更新的配置项版本号有问题。
在 Hyperledger Fabric 中,每个配置项都有一个版本号(参见“通道配置

configtx
”),提交更新时,新的配置版本必须比账本中现有的版本高一个版本。

[Update Attempt]
   ├─ Channel
   │   ├─ Orderer
   │   │   └─ OrgMSP
   │   │       └─ Admins (version 0 - INCORRECT, should be 1)

在提交更新之前,请获取通道的当前配置并检查要更新的每个配置项的版本号。确保您正在准备的配置更新将每个修改项目的版本号恰好增加 1。如果您的更新涉及多个项目,则每个项目都必须独立满足此要求。

使用 Fabric CLI 工具(

peer channel
configtxlator proto_decode
),并遵循“更新通道配置/拉取并转换配置¶”:

# Fetch the current configuration block
peer channel fetch config config_block.pb -o ORDERER_ADDRESS -c CHANNEL_NAME --tls --cafile CA_FILE

# Decode the configuration block
configtxlator proto_decode --input config_block.pb --type common.Block | jq .data.data[0].payload.data.config

检查相关部分中输出的版本号。

那么,这个版本是否更新了自动创建pb文件的过程?或者有什么需要指定的吗?”

该过程不会自动处理您为配置更新生成的 protobuf 文件中的版本增量。 您必须在配置事务中手动指定新版本号。这很重要,因为如果版本号设置不正确(即每个版本号都应该比现有配置高一个版本),系统将由于版本不匹配错误而拒绝更新。

调整版本后,重新生成配置更新交易(protobuf 文件),确保所有修改都正确指定。使用必要的管理员签名签署此交易。然后尝试重新向系统通道提交更新。
请参阅“重新编码并提交配置”。

© www.soinside.com 2019 - 2024. All rights reserved.