From 40ffdaec184ed362b80005e2efa0cbda3847d8dc Mon Sep 17 00:00:00 2001 From: Akilan Date: Sat, 18 Jan 2025 17:23:17 +0000 Subject: [PATCH] did a base conversion of P2PRC docs files to org mode --- CONTRIBUTE.md.org | 93 +++++++++++++++++++ README.md.org | 222 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 315 insertions(+) create mode 100644 CONTRIBUTE.md.org create mode 100644 README.md.org diff --git a/CONTRIBUTE.md.org b/CONTRIBUTE.md.org new file mode 100644 index 0000000..c87ecca --- /dev/null +++ b/CONTRIBUTE.md.org @@ -0,0 +1,93 @@ +* Contributing +:PROPERTIES: +:CUSTOM_ID: contributing +:END: +When contributing to this repository, please first discuss the change +you wish to make via issue, email, or any other method with the owners +of this repository before making a change. + +Please note we have a code of conduct, please follow it in all your +interactions with the project. + +** Pull Request Process +:PROPERTIES: +:CUSTOM_ID: pull-request-process +:END: +1. Ensure any install or build dependencies are removed before the end + of the layer when doing a build. +2. Update the appropriate docs before stating the changes you did. +3. You may merge the Pull Request in once you have the approval of + CODEOWNER, or if you do not have permission to do that, you may + request the second reviewer to merge it for you. + +** Code of conduct +:PROPERTIES: +:CUSTOM_ID: code-of-conduct +:END: +All projects(including mailing lists) at HWTechClub is required to +follow [[https://lunduke.com/pages/codeofconduct/][The Lunduke Code of +Conduct]]. + +*** The Lunduke Code of Conduct +:PROPERTIES: +:CUSTOM_ID: the-lunduke-code-of-conduct +:END: + +#+begin_quote +**** "Be Excellent to Each Other." +:PROPERTIES: +:CUSTOM_ID: be-excellent-to-each-other. +:END: +#+end_quote + +***** FAQ +:PROPERTIES: +:CUSTOM_ID: faq +:END: +*Q*: Wait. That's it? + +A: Yup. + +*Q*: But... but... it's only 5 words! + +A: It is? Cool! + +*Q*: Isn't that too short to be a viable Code of Conduct? + +A: Nah. + +*Q*: It's too vague! How would you enforce this?!? + +A: By being excellent to each other. + +*Q*: What if someone violates this Code of Conduct? + +A: I trust you to figure it out. + +*Q*: What if someone talks about politics I disagree with?!?!!? + +A: I know a guy who votes for Papa Smurf in every Presidential election. +He's a pretty cool dude. + +*Q*: I'm super angry about something! And a person likes the thing +making me angry! What do I do? + +A: I dunno. Try /hugs/? + +*Q*: Are virtual hugs (such as /"hugs"/ and animated .GIFs of teddy +bears hugging) excellent? + +A: Most excellent. + +*Q*: Huh. Seems so simple! + +A: I know, right? + +*Q*: I like you! + +A: I like you, too! + +/The Lunduke Code of Conduct is free for you to use however you like./ + +*Source*: [[https://lunduke.com/pages/codeofconduct/][The Lunduke Code +of Conduct]] diff --git a/README.md.org b/README.md.org new file mode 100644 index 0000000..d5dfd73 --- /dev/null +++ b/README.md.org @@ -0,0 +1,222 @@ +#+begin_quote +[!TIP] Haskell bindings supported!: +[[https://p2prc.akilan.io/Docs/haskell/P2PRC.html][Bindings +documentaton]] + +#+end_quote + +#+begin_quote +[!NOTE] Fixing documentation to latest changes. If you have any +questions setting up P2PRC either +[[https://github.com/Akilan1999/p2p-rendering-computation/issues/new/choose][create +an issue]] or send me an email (me AT akilan dot io). Currently HEAD is +always intended to stay on a working state. It is recommended to always +use HEAD in your go.mod file. + +#+end_quote + +#+begin_html +

+#+end_html + +#+begin_html +

+#+end_html + +#+begin_html + +#+end_html + +The main aim of this project was to create a custom peer to peer +network. The user acting as the client has total flexibility on how to +batch the tasks and the user acting as the server has complete +flexibility on tracking the container's usages and killing the +containers at any point of time. + +** Latest tutorial +:PROPERTIES: +:CUSTOM_ID: latest-tutorial +:END: +[[https://www.youtube.com/watch?v=OMwCpedu5cs%22][[[https://i.ytimg.com/vi/OMwCpedu5cs/hqdefault.jpg]]]] + +** Table of contents in the current README +:PROPERTIES: +:CUSTOM_ID: table-of-contents-in-the-current-readme +:END: +1. [[#Introduction][Introduction]] +2. [[#extend-your-application-with-p2prc][Installation]] +3. [[#Design-Architecture][Design Architecture]] +4. [[#Implementation][Implementation]] +5. [[#Find-out-more][Find out more]] + +* Table of contents in the Docs folder +:PROPERTIES: +:CUSTOM_ID: table-of-contents-in-the-docs-folder +:END: +1. [[file:Docs/Introduction.md][Introduction]] +2. [[file:Docs/Installation.md][Installation]] +3. [[file:Docs/Abstractions.md][Abstractions]] +4. [[file:Docs/Implementation.md][Implementation]] + 1. [[file:Docs/ClientImplementation.md][Client Module]] + 2. [[file:Docs/P2PImplementation.md][P2P Module]] + 3. [[file:Docs/ServerImplementation.md][Server Module]] + 4. [[file:Docs/ConfigImplementation.md][Config Module]] + 5. [[file:Docs/CliImplementation.md][Cli Module]] + 6. [[file:Docs/PluginImplementation.md][Plugin Module]] + 7. [[file:Docs/Bindings.md][Language bindings]] + 8. [[file:Docs/Bindings.md][Domain name mappings]] +5. Language bindings + 1. [[file:Docs/haskell/][Haskell]] + +** Introduction +:PROPERTIES: +:CUSTOM_ID: introduction +:END: +This project aims to create a peer to peer (p2p) network, where a user +can use the p2p network to act as a client (i.e sending tasks) or the +server (i.e executing the tasks). A prototype application will be +developed, which comes bundled with a p2p module and possible to execute +docker containers or virtual environments across selected nodes. + +*** Objectives +:PROPERTIES: +:CUSTOM_ID: objectives +:END: +- Background review on peer to peer network, virtual environments, + decentralized rendering tools and tools to batch any sort of tasks. +- Creating p2p network +- Server to create a containerised environment +- The client node to run tasks on Server containerised node + +[[file:Docs/Introduction.md][Read more on the introduction]] + +** Extend your application with P2PRC +:PROPERTIES: +:CUSTOM_ID: extend-your-application-with-p2prc +:END: +#+begin_src go +package main + +import ( + "fmt" + "github.com/Akilan1999/p2p-rendering-computation/abstractions" +) + +func main() { + _, err := abstractions.Init(nil) + if err != nil { + fmt.Println(err) + return + } + + // start p2prc + _, err = abstractions.Start() + if err != nil { + fmt.Println(err) + return + } + + // Run server till termination + for { + + } +} +#+end_src + +*** Export once this is added export P2PRC as environment paths +:PROPERTIES: +:CUSTOM_ID: export-once-this-is-added-export-p2prc-as-environment-paths +:END: +#+begin_example +export P2PRC= +export PATH=:${PATH} +#+end_example + +[[file:Docs/Abstractions.md][Read more]] ... + +** Installation from source +:PROPERTIES: +:CUSTOM_ID: installation-from-source +:END: +1. Ensure the Go compiler is installed + + #+begin_example + go version + #+end_example + +2. Ensure docker is installed (Should run without sudo) + + #+begin_example + docker ps + #+end_example + +3. Clone this repository + + #+begin_example + git clone https://github.com/Akilan1999/p2p-rendering-computation + #+end_example + +4. Install and build the project + + #+begin_example + make install + #+end_example + +- If you look closely you will get outputs such as: + =// Add them to your .bashrc file export P2PRC=//p2p-rendering-computation export PATH=//p2p-rendering-computation:${PATH}= + +5. [@5] Test if it works + + #+begin_example + p2prc -h + #+end_example + + or + + #+begin_example + ./p2prc -h + #+end_example + + [[file:Docs/Installation.md][Read more on the installation and + usage]] + +** Design Architecture +:PROPERTIES: +:CUSTOM_ID: design-architecture +:END: +The design architecture was inspired and based on the linux kernel +design. The project is segmented into various modules. Each module is +responsible for certain tasks in the project. The modules are highly +dependent on each other hence the entire codebase can be considered as a +huge monolithic chuck which acts as its own library + +[[file:Docs/DesignArchtectureIntro.md][Read more on the Design +Architecture]] + +** Implementation +:PROPERTIES: +:CUSTOM_ID: implementation +:END: +The programming language used for this project was Golang. The reason Go +lang was chosen was because it is a compiled language. The entire +codebase is just a single binary file. When distributing to other linux +distributing the only requirement would be the binary file to run the +code. It is easy to write independant modules and be monolithic at the +sametime using Go. Using Go.mod makes it very easy to handle external +libraries and modularise code. The go.mod name for the project is +git.sr.ht/~akilan1999/p2p-rendering-computation. + +[[file:Docs/Implementation.md][Read more on the Implementation]] + +** Find out more +:PROPERTIES: +:CUSTOM_ID: find-out-more +:END: +As we are working on the open source project p2prc (i.e p2p network +designed for computation).If you are interested in participating as a +contributor or just providing feedback on new features to build or even +just curious about new features added to the project. We have decided to +create a discord group.\\ +[[https://discord.gg/b4nRGTjYqy][[[https://discordapp.com/api/guilds/854397492795277322/widget.png?style=banner2]]]] + +[[https://github.com/Gaurav-Gosain][[[https://api.star-history.com/svg?repos=Akilan1999/p2p-rendering-computation&type=Date]]]]