A decentralized peer-to-peer version control system inspired by Git concepts, aiming to remove the central server and allow true peer-to-peer collaboration.
This project creates a distributed version-control platform:
- Every node acts as both a client and server.
- Peers discover, sync, and verify changes directly via P2P.
- No single point of failure—true decentralization.
Traditional Git revolves around a central server like GitHub—it's client-server, not P2P. This project aims to break that mold and allow:
- 🔗 True peer-to-peer cloning and sharing
- 🛡️ Security via commit verification
- 🌐 Collaboration without relying on central infra
Nodes in the network have dual roles: both Host (sharing objects/refs) and Client (requesting updates). Peer discovery uses a bootstrap node or protocol to find and connect peers in a loosely connected network.
- Initialization – Peer starts and announces itself.
- Discovery – Connects and exchanges ref lists.
- Fetch/Push – Transfers missing commits/objects.
- Verification – Ensures integrity via hashes/signatures.
graph LR
A[Peer Start] --> B[Discover Peers]
B --> C{Have New Refs?}
C -- Yes --> D[Fetch Missing Objects]
C -- No --> E[Idle & Wait]
D --> F[Merge & Update Local Repo]
F --> E
E --> B