TODO: Write a description here
The goal of the project is to create a P2P network able to serve an index of meta-data about git repositories among all kind of plateform.
- a distributed database
- a web interface
- a api interface
- a bridge to several git forges’ api.
- A node is connected to others. Not every node needs to be connected to all the others.
- Each node can map the immediate network arround it.
- Each node owns data and share it.
- Each node must assure the network stay stable through synchronization mechanics (trust update, role rotation, data duplication).
- A new node send the list of the seeds to his seeds.
- A new node who finish to contact the seeds has to map the immediate network by querying the seeds.
- A new node that finish the network mapping has to send the list of the forges he knows.
- A node who owns the data queried must answer itself.
- A node who knows where the data is located must forward the query to the right nodes.
- A node who don’t know where the data is located must forward the query to another node.
- A node is responsible of the data it owns. He make sure that it is duplicated on the network.
- Each node ensure that the other nodes accomplish their roles.
- Each node knows which forges it is in charge of, and ensure that these forges are up to date.
- A connected node that learn a new forge or a new node must send it to the other nodes.
- A connected node that cannot contact another connected node must inform the network and update the map.
- A connected node make sure that the roles rotate among the nodes.
- Fork it (https://github.com/Nephos/MetaGit/fork)
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create a new Pull Request