Вопрос конфигурации RAFT: как удалить узел из определенного канала, но сохранить его для обслуживания других каналов - PullRequest
1 голос
/ 20 мая 2019

Я прочитал это руководство .

Удаление узла из определенного канала, но сохранение его для обслуживания других каналов выполняется:

  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"
      ]
    },

Заранее благодарим за полезные советы по настройке этого «Удаление узла из определенного канала, но сохранение его для обслуживания других каналов».

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Согласно этой записи , вам необходимо перенастроить ваш канал, чтобы исключить узлы заказчиков из элементов .channel_group.values.OrdererAddresses.value.addresses и .channel_group.groups.Orderer.values.ConsensusType.value.metadata.consenters массива.

Пример сценария можно найти здесь: https://github.com/hyperledger/fabric-test/blob/master/tools/PTE/CITest/scenarios/PTECIutils.sh#L194

0 голосов
/ 22 мая 2019

Почему там только один адрес?Должен ли я внести в него изменения?

  "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"
    }
  }

, поэтому вам необходимо обновить его и удалить или добавить согласующий в зависимости от ваших потребностей.

...