Skip to content

Decentralized Docker Registry Daemon(ddrd) is a daemon running on each P2P node for the decentralized docker registry.

Notifications You must be signed in to change notification settings

yangjunsss/ddrd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Background

Working with docker registry and studying about block chain technology flush me the idea.

What's DDR

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.

What's DDRD

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.

Why

  1. High concurrency, 100,000+
  2. Reduce network traffic
  3. High availability
  4. Low cost
  5. Long distance transfer
  6. Open source

Reinventing the wheel?

  1. Alibaba Dragonfly

Not a pure distribution service and base on BT protocol, use CDN as storage node.

  1. Tencent FID

Use BT protocol, simulate with Dragonfly but not open source.

  1. DID,Quay and Docket

Make torrent for the whole image,not for layer.

Design Requirements

  1. Zero invading
  2. Standard HTTP APIs
  3. Registry-agnostic

Network

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.

img

Arch

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.

ddr

Plan

  1. September, core technical problems finish
  2. October, ddrd alpha release
  3. November, ddr driver alpha release
  4. December, bug fix and beta release

License

About

Decentralized Docker Registry Daemon(ddrd) is a daemon running on each P2P node for the decentralized docker registry.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published