The project is about building a decentralized P2P network (platform) based on the IPFS or libp2p network framework. The project has 7 main phases:
1) Build a P2P network, where each node/peer participating in this network must be capable of discovering, routing, messaging, file sharing, and pinging other nodes/peers. This can be done through the IPFS or LİBP2P. This step is very easy you just need to install one of the above-mentioned protocols and then deploy it as a private (isolated) network via "Swarm / DHT".
2) Setup a VPN based on hyperspace to enable Master and Worker nodes be accessible in RAY (if you can manage it through libp2p then this task can be skipped).
3) Resource management: each node/peer must be able to manage its resources (i.e. RAM, CPU, and storage).
4) Deploy RAY over this P2P network: RAY must be deployed, run, and tested in this platform when steps 1-2 are accomplished. It means that the platform must support an external application like RAY.
5) An API must be written to interconnect the P2P network and RAY.
6) The project must be delivered as a single executive file too.
7) Design and create a GUI (interface) for the platform to allow users to manage resources via the GUI, see other peers, etc. More detail will be given in the chat.
The P2P network must perform over the internet. It means nodes from different geographical locations can connect to this network. - security is a concern: for this, a Sandbox security mechanism can be used to create an isolated environment on the network (if you have another solution please propose it). -The platform should be run in a Windows environment (windows 10 and beyond): The priority is to deploy it in Windows but if there is a restriction, we can deploy it in Ubuntu (this needs to be negotiated at the beginning of the project). - My preference is to use IPFS (python) or LibP2P based on Golang, but other languages are welcome if you can convince me.
- Code must be written clearly with comments for each task, class, object, etc. For this, you have to send me some samples of your code. This also will be evaluated during the project.
***Only bid if you can do it.