diff --git a/Bindings/Client.go b/Bindings/Client.go index c46bdb5..32cd20e 100644 --- a/Bindings/Client.go +++ b/Bindings/Client.go @@ -135,11 +135,11 @@ func EscapeFirewall(HostOutsideNATIP string, HostOutsideNATPort string, internal //export MapPort func MapPort(Port string, DomainName string, ServerAddress string) *C.char { - entireAddress, _, err := abstractions.MapPort(Port, DomainName, ServerAddress) + Address, err := abstractions.MapPort(Port, DomainName, ServerAddress) if err != nil { return C.CString(err.Error()) } - return C.CString(entireAddress) + return C.CString(Address.EntireAddress) } // --------------------------------- Controlling Server ---------------------------------------- diff --git a/CONTRIBUTE.md.org b/CONTRIBUTE.md.org deleted file mode 100644 index c87ecca..0000000 --- a/CONTRIBUTE.md.org +++ /dev/null @@ -1,93 +0,0 @@ -* 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/Docs/index.html b/Docs/index.html index 500b37a..3a7bc84 100644 --- a/Docs/index.html +++ b/Docs/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +-This project focuses on creating a framework for running heavy computational tasks that a regular -computer cannot handle easily. These tasks may include graphically demanding video games, rendering -3D animations, and performing complex protein folding simulations. The major focus of this project -is not on financial incentives but rather on building a robust and efficient peer-to-peer (P2P) -network to decentralise task execution and increase the computational bandwidth available for +This project focuses on creating a framework for running heavy computational tasks that a regular +computer cannot handle easily. These tasks may include graphically demanding video games, rendering +3D animations, and performing complex protein folding simulations. The major focus of this project +is not on financial incentives but rather on building a robust and efficient peer-to-peer (P2P) +network to decentralise task execution and increase the computational bandwidth available for such tasks.
-The P2PRC framework serves as a foundation for decentralised rendering and computation, -providing insights into how tasks can be distributed efficiently across a network of peers. -Leveraging the P2PRC approach, this project extends its capabilities to handle a +The P2PRC framework serves as a foundation for decentralised rendering and computation, +providing insights into how tasks can be distributed efficiently across a network of peers. +Leveraging the P2PRC approach, this project extends its capabilities to handle a wider range of computationally intensive tasks.
+// Do ensure that the docker command does not need sudo to run sudo chmod 666 /var/run/docker.sock@@ -245,7 +246,7 @@ To set up the internal dependencies and build the entire go code into a single binary -+make install@@ -258,7 +259,7 @@ To set up P2PRC on Windows, simply run this batch file. Make sure you are not in admin mode when running this. -+.\install.bat@@ -269,7 +270,7 @@ are not in admin mode when running this.2.2.4. Add appropriate paths to
.bashrc-+export P2PRC=/<PATH>/p2p-rendering-computation export PATH=/<PATH>/p2p-rendering-computation:${PATH}@@ -279,8 +280,8 @@ export PATH=/<PATH>/p2p-rendering-computation:${PATH}2.2.5. Set up configuration file
--make configfile ++make configfile@@ -293,7 +294,7 @@ one.
@@ -408,8 +409,8 @@ p2prc --rm=<server ip address> --id=<docker container id>2.2.6. Test if binary works
-@@ -301,7 +302,7 @@ p2prc --help+p2prc --help
- Output:
-+NAME: p2p-rendering-computation - p2p cli application to create and access VMs in other servers @@ -364,8 +365,8 @@ GLOBAL OPTIONS:@@ -373,7 +374,7 @@ p2prc -s3.0.1. Start as a server
--p2prc -s ++p2prc -s@@ -399,8 +400,8 @@ p2prc --touch=<server ip address> -p <number of ports> --gpu The docker id is present in the output where you create a container -3.0.2. View server Specification
-@@ -386,7 +387,7 @@ p2prc --specs=<ip address> use the+p2prc --specs=<ip address>--gpuif you know the other machine has a gpu. -+p2prc --touch=<server ip address> -p <number of ports> --gpu-p2prc --rm=<server ip address> --id=<docker container id> ++p2prc --rm=<server ip address> --id=<docker container id>@@ -417,8 +418,8 @@ p2prc --as=<server ip address you want to add>3.0.5. Adding servers to ip table
--p2prc --as=<server ip address you want to add> ++p2prc --as=<server ip address you want to add>@@ -426,8 +427,8 @@ p2prc --us3.0.6. Update ip table
--p2prc --us ++p2prc --us@@ -435,7 +436,7 @@ p2prc --ls3.0.7. List Servers
--p2prc --ls ++p2prc --ls3.0.8. View Network interfaces
-@@ -444,7 +445,7 @@ p2prc --ni+p2prc --ni3.0.9. Viewing Containers created Client side
-@@ -453,7 +454,7 @@ p2prc --tc+p2prc --tc3.0.10. Running plugin
-@@ -462,7 +463,7 @@ p2prc --plugin <plugin name> --id <container id or group id>+p2prc --plugin <plugin name> --id <container id or group id>3.0.11. Create group
-@@ -471,7 +472,7 @@ p2prc --cgroup+p2prc --cgroup3.0.12. Add container to group
-@@ -480,7 +481,7 @@ p2prc --group <group id> --id <container id>+p2prc --group <group id> --id <container id>3.0.13. View groups
-@@ -489,7 +490,7 @@ p2prc --groups+p2prc --groups3.0.14. View specific group
-@@ -498,8 +499,8 @@ p2prc --group <group id>+p2prc --group <group id>@@ -507,7 +508,7 @@ p2prc --rmcgroup --group <group id> --id <container id>3.0.15. Delete container from group
--p2prc --rmcgroup --group <group id> --id <container id> ++p2prc --rmcgroup --group <group id> --id <container id>3.0.16. Delete entire group
-@@ -516,7 +517,7 @@ p2prc --rmgroup <group id>+p2prc --rmgroup <group id>3.0.17. Pulling plugin from a remote repo
-@@ -525,8 +526,8 @@ p2prc --pp <repo link>+p2prc --pp <repo link>@@ -534,16 +535,16 @@ p2prc --rp <plugin name>3.0.18. Deleting plugin from the plugin directory
--p2prc --rp <plugin name> ++p2prc --rp <plugin name>-3.0.19. Added custom metadata about the current node
-+p2prc --amd "custom metadata"-3.0.20. MapPort and link to domain name
++3.0.20. MapPort and link to domain name
-+p2prc --mp <port no to map> --dn <domain name to link Mapped port against>@@ -556,15 +557,15 @@ p2prc --mp <port no to map> --dn <domain name to link Mapped port again4. P2P Module Implementation
-The P2P module is for managing server information within the network. -It maintains and updates the IP table, ensuring accuracy by preventing duplicates and removing -entries for unreachable servers. Furthermore, the module conducts speed tests on the listed servers -to determine upload and download speeds. This valuable information enables users to identify nearby +The P2P module is for managing server information within the network. +It maintains and updates the IP table, ensuring accuracy by preventing duplicates and removing +entries for unreachable servers. Furthermore, the module conducts speed tests on the listed servers +to determine upload and download speeds. This valuable information enables users to identify nearby servers with optimal performance, enhancing their overall network experience.
-+
![]()
Figure 1: UML diagram of P2P module
@@ -612,7 +613,7 @@ configuration module. "NAT": "<boolean representing if the node is behind NAT or not>", "EscapeImplementation": "<NAT traversal implementation>", "ProxyServer": "<If the node listed is acting as a proxy server>", - "UnSafeMode": <Unsafe mode if turned on will allow all nodes in the network public keys to be + "UnSafeMode": <Unsafe mode if turned on will allow all nodes in the network public keys to be added to that particular node>", "PublicKey": "<Public key of that particular node>", "CustomInformation": "<custom information passed in through all the nodes in the network>" @@ -665,7 +666,7 @@ from the TURN server. The flow below describes the workflow.Call -/FRPPort+http://<turn server ip>:<server port no>/FRPport@@ -759,11 +760,11 @@ p2prc.h p2prc.so Below are a sample set of commands to open the bindings implementation. -+# run cd Bindings/ # list files -ls +ls # search for file Client.go@@ -853,7 +854,7 @@ that convert a go object to JSON string initially and converts it toA Pseudo code to refer to the common function implementation shape could be represented as:
-+func <Function name> (output *C.char) { <response>,<error> := <P2PRC function name>(<parameters if needed>) if <error> != nil { @@ -871,14 +872,14 @@ func <Function name> (output *C.char) {+5.3. Current languages supported
-- --
- Python
--+5.3.1. Build sample python program
- + +++5.3.2. Haskell
++++P2PRC officially supports Haskell bindings and will further support +project using Haskell to build orchestrators on top of P2PRC. +
+ ++Read more… +
+6. Config Implementation
@@ -1015,7 +1031,7 @@ from the TURN server. The flow below describes the workflow.Call -/FRPPort+http://<turn server ip>:<server port no>/FRPport@@ -1051,8 +1067,8 @@ func main() { --10. Ideas for future potencial features
++10. Ideas for future potencial features
-Consists of personal loideas for the future of P2PRC. @@ -1060,8 +1076,8 @@ At moment only has main contributors writiing to this.
-10.1. To support hetrogenous set of Nodes that cannot run P2PRC
++10.1. To support hetrogenous set of Nodes that cannot run P2PRC
-This stems from a personal issue I have when doing research @@ -1078,8 +1094,8 @@ network nodes.
-10.1.1. Assumptions:
++-10.1.1. Assumptions:
- I have a Morello board that cannot run P2PRC
@@ -1092,8 +1108,8 @@ as well look into custom tasks into the hetrogenous hardware.-10.1.2. Set of interesting possible:
++-10.1.2. Set of interesting possible:
We build a cool set possibilities before and use this to build up the implementation @@ -1110,8 +1126,8 @@ weight hypervisors.
-10.1.3. Implementation
++10.1.3. Implementation
-
- To use implementations similar to socat to ensure we can bind address of local @@ -1125,7 +1141,7 @@ other nodes can access the Morello board who have permission access.
+- +
![]()
Figure 2: Implementation idea (To be improved upon)
@@ -1137,8 +1153,8 @@ other nodes can access the Morello board who have permission access.