243 views
# **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