The project is about building a decentralized P2P network (platform) based on the IPFS or libp2p network framework. The project has 5 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 LibP2P. This step is very easy just need to install one of the abovementioned protocol and then deploy it as a private (isolated) network via "Swarm / DHT ".
2) Resource management: each node/peer must be able to manage its own resources (i.e. RAM, CPU and storage).
3) Deploy RAY over this P2P network: RAY must be deployed, run and test in this platform when the steps 1-2 are accomplished. It means that the platform must support an external application like RAY.
4) An API must be writen to interconnect P2P network and RAY.
5) The project must be delivered as a single executive file too.
6) Bonus: design and create a GUI (interface) for the platform in order to allow users to manage resources via the GUI, see other peers, etc.. An extra 100 euro will pay for this task. 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): First 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.