首页 > 解决方案 > RAFT 配置问题:如何从特定通道中删除节点,但保持它为其他通道提供服务

问题描述

我已阅读本指南

从特定通道中删除节点,但保持它为其他通道提供服务是通过以下方式完成的:

  1. 从通道的通道配置中删除其端点。

  2. 从通道配置中删除其条目(由其证书标识)。

我想知道该怎么做?它与configtx中的这些部分有关吗?

  1. 在以下列表中删除其端点:

    "OrdererAddresses":common.OrdererAddresses,
    
  2. 在 MSP 映射中删除其条目(由其证书标识)

    "Orderer":&ConfigGroup{... map<string, *ConfigValue>{"MSP":msp.MSPConfig
    

我使用 5 个 RAFT 订购者运行了默认的超级账本样本。我尝试使用configtxlator从频道获取频道配置。

peer channel fetch config config_block.pb  -o orderer.example.com:7050 -c mychannel  --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

为什么只有一个地址?我应该改变它吗?

  "OrdererAddresses": {
    "mod_policy": "/Channel/Orderer/Admins",
    "value": {
      "addresses": [
        "orderer.example.com:7050"
      ]
    },

提前感谢您提供有用的提示来配置此“从特定通道中删除节点,但保持它为其他通道提供服务”。

标签: nodeshyperledger-fabricchannel

解决方案


为什么只有一个地址?我应该改变它吗?

  "OrdererAddresses": {
    "mod_policy": "/Channel/Orderer/Admins",
    "value": {
      "addresses": [
        "orderer.example.com:7050"
      ]
    },

首先,此配置部分包含订购服务节点端点以供对等方连接,您真正需要的是位于以下位置的同意者配置:

{
  "ConsensusType": {
    "mod_policy": "Admins",
    "value": {
      "metadata": {
        "consenters": [
          {
            "client_tls_cert": LS0tCg==
            ",
            "host": "127.0.0.1",
            "port": 36003,
            "server_tls_cert": LS0tCg==
            "
          },
          {
            "client_tls_cert": LS0tCg==
            ",
            "host": "127.0.0.1",
            "port": 36000,
            "server_tls_cert": LS0tCg==
            "
          },
          {
            "client_tls_cert": LS0tCg==
            ",
            "host": "127.0.0.1",
            "port": 36006,
            "server_tls_cert": LS0tCg==
            "
          }
        ],
        "options": {
          "election_tick": 10,
          "heartbeat_tick": 1,
          "max_inflight_blocks": 5,
          "snapshot_interval_size": 1024,
          "tick_interval": "500ms"
        }
      },
      "state": "STATE_NORMAL",
      "type": "etcdraft"
    }
  }

因此,您需要根据需要对其进行更新并删除或添加同意者。


推荐阅读