We present two abstractions for designing modular state machine replication (SMR) protocols: trees and turtles. A tree captures the set of possible state machine histories, while a turtle represents a subprotocol that tries to find agreement in this tree. We showcase the applicability of these abstractions by constructing crash-tolerant SMR protocols out of abstract tree turtles and providing examples of tree turtle implementations. The modularity of tree turtles allows a generic approach for adding a leader for liveness. We expect that these abstractions will simplify reasoning and formal verification of SMR protocols as well as facilitate innovation in protocol designs.
翻译:我们提出了两种用于设计模块化状态机复制(SMR)协议的抽象方法:树和乌龟。树捕捉可能的状态机历史记录集,而乌龟代表一个子协议,尝试在树中达成一致。我们展示了这些抽象方法的适用性,通过将抽象的树乌龟构建为具有崩溃容错能力的SMR协议,并提供了树乌龟实现的示例。树乌龟的模块化特性允许通用的方法添加领导者以实现活力。我们预计这些抽象方法将简化SMR协议的推理和形式验证,同时促进协议设计的创新。