From 32863c57f8d8961798f532b26ffeb0fdb28ddafc Mon Sep 17 00:00:00 2001 From: Akilan Selvacoumar <31743758+Akilan1999@users.noreply.github.com> Date: Tue, 10 Dec 2024 23:52:33 +0000 Subject: [PATCH] Fixed spelling mistakes --- docs/p2prc-home-server.org | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/p2prc-home-server.org b/docs/p2prc-home-server.org index 8bfec7b..6af7676 100644 --- a/docs/p2prc-home-server.org +++ b/docs/p2prc-home-server.org @@ -1,31 +1,31 @@ * P2PRC tracking home server ** Abstract -This is a libary on top of P2PRC to create easier abstractions +This is a library on top of P2PRC to create easier abstractions to setup servers on spare laptops at home and run applications -which can exibit a monolithic behavoir (Ex: Self hosted -jitsi, Indvidious). The motivation is to ensure users can +which can exhibit a monolithic behaviour (Ex: Self hosted +jitsi, Invidious). The motivation is to ensure users can share self hosted infrastructure with friends and can design a really simple replicatable instances of servers. ** Problems being addressed 1. Remembering ports mapped and stateful restart. Rather than the OS remember information of the processes. The P2P network should also track it and - propogate it to other nodes in the network. This is to ensure when a process - fails there is a formally representable reason which can appropirate corrective + propagate it to other nodes in the network. This is to ensure when a process + fails there is a formally representable reason which can appropriate corrective actions. -2. Arbitary instructions used to start a process and should be remembered to reproduce a +2. Arbitrary instructions used to start a process and should be remembered to reproduce a process if a node is down. ** What are attempting to do -The section below describes in detail the ideal startegy of addressing the problems stated +The section below describes in detail the ideal strategy of addressing the problems stated above. *** Building Abstraction -We are proposting to build a library of the Haskell bindings which do the following: -- Creating a P2PRC process and allowing users to modify it's behavoir in functional manner with for instance +We are proposing to build a library of the Haskell bindings which do the following: +- Creating a P2PRC process and allowing users to modify it's behaviour in functional manner with for instance immutable datatypes. -- Allowing users to run this abstraction in a reproducable manner or constrainting it to run on precise +- Allowing users to run this abstraction in a reproducible manner or constraining it to run on precise sets of machines. - Should be able to represent the deployment strategy used (ex: Nix, Ansible etc...). This keeps the deployment agnostic and not vendor specific. @@ -35,22 +35,22 @@ We are proposting to build a library of the Haskell bindings which do the follow - The use case is to ensure it's easier to setup a set of servers and shuffle P2PRC processes around when needed. We intend to do this by ensuring a process is represented as type. - Targets initially with the assumption that there is only 1 reliable root node to relay traffic to the make the setup - easier. Future plans will create a DNS layer which can make root nodes and P2PRC processes reproducable. + easier. Future plans will create a DNS layer which can make root nodes and P2PRC processes reproducible. -*** Linient rules +*** Lenient rules - This library is built for home users, therefore the library will be setup for P2PRC using the [[https://github.com/Akilan1999/p2p-rendering-computation/pull/115][unsafe mode]] which will ensure that all public - keys will be added to the [[https://www.ssh.com/academy/ssh/authorized-keys-file#:~:text=The%20authorized_keys%20file%20in%20SSH,keys%20and%20needs%20proper%20management][SSH auth list]] of all nodes avaliable in the network. While this is not secure it + keys will be added to the [[https://www.ssh.com/academy/ssh/authorized-keys-file#:~:text=The%20authorized_keys%20file%20in%20SSH,keys%20and%20needs%20proper%20management][SSH auth list]] of all nodes available in the network. While this is not secure it comes with pre-assumption that all nodes joining the network are home servers and are needed to access each other with limited rules (set by user permission from the OS side). - We assume that all P2PRC processes run on a bare-metal machine without any virtualisation. This is because most users run on machines which they own and we offload to the users - reponsibility to choose a tool that can support reproducable builds like [[https://nixos.org/][Nix]]. + responsibility to choose a tool that can support reproducible builds like [[https://nixos.org/][Nix]]. [[./P2PRC-Tracking-home-server.png]] ** Plan Based on the [[https://github.com/Akilan1999/p2p-rendering-computation/tree/master/haskell][Haskell bindings]] to build an extended library (There are still changes needed -in the Haskell bindings before the addon can be built). +in the Haskell bindings before the add-on can be built). *** Handle more cases than machine name The current haskell library seems to only support 1 type Machine name which is parseable from @@ -110,10 +110,10 @@ The following refers to the functions we would be building for our abstraction: 4. ListProcess() return ** Terms -P2PRC process: A p2prc process refers to potencially an instance (i.e web-server or any task). This process +P2PRC process: A p2prc process refers to potentially an instance (i.e web-server or any task). This process stores information such as: - Memory usage. - Instructions to re-produce that task etc... Root node: Refers to a node running P2PRC with a public IPV4 address to relay traffic through for nodes -behind NAT and can potencially even act a proxy for nodes(Used for domain name mapping) in the P2P network. +behind NAT and can potentially even act a proxy for nodes(Used for domain name mapping) in the P2P network.