% Chapter Template \chapter{Introduction} % Main chapter title \label{Introduction} % Change X to a consecutive number; for % referencing this chapter elsewhere, use \ref{ChapterX} %---------------------------------------------------------------------------------------- % SECTION 1 %---------------------------------------------------------------------------------------- \section{Methodology} This chapter outlines the methodology employed in the present research to evaluate and analyze the Clan framework. A visual representation of the argumentation flow central to the Clan Thesis is provided in Figure \ref{fig:clan_thesis_argumentation_tree}. \begin{figure}[H] \centering \includesvg[width=1\textwidth, keepaspectratio]{Figures/clan_thesis_argumentation_tree.drawio.svg} \caption{Argumentation Tree for the Clan Thesis} \label{fig:clan_thesis_argumentation_tree} \end{figure} The structure of this thesis adopts a multi-problem-oriented approach rather than focusing on a single isolated problem. Specifically, it addresses a set of interrelated challenges within the context of enhancing the reliability and manageability of \ac{P2P} networks. The primary objective of this research is to investigate how the Clan framework provides effective solutions to these challenges. To achieve this goal, the research is divided into two main components: \begin{enumerate} \item \textbf{Development of a Theoretical Model} \\ A theoretical model of the Clan framework will be constructed. This model will consist of a formal specification of the foundational axioms of the system, including the properties and principles that govern its design. From these base axioms, the research will derive key theorems and explore their corresponding boundary conditions. The theoretical analysis will aim to elucidate the underlying mechanisms of the framework and provide a concrete foundation for its evaluation. \item \textbf{Empirical Verification of the Theoretical Model} \\ To validate the theoretical model, a series of experiments will be conducted on various components of the Clan framework. These experiments will assess how the theoretical predictions align with practical observations. This step is essential to determine the extent to which the theoretical model holds under real-world conditions and to identify its limitations, if any. \end{enumerate} TODO \section{Related Work} The Clan framework operates within the realm of software deployment and peer-to-peer networking, necessitating a deep understanding of existing methodologies in these areas to tackle contemporary challenges. This section will discuss related works encompassing system deployment, peer data management, and low maintenance structured peer-to-peer overlays, which inform the development and positioning of the Clan framework. \subsection{Nix: A Safe and Policy-Free System for Software Deployment} Nix addresses significant issues in software deployment by utilizing a technique that employs cryptographic hashes to ensure unique paths for component instances \cite{dolstra_nix_2004}. The system is distinguished by its features, such as concurrent installation of multiple versions and variants, atomic upgrades, and safe garbage collection. These capabilities lead to a flexible deployment system that harmonizes source and binary deployments. Nix conceptualizes deployment without imposing rigid policies, thereby offering adaptable strategies for component management. This contrasts with many prevailing systems that are constrained by policy-specific designs, making Nix an easily extensible, safe and versatile deployment solution for configuration files and software. \subsection{NixOS: A Purely Functional Linux Distribution} NixOS is an extension of the principles established by Nix, presenting a Linux distribution that manages system configurations using purely functional methods . This model ensures that system configurations are reproducible and isolated from stateful interactions typical in imperative models of package management. Because NixOS configurations are built by pure functions, they can overcome the challenges of easily rolling back changes, deploying multiple package versions side-by-side, and achieving deterministic configuration reproduction . The solution is particularly compelling in environments necessitating rigorous reproducibility and minimal configuration drift—a valuable feature for distributed networks . \subsection{Disnix: A Toolset for Distributed Deployment} The Disnix toolset extends the deployment capabilities of Nix into distributed systems, focusing on automating the deployment process across different network nodes . By leveraging the modular approach of Nix, Disnix enables the consistent deployment of software environments, reducing the incidence of configuration errors across heterogeneous systems. This approach aligns with the needs of distributed systems like those utilized in peer-to-peer networks, where maintaining consistency across nodes is crucial for operational integrity . \subsection{The Piazza Peer Data Management Project} The peer data management landscape is further enriched by the Piazza project, which offers a flexible integration framework for heterogeneous data sources[5]. Piazza's approach to routing and indexing extends beyond traditional network boundaries, showcasing a scalable method for handling vast data spaces in peer-to-peer systems. By addressing challenges related to schema mediation and decentralized data queries, Piazza provides a foundational structure from which Clan can envisage robust peer data management underpinned by strong consistency and reach. \subsection{Software-Defined Networking and Low Maintenance Overlays} The transition towards software-defined networking (SDN) is represented by systems that decouple the control plane from the data plane, enabling flexible network configurations[6]. In particular, SDN introduces novel paradigms in managing network resources dynamically, facilitating more adaptive and responsive network overlays. The Clan framework can draw on SDN principles to facilitate low-maintenance structured overlays, ensuring robust connectivity and efficient resource allocation in peer-to-peer environments. These systems reduce the overhead associated with managing network state, thus aligning with the inherent value propositions of decentralized networks. \subsection{Charon: Declarative Provisioning and Deployment} Charon adds another dimension to deployment via its declarative provisioning capabilities[7]. By emphasizing a policy-driven approach, Charon aligns closely with the principles of infrastructure-as-code, where deployment processes are consistently repeatable and auditable. Such characteristics are beneficial for frameworks like Clan, ensuring transparency and accuracy in deployment processes across peer-to-peer nodes[8]. In summation, the evolution of deployment systems and peer data management frameworks underscores the steps necessary for developing robust decentralized systems like the Clan framework. By integrating features from Nix, NixOS, Disnix, and leveraging insights from SDN and Charon, the Clan framework can offer a high degree of reliability, flexibility, and efficiency across distributed networks. This related work provides a foundational understanding that supports the enhancement of the Clan framework towards achieving these objectives.