# **Protocol Implementation and Evaluation of Multicast-based Distributed Consensus (mDCS)**
In distributed systems, consensus is key to maintain and consent over a distributed state. For example, a (monetary) transaction execution in a set of (database) servers. Distributed consensus systems (DCSs) include distributed file systems, distributed ledgers (for cryptocurrencies), system locks, network bootstrap and other applications.
To achieve consensus a prevalent mechanism to distribute (diffuse, propagate) information, e.g., the state, is through **unicast communication** although the requirement is a **point-to-multipoint** operation.
We measured, analyze and model the unicast approach (iterative diffusion) in an Internet-scale DCS [1,2], i.e., Ethereum; with these insights we devise a **multicast-based** approach mDCS. This approach relies on replication points (RPs) which replicate information towards and from a set of other RPs and peers respectively.
In this context, we structure the folllowing work:
1. Objectives
-
- Specification of multicast-based replication for mDCS
- Implementation of an IPv6-based replication point (RP)
- Evaluate a deployment for the RP prototype in a 10-AS based Internet emulator
2. Literature Review
-
- Distributed Consensus
- Permissionless Distributed Consensus Systems (DCSs), e.g., Ethereum
- Communication Patterns [1]
- Iterative Diffusion [2]
- Multicast [3-5]
- Kernel Based Packet Processing [6,7]
- EBPF [10]
- DCS Internet-scale Emulation [8,9]
- small scale AS Topology
3. Design
-
- Requirements
- Multicast Protocol Design
- RP-Peer protocol
- RP-RP protocol
- Specification
4. Implementation
-
- Architecture
- RP-Peer interface
- RP-RP interface
5. Evaluation
-
- Peer scalability per RP
- RP mesh scalability
**Your Profile**
-
- Familiar with Linux (Ubuntu >20, Kernel >5.13)
- Linux kernel scripting skills are useful
- C/C++ and GDB are valuable
- eBPF desirable
- IPv6 knowledgable
- Containers (docker, chatGPT might solve this skill lack)
- Plotting skills (happy to help with R)
**Resources**
-
- Communication Patterns
[1] D. Guzman, D. Trossen, M. McBride, and X. Fan, “Insights on impact of distributed ledgers on provider networks,” in Blockchain – ICBC, 2022.
- Iterative Diffusion
[2] D. Guzman, D. Trossen, and J. Ott, “If iterative diffusion is the answer, what was the question?” in Proceedings of the 2nd ACM SIGCOMM
Workshop on Future of Internet Routing & Addressing, ser. FIRA ’23.
- Multicast
[3] S. E. Deering and D. R. Cheriton, “Multicast routing in datagram
internetworks and extended lans.” ACM, may 1990, p. 85–110.
[4] T. Bartczak and P. Zwierzykowski, “Performance evaluation of source- specific multicast routing protocols for ip networks,” in 2012 8th International Symposium on Communication Systems, Networks and Digital Signal Processing (CSNDSP), 2012, pp. 1–6.
[5] S. Bhattacharyya, “An Overview of Source-Specific Multicast (SSM),” IETF, RFC 3569, Jul. 2003. [Online]. Available: http://tools.ietf.org/rfc/rfc3569.txt
- Kernel Based Packet Processing:
[6] F. Parola, R. Procopio, R. Querio, and F. Risso, “Comparing user space and in-kernel packet processing for edge data centers,” SIGCOMM
Comput. Commun. Rev., vol. 53, no. 1, p. 14–29, apr 2023.
[7] Maurya V, "Constraint Based Service Routing" TU Dresden. 2021
[10] eBPF https://ebpf.io/
https://www.youtube.com/watch?v=fX7LL0cIX40
https://cilium.io/use-cases/multicast/
[11] (standard)eBPF https://datatracker.ietf.org/doc/draft-ietf-bpf-isa/
[12] XDP Program https://github.com/xdp-project/xdp-tutorial?tab=readme-ov-file
- Internet Emulation
[8] Mini Internet Emulator : https://github.com/nsg-ethz/mini_internet_project
[9] SEED Emulator: https://github.com/seed-labs/seed-emulator