Working with docker registry and studying about block chain technology flush me the idea.
DDR is a Decentralized Docker Registry based on P2P technology to supply high concurrency, fast transfer, low cost for docker images distribution and storage.It does not requires any centralized service but docker users can push and pull the docker images from the system as usual.As pure P2P network structure model, each node is producer and consumer.
Decentralized Docker Registry Daemon(ddrd) is one component of Decentralized Docker Registry system. a daemon running on each P2P node to supply node location, key location, value storage, etc. It uses standard HTTP interface to communicate with other server nodes and client nodes.
More technical detail see my blog.
- High concurrency, 100,000+
- Reduce network traffic
- High availability
- Low cost
- Long distance transfer
- Open source
- Alibaba Dragonfly
Not a pure distribution service and base on BT protocol, use CDN as storage node.
- Tencent FID
Use BT protocol, simulate with Dragonfly but not open source.
- DID,Quay and Docket
Make torrent for the whole image,not for layer.
- Zero invading
- Standard HTTP APIs
- Registry-agnostic
The network uses Kademlia/SKademlia protocol to communicate. The main idea of Kademlia/SKademlia is every node organized by fixed bit ID and the distance between nodes is defined by ID XOR operation.The distance metric can guide you get close to the destination by ask incessantly.
Each node is local registry service server and registry client to push and pull image from other registry service by ddrd. Local registry service supplies image management stuff things to interact with docker client. And we need develop ddr backend driver to handle all necessary request such as getting manifest or blobs.If the driver can't find any message local, it should ask ddrd to find message from remote node.So the ddrd has only one responsibility for finding the message in the P2P network but not for storage.
- September, core technical problems finish
- October, ddrd alpha release
- November, ddr driver alpha release
- December, bug fix and beta release