Я собираюсь внедрить Практическую Византийскую Отказоустойчивость (PBFT).
Следовательно, у меня будет несколько процессов, P0 собирается инициализировать раунд, отправив первое сообщение.
Можно ли передать сообщение всем другим процессам, используя ZeroMQ?
С PUB/SUB
мне нужно связать / соединить сокеты. Но я собираюсь взять число процессов в качестве аргументов, кажется нецелесообразным подключать все остальные порты (я не знаю, возможно ли это?!). Я не мог написать какой-либо код, так как я застрял в начале.
В принципе, если я найду способ соединения процессов, я сделаю это:
Заявитель выбирает случайное сообщение m и отправляет его всем валидаторам.
По получении каждый валидатор отправляет сообщение другим валидаторам и заявителю.
Если валидатор (или автор предложения) получает как минимум 2 тыс. Сообщений от другого
процессы, которые идентичны его собственным, он переходит к следующему
раунд алгоритма консенсуса.
Еще одно дополнение: процессы будут напрямую взаимодействовать друг с другом. Но соединиться со всеми другими сокетами процессов с помощью REQ / REP не очень разумно.