我将实施一个实用的拜占庭容错(PBFT)。
因此,我将有多个进程,P0将通过发送第一条消息来初始化一轮。
是否可以使用ZeroMQ向所有其他进程广播消息?
使用 PUB/SUB
,我需要绑定/连接套接字。但是我将把进程数作为参数,连接所有其他端口似乎是不切实际的(我不知道这是否可能?!)。我无法编写任何代码,因为我一开始就陷入困境。
基本上,如果我找到连接流程的方法,我会这样做:
提议者选择随机消息m并将其发送给所有验证器。 在接收时,每个验证器将消息发送给其他验证器和提议者。 如果验证器(或提议者)从另一个收到至少2k个消息 与它自己相同的进程继续进行到下一个进程 一致的算法。
还有一个补充:流程将直接相互通信。但是,使用REQ / REP连接到所有其他进程套接字并不聪明。
答案 0 :(得分:0)
是否可以使用ZeroMQ向所有其他进程广播消息?
这就是为什么所有的消息传递和信令工具,如ZeroMQ,nanomsg等都是为其开发的。
PBFT的美丽和诡计是,应该存在零点奇异的叛逃,应该在那里吗?
所以任何其他方法,但实际上一个接一个地发送和发送的循环消息对PBFT没有帮助,是吗?
随意草绘解决方案,端口映射不会是您的主要问题。 ZeroMQ可以非常灵活的方式 .bind()
/ .connect()
。如果端口确实是稀缺资源,甚至可以以类似循环的方式创建临时的,非持久的连接设置,因此获得更多的勇气并完成它 :o)
< /强>