Introduce the Gossip protocol for fault tolerance
Description
If multiple Tangle-Accelerators can communicate and disseminate information, some features might be implemented. Gossip protocol might be a solution.
Redirect requests
If one TA could not handle receiving requests due to particular reasons, for example, the connecting IOTA service fails to respond. TA could ask other TA to process those requests.
Ensure the uniqueness of the reattach service
If we could make multiple TA be a cluster, the reattach service could be an optional feature(thread) of TA. One TA must pull the truth that no other TA is running the reattach service before starting the reattach service.
Progress
Is there a recommended library or implementation of the Gossip protocol that we can utilize?
At first glance, I found the following implementations:
- Pittacus: Its main goal is a data dissemination rather than membership management.
- Allows to build a fully decentralized P2P cluster without a single server instance.
- Utilizes UDP for the transport layer.
- Very tiny and adjustable memory footprint.
- Small protocol overhead.
- The data spreading is pretty fast
- distributed under the Apache License 2.0.
- libtribe: C++ library for Group Membership and Failure Detection using gossip style protocol.
- This project is using C++17 features extensively.