Принуждение к переизбранию в РАФТ

Я использую консенсус Raft в структуре Hyperledger, и у меня есть несколько вопросов о том, как это работает.

  1. После того, как лидер выбран, остается ли заказчик лидером до тех пор, пока он не уйдет?

  2. Можно ли форсировать процесс переизбрания без перезапуска контейнера лидера (docker restart orderer ...), но с некоторыми параметрами в блоке конфигурации (что-то вроде: ForceReElectionEvery: 60m)?

  3. Какой информацией обмениваются кластеры заказчиков?

Заранее спасибо.


person No name    schedule 04.03.2020    source источник


Ответы (1)


  1. После ElectionTick периода без получения сообщений от лидера последователи запускают новые выборы. Взгляните на https://hyperledger-fabric.readthedocs.io/en/release-1.4/raft_configuration.html#channel-configuration.

  2. Как сказано в п. 1, новые выборы лидера начинаются после ElectionTick без получения сообщений от лидера. Чтобы изменить ElectionTick после создания канала, вы должны использовать configtxlator инструмент и обновить канал, что утомительно.

  3. В основном консенсус относительно порядка транзакций в блоках и блоках в цепочке канала. Для получения дополнительной информации: https://hyperledger-fabric.readthedocs.io/en/release-1.4/orderer/ordering_service.html.

Учтите, что существует независимый процесс консенсуса Raft для каждого канала. У каждого канала есть свой лидер и процесс выборов лидера.

person kekomal    schedule 04.03.2020
comment
Я использовал следующие параметры: options: {selection_tick: 10, heartbeat_tick: 1, max_inflight_blocks: 5, snapshot_interval_size: 20971520, tick_interval: 500 мс} Я смотрел журналы своих заказчиков, но не видел переизбрания процесс на данный момент. И если мой нынешний лидер по какой-то причине станет мошенником, вся моя сеть будет в беде, не так ли? - person No name; 04.03.2020
comment
Вы создали какой-нибудь канал? - person kekomal; 04.03.2020
comment
Да, у меня есть канал sys и еще один канал channel1 - person No name; 04.03.2020
comment
Вот пример одного из журналов заказов: imgur.com/J9AHrXV и, как вы можете видеть со вчерашнего дня 2020 г. 03-03 17: 03: 36.465 (когда я запустил заказчиков) новых выборов нет. - person No name; 04.03.2020
comment
OK. Пока последователь продолжает получать какие-либо сообщения от лидера, кажется, что новых выборов нет. По прошествии ElectionTick периода без получения сообщений последователь (ы) запускает процесс выборов. Редактирую свой ответ. - person kekomal; 04.03.2020
comment
Но, когда ваш лидер выходит из строя (или теряет связь), его заменяет другой после выборов. - person kekomal; 04.03.2020
comment
Да, это работает. Я тестировал (заказчик Docker Stop X и другой заказчик был выбран в качестве лидера) - person No name; 04.03.2020